本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 S3 一般用途儲存貯體使用標籤
AWS 標籤是金鑰值對,可保留資源的中繼資料,在此情況下為 Amazon S3 一般用途儲存貯體。您可以在建立 S3 儲存貯體或管理現有儲存貯體上的標籤時標記 S3 儲存貯體。如需有關標籤的一般資訊,請參閱 成本分配或屬性型存取控制 (ABAC) 的標記。
注意
在超過標準 S3 API 請求率的儲存貯體上使用標籤不會產生額外費用。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價
搭配儲存貯體使用標籤的常見方式
在 S3 儲存貯體上使用標籤:
-
成本分配 – 依照 AWS Billing and Cost Management中的儲存貯體標籤追蹤儲存成本。如需詳細資訊,請參閱使用標籤分配成本。
-
屬性型存取控制 (ABAC) – 擴展存取許可,並根據 S3 儲存貯體的標籤授予存取權。如需詳細資訊,請參閱使用標籤執行 ABAC。
注意
對於一般用途儲存貯體,預設不會啟用 ABAC。若要為一般用途儲存貯體啟用 ABAC,請參閱 在一般用途儲存貯體中啟用 ABAC。對於存取點和目錄儲存貯體等 Amazon S3 資源,預設為啟用 ABAC。您可以將相同的標籤同時用於成本分配和存取控制。
適用於 S3 一般用途儲存貯體的 ABAC
Amazon S3 一般用途儲存貯體支援使用標籤的屬性型存取控制 (ABAC)。在您的 AWS 組織、IAM 和 S3 儲存貯體政策中使用標籤型條件金鑰。對於企業,Amazon S3 中的 ABAC 支援跨多個 AWS 帳戶進行授權。
在 IAM 政策中,您可以使用下列全域條件金鑰,根據儲存貯體的標籤控制對 S3 儲存貯體的存取:
-
aws:ResourceTag/key-name-
使用此條件索引鍵來比較您在政策中指定的標籤索引鍵/值對與連接到資源的索引鍵/值對。S3 只會在儲存貯體上啟用 ABAC 之後評估此條件金鑰。例如,您可以要求只在資源擁有連接標籤鍵
Dept和值Marketing時才允許資源的存取。如需詳細資訊,請參閱控制對 AWS 資源的存取。
-
-
aws:RequestTag/key-name-
使用此條件金鑰,將請求中傳遞的標籤鍵值對與您在政策中指定的標籤對進行比較。例如,您可以檢查請求是否包含標籤鍵
Dept並且其具有值Accounting。如需詳細資訊,請參閱在AWS 請求期間控制存取。您可以使用此條件索引鍵,限制在TagResource和CreateBucketAPI 操作期間可以傳遞哪些標籤鍵值對。
-
-
aws:TagKeys-
使用此條件索引鍵,將請求中的標籤索引鍵與您在政策中指定的索引鍵進行比較。當使用政策來控制使用標籤的存取時,建議您使用
aws:TagKeys條件鍵來定義允許的標籤鍵。如需範例政策和詳細資訊,請參閱根據標籤金鑰控制存取權限。
-
-
s3:BucketTag/tag-key-
使用此條件索引鍵,使用標籤將許可授予儲存貯體中的特定資料。此條件金鑰僅適用於在儲存貯體上啟用 ABAC 之後。使用存取點存取儲存貯體時,
aws:ResourceTag/tag-key條件索引鍵會在授權存取點和儲存貯體時參考儲存貯體上的標籤。只會s3:BucketTag/tag-key參考其授權之儲存貯體的標籤。
-
注意
建立具有標籤的儲存貯體時,請注意,使用 aws:ResourceTag 和 s3:BucketTag 條件金鑰存取儲存貯體的標籤型條件僅適用於在儲存貯體上啟用 ABAC 之後。如需詳細資訊,請參閱 在一般用途儲存貯體中啟用 ABAC。
儲存貯體的範例 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": [ "s3:CreateBucket", "s3:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }
1.2 - 限制操作的儲存貯體政策
在此儲存貯體政策中,只有在儲存貯體上的project 標籤值符合主體上的project標籤值時s3:GetObject,才會拒絕儲存貯體上的 IAM 主體 (使用者和角色) s3:ListBucket、 和 s3:PutObject動作。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyObjectOperations", "Effect": "Deny", "Principal": "*", "Action": ["s3:ListBucket", "s3:GetObject", "s3:PutObject"], "Resource": "arn:aws:s3:::aws-s3-demo/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.3 - 修改現有資源上標籤的 IAM 政策
在此 IAM 政策中,只有在儲存貯體的 project 標籤值符合主體的 project 標籤值時,IAM 主體 (使用者或角色) 才能修改儲存貯體上的標籤。這些儲存貯體僅允許aws:TagKeys條件索引鍵中cost-center指定的四個標籤 project environmentowner、、 和 。這有助於強制執行標籤治理、防止未經授權的標籤修改,並且使所有儲存貯體的標記結構描述保持一致。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3:TagResource", "s3:CreateBucket" ], "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }
1.4 - 使用 s3:BucketTag 條件金鑰
在此 IAM 政策中,只有在aws-s3-demo儲存貯體具有標籤索引鍵 Environment和標籤值 時,條件陳述式才會允許存取儲存貯體的資料Production。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessViaSpecificBucket", "Effect": "Allow", "Action": "*", "Resource": ["arn:aws:s3:::aws-s3-demo","arn:aws:s3:::aws-s3-demo/*"], "Condition": { "StringEquals": { "s3:BucketTag/Environment": "Production" } } } ] }
管理一般用途儲存貯體的標籤
您可以使用 Amazon S3 主控台、 AWS 命令列界面 (CLI)、 AWS SDKs 或使用 S3 APIs 來新增或管理 S3 儲存貯體的標籤:TagResource、UntagResource 和 ListTagsForResource。如需詳細資訊,請參閱: