搭配 S3 目錄儲存貯體使用標籤 - Amazon Simple Storage Service

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

搭配 S3 目錄儲存貯體使用標籤

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

注意

在超出標準 S3 API 請求率的目錄儲存貯體上使用標籤不會產生額外費用。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價

搭配目錄儲存貯體使用標籤的常見方式

在 S3 目錄儲存貯體上使用標籤:

  1. 成本分配 – 依儲存貯體標籤追蹤儲存成本 AWS 帳單與成本管理。如需詳細資訊,請參閱使用標籤進行成本分配

  2. 屬性型存取控制 (ABAC) – 擴展存取許可,並根據 S3 目錄儲存貯體的標籤授予存取權。如需詳細資訊,請參閱使用 ABAC 標籤

注意

您可以針對成本分配和存取控制使用相同的標籤。

適用於 S3 目錄儲存貯體的 ABAC

Amazon S3 目錄儲存貯體支援使用標籤的屬性型存取控制 (ABAC)。在 AWS 組織、IAM 和 S3 目錄儲存貯體政策中使用標籤型條件索引鍵。對於企業,Amazon S3 中的 ABAC 支援跨多個 AWS 帳戶進行授權。

在 IAM 政策中,您可以使用下列全域條件索引鍵,根據儲存貯體的標籤控制對 S3 目錄儲存貯體的存取:

  • aws:ResourceTag/key-name

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

  • aws:RequestTag/key-name

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

  • aws:TagKeys

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

  • s3express:BucketTag/tag-key

    • 使用此條件索引鍵,使用標籤將許可授予目錄儲存貯體中的特定資料。使用存取點存取目錄儲存貯體時,此條件索引鍵會在對存取點和目錄儲存貯體進行授權時參考目錄儲存貯體上的標籤,而 aws:ResourceTag/tag-key只會參考正在授權的資源標籤。

目錄儲存貯體的範例 ABAC 政策

請參閱下列適用於 Amazon S3 目錄儲存貯體的範例 ABAC 政策。

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

在此 IAM 政策中,具有此政策的使用者或角色只有在儲存貯體在儲存貯體建立請求Trinity中使用標籤索引鍵project和標籤值標記時,才能建立 S3 目錄儲存貯體。只要TagResource請求包含標籤鍵/值對 ,他們也可以在現有的 S3 目錄儲存貯體上新增或修改標籤project:Trinity。此政策不會授予對儲存貯體或其物件的讀取、寫入或刪除許可。

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

1.2 - 使用標籤限制儲存貯體操作的儲存貯體政策

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowObjectOperations", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3express:CreateSession", "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/amzn-s3-demo-bucket--usw2-az1--x-s3", "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": [ "s3express:TagResource" ], "Resource": "arn:aws::s3express:us-west-2:111122223333:bucket/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }

1.4 - 使用 s3express:BucketTag 條件索引鍵

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificAccessPoint", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3express:us-west-2:111122223333:accesspoint/*", "Condition": { "StringEquals": { "s3express:BucketTag/Environment": "Production" } } } ] }

管理目錄儲存貯體的標籤

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