为 Amazon S3 on Outposts 存储桶添加或编辑存储桶策略
存储桶策略是基于资源的 AWS Identity and Access Management (IAM) 策略,您可以使用该策略向存储桶及其中对象授予访问权限。只有存储桶拥有者才能将策略与存储桶关联。附加到存储桶的权限适用于存储桶拥有者拥有的存储桶中所有对象。存储桶策略的大小限制为 20 KB。有关更多信息,请参阅 存储桶策略。
以下主题显示如何使用 AWS Management Console、AWS Command Line Interface (AWS CLI) 或 AWS SDK for Java 更新 Amazon S3 on Outposts 存储桶策略。
创建或编辑存储桶策略
登录到 AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在左侧导航窗格中,选择 Outposts buckets(Outposts 存储桶)。
-
选择您要编辑其权限的 Outposts 存储桶。
-
选择权限选项卡。
-
在 Outposts bucket policy(Outposts 存储桶策略)部分,要创建或编辑新策略,请选择 Edit(编辑)。
现在,您可以添加或编辑 S3 on Outposts 存储桶策略。有关更多信息,请参阅 使用 S3 on Outposts 设置 IAM。
以下 AWS CLI 示例在 Outpost 存储桶上放置策略。
-
将以下存储桶策略保存到 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
" } ] } -
将 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()); }