管理目錄儲存貯體政策 - Amazon Simple Storage Service

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

管理目錄儲存貯體政策

您可以使用 Amazon S3 主控台、 AWS SDKs 和 AWS CLI 來新增、刪除、更新和檢視 Amazon S3 目錄儲存貯體的儲存貯體政策。如需詳細資訊,請參閱下列主題。如需 Supported AWS Identity and Access Management (IAM) 動作的詳細資訊,請參閱 使用 IAM 授權地區端點 API 操作。如需目錄儲存貯體的儲存貯體政策範例,請參閱 目錄儲存貯體的範例儲存貯體政策

新增儲存貯體政策

若要將儲存貯體政策新增至目錄儲存貯體,您可以使用 Amazon S3 主控台、 AWS SDK 或 AWS CLI。

建立或編輯儲存貯體政策
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/s3/ 開啟 Amazon S3 主控台。

  2. 在左側導覽窗格中,選擇目錄儲存貯體。

  3. 目錄儲存貯體清單中,選擇您要新增政策的儲存貯體名稱。

  4. 選擇許可索引標籤標籤。

  5. Bucket policy (儲存貯體政策) 下方,選擇 Edit (編輯)Edit bucket policy (編輯儲存貯體政策) 頁面隨即出現。

  6. 若要自動產生政策,請選擇政策產生器

    如果您選擇政策產生器, AWS 政策產生器會在新視窗中開啟。

    如果您不想使用 AWS 政策產生器,您可以在政策區段中新增或編輯 JSON 陳述式。

    1. AWS Policy Generator (AWS 政策產生器) 頁面上,針對 Select Type of Policy (選取政策類型),選擇 S3 Bucket Policy (S3 儲存貯體政策)。

    2. 在提供的欄位中輸入資訊,以新增陳述式,然後選擇 Add Statement (新增陳述式)。針對您想要新增的任意數量陳述式重複此步驟。如需這些欄位的詳細資訊,請參閱《IAM 使用者指南》中的 IAM JSON 政策元素參考

      注意

      為了您的方便,編輯儲存貯體政策頁面會在政策文字欄位上方顯示目前儲存貯體的儲存貯體 ARN (Amazon Resource Name)。您可以複製此 ARN,以在 AWS Policy Generator ( 政策產生器) 頁面上的陳述式中使用。

    3. 完成新增陳述式後,選擇 Generate Policy (產生政策)。

    4. 複製產生的政策文字,選擇 Close (關閉),然後退回 Amazon S3 主控台中的 Edit bucket policy (編輯儲存貯體政策) 頁面。

  7. 政策方塊中,編輯現有的政策,或從政策產生器貼上儲存貯體 AWS 政策。請務必先處理安全性警告、錯誤、一般警告,以及建議,然後再儲存政策。

    注意

    儲存貯體政策的大小限制為 20 KB。

  8. 選擇 Save changes (儲存變更),這會讓您回到 Permissions (許可) 索引標籤。

SDK for Java 2.x

PutBucketPolicy AWS SDK for Java 2.x

public static void setBucketPolicy(S3Client s3Client, String bucketName, String policyText) { //sample policy text /** * policy_statement = { * 'Version': '2012-10-17', * 'Statement': [ * { * 'Sid': 'AdminPolicy', * 'Effect': 'Allow', * 'Principal': { * "AWS": "111122223333" * }, * 'Action': 's3express:*', * 'Resource': 'arn:aws:s3express:region:111122223333:bucket/bucket-base-name--zone-id--x-s3' * } * ] * } */ System.out.println("Setting policy:"); System.out.println("----"); System.out.println(policyText); System.out.println("----"); System.out.format("On Amazon S3 bucket: \"%s\"\n", bucketName); try { PutBucketPolicyRequest policyReq = PutBucketPolicyRequest.builder() .bucket(bucketName) .policy(policyText) .build(); s3Client.putBucketPolicy(policyReq); System.out.println("Done!"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

此範例示範如何使用 AWS CLI將儲存貯體政策新增至目錄儲存貯體。若要使用此命令,請以您自己的資訊取代 使用者輸入預留位置

aws s3api put-bucket-policy --bucket bucket-base-name--zone-id--x-s3 --policy file://bucket_policy.json

bucket_policy.json:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AdminPolicy", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3express*", "Resource": "arn:aws:s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3" } ] }

如需詳細資訊,請參閱 AWS Command Line Interface中的 put-bucket-policy

檢視儲存貯體政策

若要檢視目錄儲存貯體的儲存貯體政策,請使用下列範例。

此範例示範如何使用 AWS CLI檢視連接至目錄儲存貯體的儲存貯體政策。若要使用此命令,請以您自己的資訊取代 使用者輸入預留位置

aws s3api get-bucket-policy --bucket bucket-base-name--zone-id--x-s3

如需詳細資訊,請參閱 AWS Command Line Interface中的 get-bucket-policy

刪除儲存貯體政策

若要刪除目錄儲存貯體的儲存貯體政策,請使用下列範例。

SDK for Java 2.x

DeleteBucketPolicy AWS SDK for Java 2.x

public static void deleteBucketPolicy(S3Client s3Client, String bucketName) { try { DeleteBucketPolicyRequest deleteBucketPolicyRequest = DeleteBucketPolicyRequest .builder() .bucket(bucketName) .build() s3Client.deleteBucketPolicy(deleteBucketPolicyRequest); System.out.println("Successfully deleted bucket policy"); } catch (S3Exception e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); }

此範例示範如何使用 AWS CLI刪除目錄儲存貯體的儲存貯體政策。若要使用此命令,請以您自己的資訊取代 使用者輸入預留位置

aws s3api delete-bucket-policy --bucket bucket-base-name--zone-id--x-s3

如需詳細資訊,請參閱 AWS Command Line Interface中的 delete-bucket-policy