標記與存取控制政策 - Amazon Simple Storage Service

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

標記與存取控制政策

您也可以使用許可政策 (儲存貯體與使用者政策) 來管理與物件標記相關的許可。如需了解政策動作,請參閱下列主題:

物件標籤可以為管理許進行更精細地分級存取控制。您可以使用物件標籤來授予條件式許可。Amazon S3 支援下列條件金鑰,可讓您用於授予採用依物件標籤區分的條件式許可。

  • s3:ExistingObjectTag/<tag-key> - 使用此條件金鑰可驗證現有的物件標籤是否包含特定的金鑰與值。

    注意

    PUT ObjectDELETE Object 操作授予許可時,不支援此條件金鑰。亦即,您無法建立政策來根據現有的標籤授予或拒絕使用者刪除或覆寫物件的許可。

  • s3:RequestObjectTagKeys - 使用此條件金鑰可限制能對物件使用的標籤金鑰。這在使用 PutObjectTagging 和 PutObject 以及 POST 物件請求將標籤新增至物件時非常有用。

  • s3:RequestObjectTag/<tag-key> - 使用此條件金鑰可限制能對物件使用的標籤金鑰與值。這在使用 PutObjectTagging 和 PutObject 以及 POST 儲存貯體請求將標籤新增至物件時非常有用。

如需 Amazon S3 服務專用的條件金鑰詳細清單,請參閱使用條件索引鍵的儲存貯體政策範例。下列許可政策示範物件標記如何精細分級許可管理。

範例 1:允許使用者只讀取具有特定標籤和金鑰值的物件

下列許可政策會限制使用者只能讀取具有 environment: production 標籤金鑰和值的物件。此政策會使用 s3:ExistingObjectTag 條件金鑰來指定標籤金鑰和值。

{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": ["s3:GetObject", "s3:GetObjectVersion"], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "StringEquals": {"s3:ExistingObjectTag/environment": "production"} } } ] }
範例 2:限制使用者可以新增哪些物件標籤金鑰

下列許可政策為使用者授予執行 s3:PutObjectTagging 動作的許可,該動作允許使用者為現有的物件新增標籤。此條件使用 s3:RequestObjectTagKeys 條件金鑰指定允許的標籤金鑰,例如 OwnerCreationDate。如需詳細資訊,請參閱 IAM 使用者指南中的建立測試多個金鑰值的條件

此政策可確保請求中指定的每個索引標籤金鑰都是授權的標籤金鑰。條件中的 ForAnyValue 限定詞可確保請求中至少會出現其中一個指定的金鑰。

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:role/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": {"ForAnyValue:StringEquals": {"s3:RequestObjectTagKeys": [ "Owner", "CreationDate" ] } } } ] }
範例 3:允許使用者新增物件標籤時,需要特定標籤金鑰和值

下列範例政策授予使用者執行 s3:PutObjectTagging 動作的許可,允許使用者將標籤新增至現有的物件。此條件需要使用者包括值設為 X 的特定標籤 (例如 Project)。

{ "Version": "2012-10-17", "Statement": [ {"Principal":{"AWS":[ "arn:aws:iam::111122223333:user/JohnDoe" ] }, "Effect": "Allow", "Action": [ "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ], "Condition": {"StringEquals": {"s3:RequestObjectTag/Project": "X" } } } ] }