

# Amazon S3 リソースにアクセスするための IAM ポリシーの作成
<a name="AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy"></a>

Aurora では、Amazon S3 のリソースにアクセスして Aurora DB クラスターにデータをロードしたり、Aurora DB クラスターのデータを保存したりできます。ただし、初期に IAM ポリシーを作成してバケットおよびオブジェクトのアクセス許可を付与し、Aurora から Amazon S3 にアクセスできるようにする必要があります。

次の表は、ユーザー名で Amazon S3 バケットにアクセスできる Aurora の機能と、各機能に必要な最小限のバケットとオブジェクトのアクセス許可の一覧です。


| 機能 | Bucket permissions (バケットのアクセス許可) | オブジェクトのアクセス許可 | 
| --- | --- | --- | 
|  `LOAD DATA FROM S3`  |  `ListBucket`  |  `GetObject` `GetObjectVersion`  | 
| LOAD XML FROM S3 |  `ListBucket`  |  `GetObject` `GetObjectVersion`  | 
|  `SELECT INTO OUTFILE S3`  |  `ListBucket`  |  `AbortMultipartUpload` `DeleteObject` `GetObject` `ListMultipartUploadParts` `PutObject`  | 

次のポリシーは、ユーザー名で Amazon S3 バケットにアクセスするために Aurora で必要となるアクセス許可を追加します。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAuroraToExampleBucket",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        }
    ]
}
```

------

**注記**  
 `Resource` 値の両方のエントリを含んでいることを確認します。Aurora には、バケット自体とバケット内のすべてのオブジェクトの両方に対するアクセス許可が必要です。  
ユースケースによっては、ポリシーのサンプルにすべてのアクセス許可を追加する必要がない場合があります。また、その他のアクセス許可が必要になる可能性もあります。例えば、Amazon S3 バケットが暗号化されている場合には、 `kms:Decrypt` アクセス許可を追加する必要があります。

以下のステップを使用して、ユーザーの代わりに Aurora から Amazon S3 バケットにアクセスするために必要な最低のアクセス権限を提供する IAM ポリシーを作成できます。Aurora からすべての Amazon S3 バケットへのアクセスを許可するには、以下のステップをスキップし、独自のポリシーを作成する代わりに定義済みの IAM ポリシーである `AmazonS3ReadOnlyAccess` または `AmazonS3FullAccess` を使用できます。

**Amazon S3 リソースへのアクセスを許可する IAM ポリシーを作成するには**

1. [IAM マネジメントコンソール](https://console.aws.amazon.com/iam/home?#home)を開きます。

1. ナビゲーションペインで、[**ポリシー**] を選択します。

1. [**ポリシーの作成**] を選択します。

1. [**Visual editor**] タブで、[**Choose a service**] を選択し、[**S3**] を選択します。

1. [**アクション**] で [**すべて展開**] を選択してから、IAM ポリシーに必要なバケットへのアクセス許可とオブジェクトへのアクセス許可を選択します。

   オブジェクトへのアクセス許可は、Amazon S3 のオブジェクトオペレーションのアクセス許可であり、バケット自体ではなくバケット内のオブジェクトに付与する必要があります。Amazon S3 におけるオブジェクトオペレーションのアクセス許可の詳細については、「[オブジェクトオペレーションに対するアクセス許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects)」を参照してください。

1. [**リソース**] を選択し、[**バケット**] に [**ARN の追加**] を選択します。

1. [**ARN の追加**] ダイアログボックスで、リソースの詳細を指定し、[**追加**] を選択します。

   アクセスを許可する Amazon S3 バケットを指定します。例えば、*amzn-s3-demo-bucket* という名前の Amazon S3 バケットへのアクセスを Aurora に許可するには、Amazon リソースネーム (ARN) の値を `arn:aws:s3:::amzn-s3-demo-bucket` に設定します。

1. [**オブジェクト**] リソースがリストされた場合は、[**オブジェクト**] に対して [**ARN の追加**] を選択します。

1. [**Add ARN(s)**] ダイアログボックスで、リソースの詳細を指定します。

   Amazon S3 バケットの場合は、アクセスを許可する Amazon S3 バケットを指定します。オブジェクトの場合は、[**Any**] を選択してバケット内の任意のオブジェクトにアクセス許可を付与できます。
**注記**  
Aurora から Amazon S3 バケット内の特定のファイルやフォルダにのみアクセスすることを許可するには、[**Amazon リソースネーム (ARN)**] により具体的な ARN 値を設定することができます。Amazon S3 のアクセスポリシーの定義方法については、「[Amazon S3 リソースへのアクセス許可の管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)」を参照してください。

1. (オプション) **バケット**の [**ARN の追加**] を選択して、別の Amazon S3 バケットをポリシーに追加し、そのバケットに対して前のステップを繰り返します。
**注記**  
このステップを繰り返して、対応するバケットのアクセス許可ステートメントを、Aurora からアクセスする各 Amazon S3 バケットのポリシーに追加できます。オプションで、Amazon S3 内のすべてのバケットとオブジェクトへのアクセスを許可できます。

1. [**ポリシーの確認**] を選択します。

1. [** 名前**] に、IAM ポリシーの名前 (例: `AllowAuroraToExampleBucket`) を設定します。IAM ロールを作成して Aurora DB クラスターに関連付ける際に、この名前を使用します。オプションで [**Description**] 値を追加することもできます。

1. [**Create policy**] を選択します。

1. 「[Amazon Aurora が AWS のサービスにアクセスすることを許可する IAM ロールの作成](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md)」の各ステップを実行します。