

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon S3 バケットへのアクセスを設定する
<a name="s3-bucket-access"></a>

複数の Amazon Bedrock 機能を使用するには、Amazon S3 バケットに保存されているデータにアクセスする必要があります。このデータにアクセスするには、次のアクセス許可を設定する必要があります。


****  

| ユースケース | 権限 | 
| --- | --- | 
| S3 バケットからデータを取得するためのアクセス許可 | s3:GetObjects3:ListBucket | 
| S3 バケットにデータを書き込むためのアクセス許可 | s3:PutObject | 
| S3 バケットを暗号化した KMS キーを復号するためのアクセス許可 | kms:Decryptkms:DescribeKey | 

上記のアクセス許可をアタッチする必要がある ID またはリソースは、次の要因によって異なります。
+ Amazon Bedrock の複数の機能で、[サービスロール](security-iam-sr.md)を使用します。機能でサービスロールを使用する場合は、ユーザーの IAM ID ではなくサービスロールが S3 データにアクセスできるようにアクセス許可を設定する必要があります。一部の Amazon Bedrock 機能では、AWS マネジメントコンソール を使用している場合、自動的にサービスロールを作成し、必要な [ID ベースのアクセス許可](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies.html#policies_id-based)をサービスロールにアタッチします。
+ Amazon Bedrock の一部の機能では、ID が別のアカウントの S3 バケットにアクセスできるようになります。別のアカウントから S3 データにアクセスする必要がある場合、バケット所有者は、S3 バケットにアタッチされた [S3 バケットポリシー](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)に上記の[リソースベースのアクセス許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)を含める必要があります。

以下で、S3 データにアクセスするために必要なアクセス許可をアタッチする必要がある場所を特定する方法について説明します。
+ IAM アイデンティティのアクセス許可
  + コンソールでサービスロールを自動作成できる場合、アクセス許可がサービスロール向けに設定されるため、自分で設定する必要はありません。
  + カスタムサービスロールを使用する場合、またはアクセスを必要とする ID がサービスロールでない場合は、[IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する](#s3-bucket-access-identity) に移動して、適切なアクセス許可を持つ ID ベースのポリシーを作成する方法を確認してください。
+ リソースベースのアイデンティティアクセス許可
  + ID が同じアカウントの S3 データにアクセスする必要がある場合は、データを含むバケットに S3 バケットポリシーをアタッチする必要はありません。
  + ID が別のアカウントの S3 データにアクセスする必要がある場合は、[バケットポリシーを Amazon S3 バケットにアタッチして、別のアカウントにバケットポリシーへのアクセスを許可する](#s3-bucket-access-cross-account) に移動して、適切なアクセス許可を持つ S3 バケットポリシーを作成する方法を確認してください。
**重要**  
でサービスロールを自動的に作成すると、適切な ID ベースのアクセス許可がロールにAWS マネジメントコンソールアタッチされますが、アクセスを必要とする ID が別の にある場合は、S3 バケットポリシーを設定する必要がありますAWS アカウント。

詳細については、以下のリンクを参照してください。
+ Amazon S3 のデータへのアクセスの制御の詳細については、「[Amazon S3 でのアクセスコントロール](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-management.html)」を参照してください。
+ Amazon S3 のアクセス許可の詳細については、「[Amazon S3 で定義されるアクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-actions-as-permissions)」を参照してください。
+ アクセスAWS KMS許可の詳細については、「 [で定義されるアクションAWS Key Management Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awskeymanagementservice.html#awskeymanagementservice-actions-as-permissions)」を参照してください。

ユースケースに関連するトピックに進みます。

**Topics**
+ [

## IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する
](#s3-bucket-access-identity)
+ [

## バケットポリシーを Amazon S3 バケットにアタッチして、別のアカウントにバケットポリシーへのアクセスを許可する
](#s3-bucket-access-cross-account)
+ [

## (高度なセキュリティオプション) よりきめ細かなアクセスのためにステートメントに条件を含める
](#s3-bucket-access-conditions)

## IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する
<a name="s3-bucket-access-identity"></a>

このトピックでは、IAM ID にアタッチするポリシーのテンプレートについて説明します。このポリシーには、IAM ID に S3 バケットへのアクセスを許可するアクセス許可を定義する以下のステートメントが含まれています。

1. S3 バケットからデータを取得するためのアクセス許可。このステートメントには、`s3:prefix` [条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys)を使用してバケット内の特定のフォルダへのアクセスを制限する条件も含まれています。この条件の詳細については、「[例 2: 特定のプレフィックスを持つバケット内のオブジェクト一覧の取得](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)」の「**ユーザーポリシー**」セクションを参照してください。

1. (S3 の場所にデータを書き込む必要がある場合) S3 バケットにデータを書き込むためのアクセス許可。このステートメントには、 条件キーを使用して、特定の から送信されるリクエストへのアクセスを制限する`aws:ResourceAccount`条件も含まれていますAWS アカウント。 [https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount](https://docs.aws.amazon.com//IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount)

1. (S3 バケットが KMS キーで暗号化されている場合) S3 バケットを暗号化した KMS キーを記述および復号するためのアクセス許可。
**注記**  
S3 バケットのバージョニングが有効になっている場合、この機能を使用してアップロードする各オブジェクトバージョンに、独自の暗号化キーを使用できます。どのオブジェクトバージョンにどの暗号化キーを使用したかは、お客様が管理してください。

以下のポリシーのステートメント、リソース、および条件を追加、変更、削除し、必要に応じて *\$1\$1values\$1* を置き換えます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "DecryptKMSKey",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}"
        }
    ]
}
```

------

ポリシーをユースケースに変更した後、それを S3 バケットへのアクセスを必要とするサービスロール (または IAM ID) にアタッチします。IAM ID にアクセス許可をアタッチする方法については、「[IAM ID アクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## バケットポリシーを Amazon S3 バケットにアタッチして、別のアカウントにバケットポリシーへのアクセスを許可する
<a name="s3-bucket-access-cross-account"></a>

このトピックでは、リソースベースのポリシーを S3 バケットにアタッチして、IAM ID がバケット内のデータにアクセスできるようにするテンプレートについて説明します。このポリシーには、ID がバケットにアクセスするためのアクセス許可を定義する以下のステートメントが含まれています。

1. S3 バケットからデータを取得するためのアクセス許可。

1. (S3 の場所にデータを書き込む必要がある場合) S3 バケットにデータを書き込むためのアクセス許可。

1. (S3 バケットが KMS キーで暗号化されている場合) S3 バケットを暗号化した KMS キーを記述および復号するためのアクセス許可。
**注記**  
S3 バケットのバージョニングが有効になっている場合、この機能を使用してアップロードする各オブジェクトバージョンに、独自の暗号化キーを使用できます。どのオブジェクトバージョンにどの暗号化キーを使用したかは、お客様が管理してください。

アクセス許可は、「[IAM ID にアクセス許可をアタッチして、Amazon S3 バケットへのアクセスを許可する](#s3-bucket-access-identity)」で説明されている ID ベースのアクセス許可と同様です。ただし、各ステートメントでは、`Principal` フィールドのリソースにアクセス許可を付与する ID も指定する必要があります。`Principal` フィールドに ID (Amazon Bedrock のほとんどの機能で、これはサービスロールです) を指定します。以下のポリシーのステートメント、リソース、および条件を追加、変更、削除し、必要に応じて *\$1\$1values\$1* を置き換えます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::${S3Bucket}",
                "arn:aws:s3:::${S3Bucket}/*"
            ]
        },
        {
            "Sid": "DecryptKMSKey",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/ServiceRole"
            },
            "Action": [
                "kms:Decrypt",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:123456789012:key/${KMSKeyId}"
        }
    ]
}
```

------

ポリシーをユースケースに変更した後、それを S3 バケットにアタッチします。S3 バケットにポリシーをアタッチする方法については、「[Amazon S3 コンソールを使用したバケットポリシーの追加](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)」を参照してください。

## (高度なセキュリティオプション) よりきめ細かなアクセスのためにステートメントに条件を含める
<a name="s3-bucket-access-conditions"></a>

リソースにアクセスできる ID をより詳細に制御するために、ポリシーステートメントに条件を含めることができます。このトピックのポリシーでは、以下の条件キーを使用する例を示します。
+ `s3:prefix` – S3 バケット内の特定のフォルダへのアクセスを制限する S3 条件キー。この条件キーの詳細については、「[例 2: 特定のプレフィックスを持つバケット内のオブジェクト一覧の取得](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazon-s3-policy-keys.html#condition-key-bucket-ops-2)」の「**ユーザーポリシー**」セクションを参照してください。
+ `aws:ResourceAccount` – 特定の からのリクエストへのアクセスを制限するグローバル条件キーAWS アカウント。

次のポリシーは、*amzn-s3-demo-bucket S3* S3 バケットの *my-folder* フォルダへの読み取りアクセスを制限し、*amzn-s3-demo-destination-bucket* S3 バケットの書き込みアクセスを ID *111122223333* AWS アカウントの からのリクエストに制限します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket",
                "arn:aws:s3:::amzn-s3-demo-bucket/*"
            ],
            "Condition" : {
                "StringEquals" : {
                    "s3:prefix": "my-folder" 
                }
            }
        },
        {
            "Sid": "WriteToS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket",
                "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "111122223333"
                }
            }
        }
    ]
}
```

------

条件と条件キーの詳細については、以下のリンクを参照してください。
+ 条件の詳細については、IAM ユーザーガイドの「[IAM JSON ポリシー要素: 条件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)」を参照してください。
+ S3 に特有の条件キーについては、「サービス認可リファレンス」の「[Amazon S3 の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html#amazons3-policy-keys)」を参照してください。
+ で使用されるグローバル条件キーについてはAWS のサービス、[AWS「 グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourceaccount)」を参照してください。