本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 S3 資料表儲存貯體使用標籤
AWS 標籤是金鑰值對,可保留資源的中繼資料,在此情況下為 Amazon S3 資料表儲存貯體。您可以在建立 S3 資料表儲存貯體或管理現有資料表儲存貯體上的標籤時標記 S3 資料表儲存貯體。如需有關標籤的一般資訊,請參閱 成本分配或屬性型存取控制 (ABAC) 的標記。
注意
在超過標準 S3 API 請求率的資料表儲存貯體上使用標籤不會產生額外費用。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價
搭配資料表儲存貯體使用標籤的常見方式
在 S3 資料表儲存貯體上使用標籤:
屬性型存取控制 (ABAC) – 擴展存取許可,並根據 S3 資料表儲存貯體的標籤授予存取權。如需詳細資訊,請參閱使用標籤執行 ABAC。
S3 資料表儲存貯體的 ABAC
Amazon S3 資料表儲存貯體支援使用標籤的屬性型存取控制 (ABAC)。在您的 AWS 組織、 AWS Identity and Access Management (IAM) 和 S3 資料表儲存貯體政策中使用標籤型條件索引鍵。Amazon S3 中的 ABAC 支援跨多個 AWS 帳戶進行授權。
在您的 IAM 政策中,您可以使用 s3tables:TableBucketTag/tag-key條件金鑰或AWS 全域條件金鑰:aws:ResourceTag/key-name、 aws:RequestTag/key-name或 ,根據資料表儲存貯體的標籤來控制對 S3 資料表儲存貯體的存取aws:TagKeys。
aws:ResourceTag/key-name
使用此條件索引鍵來比較您在政策中指定的標籤索引鍵/值對與連接到資源的索引鍵/值對。例如,您可以要求只有在資料表儲存貯體具有值為 Department的標籤索引鍵時,才允許存取資料表儲存貯體Marketing。
此條件索引鍵適用於使用 Amazon S3 主控台、 AWS 命令列界面 (CLI)、S3 APIs 或 AWS SDKs 執行的所有資料表儲存貯體動作,但 CreateBucket API 請求除外。
如需政策範例,請參閱 1.1 - 使用標籤限制資料表儲存貯體內資料表操作的資料表儲存貯體政策。
如需其他範例政策和詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的控制對 AWS 資源的存取。
注意
對於在資料表上執行的動作,此條件索引鍵作用於套用至資料表的標籤,而非套用至包含資料表之資料表儲存貯體的標籤。如果您希望 ABAC 政策在執行資料表動作時對資料表儲存貯體的標籤採取行動,請s3tables:TableBucketTag/tag-key改用 。
aws:RequestTag/key-name
使用此條件索引鍵,將請求中傳遞的標籤索引鍵/值對與您在政策中指定的標籤對進行比較。例如,您可以檢查標記資料表儲存貯體的請求是否包含標籤索引鍵,Department以及其值是否為 Accounting。
此條件索引鍵適用於在 TagResource或 CreateTableBucket API 操作請求中傳遞標籤索引鍵,或使用 Amazon S3 主控台、 AWS 命令列界面 (CLI) 或 SDKs 使用標籤標記或建立資料表儲存貯體時 AWS 。
如需政策範例,請參閱 1.2 - 使用特定標籤建立或修改資料表儲存貯體的 IAM 政策。
如需其他範例政策和詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的控制請求期間的 AWS 存取。
aws:TagKeys
使用此條件索引鍵,將請求中的標籤索引鍵與您在政策中指定的索引鍵進行比較,以定義允許存取的標籤索引鍵。例如,若要在CreateTableBucket動作期間允許標記,您必須建立同時允許 s3tables:TagResource和 s3tables:CreateTableBucket動作的政策。然後,您可以使用 aws:TagKeys條件金鑰來強制執行請求中僅使用特定標籤CreateTableBucket。
此條件金鑰適用於在 TagResource、 UntagResource或 CreateTableBucket API 操作中傳遞標籤金鑰,或使用 Amazon S3 主控台、 AWS 命令列界面 (CLI) 或 AWS SDKs 標記、取消標記或建立具有標籤的資料表儲存貯體。
如需政策範例,請參閱 1.3 - IAM 政策,用於控制對維護標記控管之現有資源的標籤修改。
如需其他範例政策和詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的根據標籤索引鍵控制存取。
s3tables:TableBucketTag/tag-key
使用此條件索引鍵,使用標籤將許可授予資料表儲存貯體中的特定資料。此條件索引鍵主要作用於指派給所有 S3 資料表動作之資料表儲存貯體的標籤。即使您建立具有標籤的資料表,此條件索引鍵仍會作用於套用至包含該資料表之資料表儲存貯體的標籤。例外狀況如下:
當您使用標籤建立資料表儲存貯體時,此條件索引鍵會作用於請求中的標籤。
如需政策範例,請參閱 1.4 - 使用 s3tables:TableBucketTag 條件索引鍵。
資料表儲存貯體的範例 ABAC 政策
請參閱下列 Amazon S3 資料表儲存貯體的 ABAC 政策範例。
注意
如果您使用 Lake Formation 來管理對 Amazon S3 Tables 的存取,並且擁有根據主體標籤限制 IAM 使用者和 IAM 角色的 IAM 或 S3 Tables 資源型政策,則必須將相同的主體標籤連接到 Lake Formation 用來存取 Amazon S3 資料的 IAM 角色 (例如 LakeFormationDataAccessRole),並授予此角色必要的許可。這是您的標籤型存取控制政策正確搭配 S3 Tables 分析整合運作的必要條件。
1.1 - 使用標籤限制資料表儲存貯體內資料表操作的資料表儲存貯體政策
在此資料表儲存貯體政策中,指定的 IAM 主體 (使用者和角色) 只有在資料表project標籤的值符合主體project標籤的值時,才能對資料表儲存貯體中的任何資料表執行GetTable動作。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGetTable", "Effect": "Allow", "Principal": { "AWS": "111122223333" }, "Action": "s3tables:GetTable", "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.2 - 使用特定標籤建立或修改資料表儲存貯體的 IAM 政策
注意
如果您使用 AWS Lake Formation 來管理對 Amazon S3 資料表的存取,並且使用 ABAC 搭配 Amazon S3 資料表,請確定您也提供 Lake Formation 擔任必要存取的 IAM 角色。如需為 Lake Formation 設定 IAM 角色的詳細資訊,請參閱《 AWS Lake Formation 開發人員指南》中的將 Amazon S3 資料表目錄與 Data Catalog 和 Lake Formation 整合的先決條件。
在此 IAM 政策中,具有此政策的使用者或角色只能在資料表儲存貯體建立請求Trinity中使用標籤索引鍵project和標籤值標記資料表儲存貯體時,才能建立 S3 資料表儲存貯體。只要TagResource請求包含標籤鍵/值對 ,他們也可以在現有的 S3 資料表儲存貯體上新增或修改標籤project:Trinity。此政策不會授予資料表儲存貯體或其物件的讀取、寫入或刪除許可。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateTableBucketWithTags", "Effect": "Allow", "Action": [ "s3tables:CreateTableBucket", "s3tables:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/project": [ "Trinity" ] } } } ] }
1.3 - IAM 政策,用於控制對維護標記控管之現有資源的標籤修改
在此 IAM 政策中,只有在資料表儲存貯體標籤的值符合主體project標籤的值時,IAM 主體 (使用者或角色) 才能修改資料表儲存貯體上的project標籤。這些資料表儲存貯體僅允許aws:TagKeys條件索引鍵中cost-center指定的四個標籤 project environmentowner、、 和 。這有助於強制執行標籤控管、防止未經授權的標籤修改,並保持資料表儲存貯體的標記結構描述一致。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnforceTaggingRulesOnModification", "Effect": "Allow", "Action": [ "s3tables:TagResource", "s3tables:UntagResource" ], "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "project", "environment", "owner", "cost-center" ] } } } ] }
1.4 - 使用 s3tables:TableBucketTag 條件索引鍵
在此 IAM 政策中,只有在資料表儲存貯體具有標籤索引鍵 Environment和標籤值 時, 條件陳述式才會允許存取資料表儲存貯體的資料Production。與aws:ResourceTag/<tag-key>條件索引鍵s3tables:TableBucketTag/<tag-key>不同,因為除了根據資料表儲存貯體的標籤控制對資料表儲存貯體的存取之外,它還允許您根據其父資料表儲存貯體上的標籤控制對資料表的存取。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccessToSpecificTables", "Effect": "Allow", "Action": "*", "Resource": "arn:aws::s3tables:us-west-2:111122223333:bucket/amzn-s3-demo-table-bucket/*", "Condition": { "StringEquals": { "s3tables:TableBucketTag/Environment": "Production" } } } ] }
管理資料表儲存貯體的標籤
您可以使用 Amazon S3 主控台、 AWS 命令列界面 (CLI)、 AWS SDKs 或使用 S3 APIs 來新增或管理 S3 資料表儲存貯體的標籤:TagResource、UntagResource 和 ListTagsForResource。如需詳細資訊,請參閱下列內容: