

# 일반적인 리소스 기반 정책 예시
<a name="rbp-examples"></a>

이 예제에서는 Aurora DSQL 클러스터에 대한 액세스를 제어하는 일반적인 패턴을 보여줍니다. 특정 액세스 요구 사항에 맞게 이러한 패턴을 결합하고 수정할 수 있습니다.

## 퍼블릭 인터넷 액세스 차단
<a name="rbp-example-block-public"></a>

이 정책은 퍼블릭 인터넷(비 VPC)에서 Aurora DSQL 클러스터에 대한 연결을 차단합니다. 정책은 고객이 연결할 수 있는 VPC를 지정하지 않고 VPC에서 연결해야만 합니다. 특정 VPC에 대한 액세스를 제한하려면 `StringEquals` 조건 연산자와 함께 `aws:SourceVpc`를 사용합니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Resource": "*",
      "Action": [
        "dsql:DbConnect",
        "dsql:DbConnectAdmin"
      ],
      "Condition": {
        "Null": {
          "aws:SourceVpc": "true"
        }
      }
    }
  ]
}
```

**참고**  
이 예제에서는 VPC 연결을 확인하는 데만 `aws:SourceVpc`를 사용합니다. `aws:VpcSourceIp` 및 `aws:SourceVpce` 조건 키는 추가 세부 수준을 제공하지만 기본 VPC 전용 액세스 제어에는 필요하지 않습니다.

특정 역할에 대한 예외를 제공하려면 대신 이 정책을 사용합니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "DenyAccessFromOutsideVPC",
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Resource": "*",
      "Action": [
        "dsql:DbConnect",
        "dsql:DbConnectAdmin"
      ],
      "Condition": {
        "Null": {
          "aws:SourceVpc": "true"
        },
        "StringNotEquals": {
          "aws:PrincipalArn": [
            "arn:aws:iam::123456789012:role/ExceptionRole",
            "arn:aws:iam::123456789012:role/AnotherExceptionRole"
          ]
        }
      }
    }
  ]
}
```

## AWS Organization에 대한 액세스 제한
<a name="rbp-example-org-access"></a>

이 정책은 AWS Organization 내 위탁자에 대한 액세스를 제한합니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "dsql:DbConnect",
        "dsql:DbConnectAdmin"
      ],
      "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/mydsqlclusterid0123456789a",
      "Condition": {
        "StringNotEquals": {
          "aws:PrincipalOrgID": "o-exampleorgid"
        }
      }
    }
  ]
}
```

## 특정 조직 단위에 대한 액세스 제한
<a name="rbp-example-ou-access"></a>

이 정책은 AWS Organization의 특정 조직 단위(OU) 내의 위탁자에 대한 액세스를 제한하여 조직 전체의 액세스보다 더 세분화된 제어를 제공합니다.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Action": [
        "dsql:DbConnect"
      ],
      "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/mydsqlclusterid0123456789a",
      "Condition": {
        "StringNotLike": {
          "aws:PrincipalOrgPaths": "o-exampleorgid/r-examplerootid/ou-exampleouid/*"
        }
      }
    }
  ]
}
```

## 다중 리전 클러스터 정책
<a name="rbp-example-multi-region"></a>

다중 리전 클러스터의 경우 각 리전 클러스터는 자체 리소스 정책을 유지 관리하여 리전별 제어를 허용합니다. 다음은 리전별로 정책이 다른 예입니다.

*us-east-1 정책:*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": {
        "AWS": "*"
      },
      "Resource": "*",
      "Action": [
        "dsql:DbConnect"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:SourceVpc": "vpc-east1-id"
        },
        "Null": {
          "aws:SourceVpc": "true"
        }
      }
    }
  ]
}
```

*us-east-2 정책:*

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Resource": "*",
      "Action": [
        "dsql:DbConnect"
      ],
      "Condition": {
        "StringEquals": {
          "aws:SourceVpc": "vpc-east2-id"
        }
      }
    }
  ]
}
```

**참고**  
조건 컨텍스트 키는 AWS 리전 간에 다를 수 있습니다(예: VPC ID).