針對一般用途儲存貯體搭配 S3 存取點使用標籤 - Amazon Simple Storage Service

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

針對一般用途儲存貯體搭配 S3 存取點使用標籤

AWS 標籤是金鑰值對,可保留資源的中繼資料,在此情況下為 Amazon S3 存取點。您可以在建立存取點或管理現有存取點上的標籤時標記存取點。如需標籤的一般資訊,請參閱 成本分配或屬性型存取控制 (ABAC) 的標記

注意

除了標準 S3 API 請求率之外,在存取點上使用標籤不會產生額外費用。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價

搭配存取點使用標籤的常見方式

屬性型存取控制 (ABAC) 可讓您擴展存取許可,並根據存取點的標籤授予存取點存取權。如需 Amazon S3 中 ABAC 的詳細資訊,請參閱使用 ABAC 標籤

S3 存取點的 ABAC

Amazon S3 存取點支援使用標籤的屬性型存取控制 (ABAC)。在您的 AWS 組織、IAM 和存取點政策中使用標籤型條件金鑰。對於企業,Amazon S3 中的 ABAC 支援跨多個 AWS 帳戶進行授權。

在您的 IAM 政策中,您可以使用下列全域條件金鑰,根據存取點的標籤來控制存取點的存取:

  • aws:ResourceTag/key-name

    重要

    aws:ResourceTag 條件金鑰只能用於透過存取點 ARN 針對一般用途儲存貯體執行的 S3 動作,並僅涵蓋基礎存取點標籤。

    • 使用此鍵來將您在政策中所指定的標籤鍵值對與連接到資源的鍵值對進行比較。例如,您可以要求只在資源擁有連接標籤鍵 Dept 和值 Marketing 時才允許資源的存取。如需詳細資訊,請參閱控制對 AWS 資源的存取

  • aws:RequestTag/key-name

    • 使用此鍵來將請求中傳遞的標籤鍵/值對與您在政策中所指定的標籤對進行比較。例如,您可以檢查請求是否包含標籤鍵 Dept 並且其具有值 Accounting。如需詳細資訊,請參閱在AWS 請求期間控制存取。您可以使用此條件金鑰來限制可在 TagResourceCreateAccessPoint API 操作期間傳遞的標籤鍵值對。

  • aws:TagKeys

    • 使用此鍵來將請求中的標籤鍵與您在政策中所指定的鍵進行比較。當使用政策來控制使用標籤的存取時,建議您使用 aws:TagKeys 條件鍵來定義允許的標籤鍵。如需政策範例和詳細資訊,請參閱根據標籤索引鍵控制存取。您可以使用標籤建立存取點。若要在 CreateAccessPoint API 操作期間允許標記,您必須建立同時包含 s3:TagResources3:CreateAccessPoint動作的政策。然後,您可以使用 aws:TagKeys 條件金鑰強制執行在CreateAccessPoint請求中使用特定標籤。

  • s3:AccessPointTag/tag-key

    • 使用此條件金鑰,透過使用標籤的存取點授予特定資料的許可。在 IAM 政策aws:ResourceTag/tag-key中使用 時,存取點和存取點指向的儲存貯體都必須具有與授權期間所考慮的相同標籤。如果您只想透過存取點標籤來控制對資料的存取,您可以使用 s3:AccessPointTag/tag-key 條件金鑰。

存取點的 ABAC 政策範例

請參閱下列 Amazon S3 存取點的 ABAC 政策範例。

1.1 - 建立或修改具有特定標籤的儲存貯體的 IAM 政策

在此 IAM 政策中,具有此政策的使用者或角色只有在存取點在建立請求Trinity中使用標籤索引鍵project和標籤值標記存取點時,才能建立存取點。只要TagResource請求包含標籤鍵/值對 ,他們也可以在現有存取點上新增或修改標籤project:Trinity

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateAccessPointWithTags", "Effect": "Allow", "Action": [ "s3:CreateAccessPoint", "s3:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }

1.2 - 使用標籤限制存取點操作的存取點政策

在此存取點政策中,只有在存取點project標籤的值符合主體project標籤的值時,IAM 主體 (使用者和角色) 才能在存取點上使用 GetObject動作來執行操作。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowObjectOperations", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3:GetObject", "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }

1.3 - 修改現有資源上的標籤以維護標記管理的 IAM 政策

在此 IAM 政策中,只有在存取點標籤的值符合主體project標籤的值時,IAM 主體 (使用者或角色) 才能修改存取點上的project標籤。這些存取點只允許aws:TagKeys條件索引鍵中cost-center指定的四個標籤 project environmentowner、、 和 。這有助於強制執行標籤控管、防止未經授權的標籤修改,並使標記結構描述在您的存取點之間保持一致。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3:TagResource" ], "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }

1.4 - 使用 s3:AccessPointTag 條件金鑰

在此 IAM 政策中,如果存取點具有標籤索引鍵 Environment和標籤值 ,則 條件陳述式允許存取儲存貯體的資料Production

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificAccessPoint", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point", "Condition": { "StringEquals": { "s3:AccessPointTag/Environment": "Production" } } } ] }

1.5 - 使用儲存貯體委派政策

在 Amazon S3 中,您可以將對 S3 儲存貯體政策的存取或控制委派給另一個 AWS 帳戶或其他帳戶中的特定 AWS Identity and Access Management (IAM) 使用者或角色。委派儲存貯體政策會將此其他帳戶、使用者或角色許可授予您的儲存貯體及其物件。如需詳細資訊,請參閱許可委派

如果使用委派儲存貯體政策,如下所示:

{ "Version": "2012-10-17", "Statement": { "Principal": {"AWS": "*"}, "Effect": "Allow", "Action": ["s3:*"], "Resource":["arn:aws::s3:::amzn-s3-demo-bucket/*", "arn:aws::s3:::amzn-s3-demo-bucket"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "111122223333" } } } }

在下列 IAM 政策中,如果存取點具有標籤索引鍵 Environment和標籤值 ,則 條件陳述式允許存取儲存貯體的資料Production

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificAccessPoint", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3:region:111122223333:accesspoint/my-access-point", "Condition": { "StringEquals": { "s3:AccessPointTag/Environment": "Production" } } } ] }

使用一般用途儲存貯體存取點的標籤

您可以使用 Amazon S3 主控台、 AWS 命令列界面 (CLI)、 AWS SDKs 或使用 S3 APIs 來新增或管理存取點的標籤:TagResourceUntagResourceListTagsForResource。如需詳細資訊,請參閱: