搭配 S3 資料表使用標籤 - Amazon Simple Storage Service

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

搭配 S3 資料表使用標籤

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

注意

在超過標準 S3 API 請求率的資料表上使用標籤不會產生額外費用。如需詳細資訊,請參閱 Simple Storage Service (Amazon S3) 定價

搭配資料表使用標籤的常見方式

在 S3 資料表上使用標籤:

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

  2. 屬性型存取控制 (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-nameaws:RequestTag/key-name或 ,根據資料表的標籤控制對 S3 資料表的存取aws:TagKeys

aws:ResourceTag/key-name

使用此條件索引鍵來比較您在政策中指定的標籤索引鍵/值對與連接到資源的索引鍵/值對。例如,您可以要求只有在資料表具有值為 Department的標籤索引鍵時,才允許存取資料表Marketing

此條件索引鍵適用於使用 Amazon S3 主控台、命令列界面 AWS (CLI)、S3 APIs 或 AWS SDKs 執行的資料表動作。

如需政策範例,請參閱 1.1 - 使用標籤限制資料表操作的資料表政策

如需其他範例政策和詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的控制對 AWS 資源的存取

注意

對於在資料表上執行的動作,此條件索引鍵作用於套用至資料表的標籤,而非套用至包含資料表之資料表儲存貯體的標籤。如果您希望 ABAC 政策在執行資料表動作時對資料表儲存貯體的標籤採取行動,請s3tables:TableBucketTag/tag-key改用 。

aws:RequestTag/key-name

使用此條件索引鍵,將請求中傳遞的標籤索引鍵/值對與您在政策中指定的標籤對進行比較。例如,您可以檢查標記資料表的請求是否包含標籤索引鍵,Department以及其是否具有值 Accounting

此條件金鑰適用於在 TagResourceCreateTable API 操作請求中傳遞標籤金鑰,或使用 Amazon S3 主控台、 AWS 命令列界面 (CLI) 或 SDKs 標記或 AWS 建立具有標籤的資料表。

如需政策範例,請參閱 1.2 - 建立或修改具有特定標籤的資料表的 IAM 政策

如需其他範例政策和詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的控制 AWS 請求期間的存取

aws:TagKeys

使用此條件索引鍵,將請求中的標籤索引鍵與您在政策中指定的索引鍵進行比較,以定義允許存取的標籤索引鍵。例如,若要在CreateTable動作期間允許標記,您必須建立同時允許 s3tables:TagResources3tables:CreateTable動作的政策。然後,您可以使用 aws:TagKeys條件金鑰來強制執行請求中僅使用特定標籤CreateTable

此條件金鑰適用於在 TagResourceUntagResourceCreateTable API 操作中傳遞標籤金鑰,或使用 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 政策範例。

注意

如果您有根據委託人標籤限制 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/my_example_tab;e", "Condition": { "StringEquals": { "aws:ResourceTag/project": "${aws:PrincipalTag/project}" } } } ] }
1.2 - 建立或修改具有特定標籤的資料表的 IAM 政策

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

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateTableWithTags", "Effect": "Allow", "Action": [ "s3tables:CreateTable", "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/my_example_table", "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 資料表的標籤:TagResourceUntagResourceListTagsForResource。如需詳細資訊,請參閱: