

# Amazon S3 on Outposts バケットのバケットポリシーを追加または編集する
<a name="S3OutpostsBucketPolicyEdit"></a>

バケットポリシーは、リソースベースの AWS Identity and Access Management (IAM) ポリシーを使用して、バケットとその中のオブジェクトへのアクセス許可を付与できます。バケット所有者のみが、ポリシーをバケットに関連付けることができます。バケットに添付された許可は、バケット所有者が所有するバケットのすべてのオブジェクトに適用されます。バケットポリシーのサイズは 20 KB に制限されています。詳細については、「[バケットポリシー](S3onOutposts.md#S3OutpostsBucketPolicies)」を参照してください。

以下のトピックでは、AWS マネジメントコンソール、AWS Command Line Interface (AWS CLI)、または AWS SDK for Java を使用して、Amazon S3 on Outposts バケットポリシーを更新する方法を示します。

## S3 コンソールの使用
<a name="s3-outposts-bucket-edit-policy"></a>

**バケットポリシーを作成または編集するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. 左のナビゲーションペインで、[**Outposts buckets**] (Outposts バケット) を選択します。

1. バケットポリシーを編集する Outposts バケットを選択します。

1. **[アクセス許可]** タブを選択します。

1. **[Outposts bucket policy]** (Outposts バケットポリシー) セクションで、新しいポリシーを作成または編集するには、**[Edit]** (編集) を選択します。

   これで、S3 on Outposts バケットポリシーを追加または編集できます。詳細については、「[S3 on Outposts で IAM を設定する](S3OutpostsIAM.md)」を参照してください。

## AWS CLI の使用
<a name="S3OutpostsPutBucketPolicyCLI"></a>

次の AWS CLI の例では、Outposts バケットにポリシーを配置します。

1. 以下のバケットポリシーを JSON ファイルに保存します。この例では、ファイル名は `policy1.json` です。`user input placeholders` を、ユーザー自身の情報に置き換えます。

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

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Id":"testBucketPolicy",
      "Statement":[
         {
            "Sid":"st1",
            "Effect":"Allow",
            "Principal":{
               "AWS":"arn:aws:iam::123456789012:root"
            },
            "Action":[
               "s3-outposts:GetObject",
               "s3-outposts:PutObject",
               "s3-outposts:DeleteObject",
               "s3-outposts:ListBucket"
            ],
            "Resource":"arn:aws:s3-outposts:us-east-1:123456789012:outpost/op-01ac5d28a6a232904/bucket/amzn-s3-demo-bucket"
         }
      ]
   }
   ```

------

1. `put-bucket-policy` CLI コマンドの一部として JSON ファイルを送信します。このコマンドを実行するには、`user input placeholders` をユーザー自身の情報に置き換えます。

   ```
   aws s3control put-bucket-policy --account-id 123456789012 --bucket arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket --policy file://policy1.json
   ```

## AWS SDK for Java の使用
<a name="S3OutpostsPutBucketPolicyJava"></a>

次の SDK for Java の例では、Outposts バケットにポリシーを配置します。

```
import com.amazonaws.services.s3control.model.*;

public void putBucketPolicy(String bucketArn) {

    String policy = "{\"Version\":\"2012-10-17\",\"Id\":\"testBucketPolicy\",\"Statement\":[{\"Sid\":\"st1\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"" + AccountId+ "\"},\"Action\":\"s3-outposts:*\",\"Resource\":\"" + bucketArn + "\"}]}";

    PutBucketPolicyRequest reqPutBucketPolicy = new PutBucketPolicyRequest()
            .withAccountId(AccountId)
            .withBucket(bucketArn)
            .withPolicy(policy);

    PutBucketPolicyResult respPutBucketPolicy = s3ControlClient.putBucketPolicy(reqPutBucketPolicy);
    System.out.printf("PutBucketPolicy Response: %s%n", respPutBucketPolicy.toString());

}
```