为 Amazon S3 on Outposts 存储桶添加或编辑存储桶策略 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为 Amazon S3 on Outposts 存储桶添加或编辑存储桶策略

存储桶策略是基于资源的 Amazon Identity and Access Management (IAM) 策略,您可以使用该策略向存储桶及其中对象授予访问权限。只有存储桶所有者才能将策略与存储桶关联。附加到存储桶的权限适用于存储桶所有者拥有的存储桶中所有对象。存储桶策略的大小限制为 20 KB。有关更多信息,请参阅桶策略

以下主题显示如何使用 Amazon Web Services Management Console、Amazon Command Line Interface (Amazon CLI) 或 Amazon SDK for Java 更新 Amazon S3 on Outposts 存储桶策略。

创建或编辑存储桶策略
  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中,选择 Outposts buckets(Outposts 存储桶)。

  3. 选择您要编辑其权限的 Outposts 存储桶。

  4. 请选择 Permissions 选项卡。

  5. Outposts bucket policy(Outposts 存储桶策略)部分,要创建或编辑新策略,请选择 Edit(编辑)。

    现在,您可以添加或编辑 S3 on Outposts 存储桶策略。有关更多信息,请参阅使用 S3 on Outposts 设置 IAM

以下 Amazon CLI 示例在 Outpost 存储桶上放置策略。

  1. 将以下存储桶策略保存到 JSON 文件中。在本示例中,文件命名为 policy1.json。将 user input placeholders 替换为您自己的信息。

    { "Version":"2012-10-17", "Id":"testBucketPolicy", "Statement":[ { "Sid":"st1", "Effect":"Allow", "Principal":{ "AWS":"123456789012" }, "Action":"s3-outposts:*", "Resource":"arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket" } ] }
  2. 将 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

以下 SDK for Java 示例在 Outpost 存储桶上放置策略。

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()); }