

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 新增或編輯 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) 或 更新 Amazon S3 on Outposts 儲存貯體政策 適用於 Java 的 AWS SDK。

## 使用 S3 主控台
<a name="s3-outposts-bucket-edit-policy"></a>

**建立或編輯儲存貯體政策**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在左側導覽窗格中，選擇 **Outposts buckets** (Outposts 儲存貯體)。

1. 選擇您要編輯其儲存貯體政策的 Outposts 儲存貯體。

1. 選擇**許可**索引標籤。

1. 在 **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. 提交 JSON 檔案以做為 `put-bucket-policy` CLI 命令的一部分。若要執行此命令，請以您自己的資訊取代 `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
   ```

## 使用適用於 Java 的 AWS 開發套件
<a name="S3OutpostsPutBucketPolicyJava"></a>

下列適用於 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());

}
```