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

为 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 存储桶策略。

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

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

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

  4. 选择权限选项卡。

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

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

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