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

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

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

AWS 標籤是金鑰值對,可保留資源的中繼資料,在此情況下為 Amazon S3 目錄儲存貯體。您可以在建立 S3 目錄儲存貯體或管理現有目錄儲存貯體上的標籤時標記 S3 目錄儲存貯體。在超出標準 S3 API 請求率的目錄儲存貯體上使用標籤不會產生額外費用。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價

標籤的運作方式

Amazon S3 目錄儲存貯體支援兩種類型的標籤:

  • AWS產生的標籤: AWS 會自動套用這些標籤,您無法修改或移除它們。若要進一步了解 AWS產生的標籤,請參閱使用 AWS產生的標籤

  • 使用者定義的標籤:您可以將這些標籤套用至 S3 目錄儲存貯體或其他資源,並加以管理。

使用者定義的標籤

使用者定義的標籤是您用來標記資源的標籤鍵/值對。使用者定義的標籤包含必要的金鑰和選用值。這些是使用者定義標籤的主要元件:

標籤索引鍵

標籤金鑰是標籤必要的名稱。例如, project是下列標籤鍵值對中的標籤鍵:

金鑰
project Trinity

標籤索引鍵是區分大小寫的字串,必須包含 1 到 128 個 Unicode 字元。

標籤值

標籤值是選用的字串。例如, Trinity是此標籤鍵值對中的標籤值:

金鑰
project Trinity

標籤值是區分大小寫的字串,可包含 0 到 256 個 Unicode 字元。

如需使用者定義標籤中允許的字元和其他限制的詳細資訊,請參閱AWS 帳單與成本管理 《 使用者指南》中的使用者定義標籤限制

標籤集

每個 S3 目錄儲存貯體都有一個標籤集,其中包含指派給該儲存貯體的所有標籤索引鍵和值對。標籤集最多可包含 50 個使用者定義的標籤,也可以是空的。

雖然每個金鑰在標籤集中必須是唯一的,但您可以多次使用相同的值。例如,對於下列兩個標籤索引鍵Trinity,您可以具有相同的值 :

金鑰
project Trinity
cost-center Trinity

在儲存貯體中,當您新增與現有標籤具有相同索引鍵的標籤時,新值會覆寫舊值。

AWS 不會將任何語意意義套用至您的標籤。我們會將標籤嚴格解譯為字元字串。

若要新增、列出、修改或刪除標籤,您可以使用 Amazon S3 主控台、 AWS 命令列界面 (AWS CLI) 或 Amazon S3 API。

使用標籤的常見方法

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

  1. 成本分配 – 依儲存貯體標籤追蹤儲存成本 AWS 帳單與成本管理。

  2. 屬性型存取控制 (ABAC) – 擴展存取許可,並根據 S3 目錄儲存貯體的標籤授予存取權。

注意

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

使用標籤進行成本分配

將標籤套用至 Amazon S3 S3 儲存成本。

若要開始追蹤成本:

  1. 將標籤新增至 S3 目錄儲存貯體或使用現有的標籤。如需如何將使用者定義標籤新增至目錄儲存貯體的詳細資訊,請參閱 使用標籤。例如,您可以使用識別專案或一組專案的標籤來標記儲存貯體。

  2. 在 AWS 帳單與成本管理 主控台中啟用成本分配的標籤。請參閱AWS 帳單與成本管理 《 使用者指南》中的啟用使用者定義的成本分配標籤。您可以啟用使用者定義或 AWS產生的標籤。如需詳細資訊,請參閱使用成本分配標籤組織和追蹤 AWS 成本

AWS 使用啟用的標籤,在各種帳單和成本管理工具中組織您的資源成本,例如:

  • 成本分配報告

    提供啟動標籤所組織成本的高階檢視。如需詳細資訊,請參閱《 AWS 帳單使用者指南》中的使用每月成本分配報告

  • 成本和用量報告 (CUR)

    提供一組最詳細的 AWS 成本和用量資料,包括標籤型成本明細。如需詳細資訊,請參閱 AWS Data Export 使用者指南中的什麼是 AWS 成本和用量報告?

使用屬性型存取控制 (ABAC) 的標籤

屬性型存取控制 (ABAC) 是一種授權策略,可根據屬性定義許可,即標籤。您可以將標籤連接至 AWS Identity and Access Management (IAM) 實體 (使用者或角色) 和 AWS 資源,例如 Amazon S3 目錄儲存貯體。然後,您可以在存取控制政策中使用標籤型條件來控制這些資源的許可,以便在滿足這些條件時允許或拒絕操作。

適用於 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只會參考正在授權的資源標籤。

政策範例

請參閱下列適用於 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:*:*: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:*:*:accesspoint/*", "Condition": { "StringEquals": { "s3express:BucketTag/Environment": "Production" } } } ] }

使用標籤

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