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

{ "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 標籤值符合主體的 project 標籤值時,IAM 主體 (使用者或角色) 才能修改儲存貯體上的標籤。這些目錄儲存貯體僅允許 aws:TagKeys 條件索引鍵中指定的四個標籤 projectenvironmentownercost-center。這有助於強制執行標籤治理、防止未經授權的標籤修改,並且使所有儲存貯體的標記結構描述保持一致。

{ "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。如需詳細資訊,請參閱: