

# 一般的なリソースベースのポリシーの例
<a name="rbp-examples"></a>

これらの例は、Aurora DSQL クラスターへのアクセスを制御する一般的なパターンを示しています。これらのパターンを組み合わせて変更し、特定のアクセス要件を満たすことができます。

## パブリックインターネットアクセスをブロックする
<a name="rbp-example-block-public"></a>

このポリシーは、パブリックインターネット (非 VPC) から Aurora DSQL クラスターへの接続をブロックします。このポリシーでは、ユーザーが接続できる VPC は指定されず、VPC から接続する必要があるだけです。特定の VPC へのアクセスを制限するには、`aws:SourceVpc` と `StringEquals` 条件演算子を使用します。

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

**注記**  
この例では `aws:SourceVpc` のみを使用して VPC 接続をチェックします。`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 組織へのアクセスを制限する
<a name="rbp-example-org-access"></a>

このポリシーは、AWS 組織内のプリンシパルへのアクセスを制限します。

```
{
  "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 組織の特定の組織単位 (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 など) によって異なる場合があります。