控制對標籤的存取 - AWS Key Management Service

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

控制對標籤的存取

若要在 AWS KMS 主控台或使用 新增、檢視和刪除標籤API,主體需要標記許可。您可以在金鑰政策中提供這些許可。您也可以在IAM政策 (包括VPC端點政策 ) 中提供這些政策,但前提是金鑰政策允許 AWSKeyManagementServicePowerUser 受管政策允許主體在帳戶可存取的所有KMS金鑰上標記、取消標記和列出標籤。

您也可以使用標籤的 AWS 全域條件索引鍵來限制這些許可。在 中 AWS KMS,這些條件可以控制對標記操作的存取,例如 TagResourceUntagResource

注意

授予主體管理標籤和別名的許可時,請務必謹慎。變更標記或別名可允許或拒絕客戶受管金鑰的許可。如需詳細資訊,請參閱 ABAC 適用於 AWS KMS使用標籤控制對KMS金鑰的存取

如需政策和詳細資訊,請參閱 IAM 使用者指南 中的根據標籤金鑰控制存取

建立和管理標籤的許可如下所示。

公里:TagResource

允許主體新增或編輯標籤。若要在建立KMS金鑰時新增標籤,主體必須具有不限於特定KMS金鑰IAM的政策許可。

公里:ListResourceTags

允許主體檢視KMS金鑰上的標籤。

公里:UntagResource

允許主體從KMS金鑰刪除標籤。

標記政策中的許可

您可以在金鑰政策中提供標記許可IAM。例如,下列範例金鑰政策會為選取的使用者提供KMS金鑰的標記許可。它為所有可以擔任範例管理員或開發人員角色的使用者提供檢視標籤的許可。

{ "Version": "2012-10-17", "Id": "example-key-policy", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow all tagging permissions", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/LeadAdmin", "arn:aws:iam::111122223333:user/SupportLead" ]}, "Action": [ "kms:TagResource", "kms:ListResourceTags", "kms:UntagResource" ], "Resource": "*" }, { "Sid": "Allow roles to view tags", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:role/Administrator", "arn:aws:iam::111122223333:role/Developer" ]}, "Action": "kms:ListResourceTags", "Resource": "*" } ] }

若要在多個KMS金鑰上授予主體標記許可,您可以使用 IAM政策。為了使此政策有效,每個KMS金鑰的金鑰政策必須允許帳戶使用IAM政策來控制對KMS金鑰的存取。

例如,下列IAM政策允許主體建立KMS金鑰。它還允許它們在指定帳戶中的所有KMS金鑰上建立和管理標籤。此組合可讓主體在建立金鑰時,使用 CreateKey 操作的標籤參數將標籤新增至KMS金鑰。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKeys", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource", "kms:ListResourceTags" ], "Resource": "arn:aws:kms:*:111122223333:key/*" } ] }

限制標籤許可

您可以使用政策條件來限制標記許可。下列政策條件可套用至 kms:TagResourcekms:UntagResource 許可。例如,您可以使用 aws:RequestTag/tag-key 條件,允許主體僅新增特定標籤,或防止主體新增具有特定標籤索引鍵的標籤。或者,您可以使用 kms:KeyOrigin條件來防止主體使用匯入的KMS金鑰材料標記或取消標記金鑰。 匯入金鑰的 AWS KMS 金鑰材料

當您使用標籤控制對KMS金鑰的存取時,最佳實務是使用 aws:RequestTag/tag-keyaws:TagKeys條件金鑰來決定允許哪些標籤 (或標籤金鑰)。

例如,下列IAM政策與上一個政策類似。不過,此政策允許主體建立標籤 (TagResource) 並僅為具有 Project 標籤索引鍵的標籤刪除標籤 UntagResource

由於 TagResourceUntagResource請求可以包含多個標籤,因此您必須指定具有 aws:TagKeys 條件的 ForAllValuesForAnyValue 設定運算子。ForAnyValue 運算子會要求請求中的至少一個標籤索引鍵與政策中的標籤索引鍵相符。ForAllValues 運算子會要求請求中的所有標籤索引鍵與政策中的其中一個標籤索引鍵相符。true 如果請求中沒有標籤,但 UntagResource沒有指定標籤時 TagResource 失敗,ForAllValues則運算子也會傳回 。如需設定運算子的詳細資訊,請參閱 IAM 使用者指南 中的使用多個金鑰和值

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IAMPolicyCreateKey", "Effect": "Allow", "Action": "kms:CreateKey", "Resource": "*" }, { "Sid": "IAMPolicyViewAllTags", "Effect": "Allow", "Action": "kms:ListResourceTags", "Resource": "arn:aws:kms:*:111122223333:key/*" }, { "Sid": "IAMPolicyManageTags", "Effect": "Allow", "Action": [ "kms:TagResource", "kms:UntagResource" ], "Resource": "arn:aws:kms:*:111122223333:key/*", "Condition": { "ForAllValues:StringEquals": {"aws:TagKeys": "Project"} } } ] }