本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在本節中,您可以找到允許各種 AWS KMS 動作之許可的 IAM 政策範例。
重要
只有在KMS金鑰的金鑰政策也允許時,才允許下列政策中的某些許可。如需詳細資訊,請參閱許可參考。
如需撰寫和格式化JSON政策文件的說明,請參閱 IAM 使用者指南中的IAMJSON政策參考。
範例
允許使用者在 AWS KMS 主控台中檢視KMS金鑰
下列IAM政策允許使用者唯讀存取 AWS KMS 主控台。具有這些許可的使用者可以檢視其中的所有KMS金鑰 AWS 帳戶,但無法建立或變更任何KMS金鑰。
若要在 AWS 受管金鑰和客戶受管KMS金鑰頁面上檢視金鑰,主體需要 kms:ListKeys、 kms:ListAliases 和 tag:GetResources 許可,即使金鑰沒有標籤或別名。 剩餘的許可,特別是 km:DescribeKey,是檢視KMS金鑰詳細資訊頁面上選用KMS的金鑰資料表資料欄和資料的必要許可。iam:ListUsers 和 iam:ListRoles 需要許可,才能在預設檢視中顯示金鑰政策,而不會發生錯誤。若要在自訂金鑰存放區頁面上檢視資料,以及自訂金鑰存放區中KMS金鑰的詳細資訊,委託人也需要公里:DescribeCustomKeyStores 許可。
如果您限制使用者對特定KMS金鑰的主控台存取,主控台會顯示每個不可見KMS金鑰的錯誤。
此政策包含兩個政策陳述式。第一個政策陳述式中的 Resource
元素允許範例所有區域中所有KMS金鑰的指定許可 AWS 帳戶。主控台檢視器不需要額外的存取, AWS KMS 因為主控台只會在主體帳戶中顯示KMS金鑰。即使他們具有在其他 中檢視KMS金鑰的許可,也是如此 AWS 帳戶。其餘 AWS KMS 和 IAM許可需要 "Resource": "*"
元素,因為它們不適用於任何特定KMS金鑰。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ReadOnlyAccessForAllKMSKeysInAccount",
"Effect": "Allow",
"Action": [
"kms:GetPublicKey",
"kms:GetKeyRotationStatus",
"kms:GetKeyPolicy",
"kms:DescribeKey",
"kms:ListKeyPolicies",
"kms:ListResourceTags",
"tag:GetResources"
],
"Resource": "arn:aws:kms:*:111122223333:key/*"
},
{
"Sid": "ReadOnlyAccessForOperationsWithNoKMSKey",
"Effect": "Allow",
"Action": [
"kms:ListKeys",
"kms:ListAliases",
"iam:ListRoles",
"iam:ListUsers"
],
"Resource": "*"
}
]
}
允許使用者建立KMS金鑰
下列IAM政策允許使用者建立所有類型的KMS金鑰。Resource
元素的值是 ,*
因為 CreateKey
操作不使用任何特定 AWS KMS 資源 (KMS 金鑰或別名)。
若要限制使用者使用特定類型的KMS金鑰,請使用 kms:KeySpec、 kms:KeyUsage 和 kms:KeyOrigin 條件金鑰。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "kms:CreateKey",
"Resource": "*"
}
}
建立金鑰的主體可能需要一些相關許可。
-
kms:PutKeyPolicy — 具有
kms:CreateKey
許可的主體可以設定KMS金鑰的初始金鑰政策。不過,CreateKey
呼叫者必須擁有 kms:PutKeyPolicy 許可,這可讓呼叫者變更KMS金鑰政策,或必須指定 的BypassPolicyLockoutSafetyCheck
參數CreateKey
,不建議這麼做。CreateKey
發起人可以從 IAM政策取得KMS金鑰的kms:PutKeyPolicy
許可,也可以在KMS他們所建立金鑰的金鑰政策中包含此許可。 -
kms:TagResource— 若要在
CreateKey
操作期間將標籤新增至KMS金鑰,CreateKey
呼叫者必須擁有IAM政策中的 kms:TagResource 許可。在新金鑰的KMS金鑰政策中包含此許可並不足夠。不過,如果CreateKey
發起人在初始金鑰政策kms:TagResource
中包含 ,他們可以在建立KMS金鑰後,在個別的呼叫中新增標籤。 -
kms:CreateAlias — 在 AWS KMS 主控台中建立KMS金鑰的主體必須擁有 kms:CreateAliasKMS金鑰和別名的許可。(主控台進行兩個呼叫;一個至
CreateKey
和一個至CreateAlias
)。您必須在 IAM政策中提供別名許可。您可以在KMS金鑰政策中提供金鑰許可IAM。如需詳細資訊,請參閱 控制對別名的存取。
除了 之外kms:CreateKey
,以下IAM政策提供 中所有KMS金鑰的kms:TagResource
許可, AWS 帳戶 以及帳戶所有別名的kms:CreateAlias
許可。它也包含一些有用的唯讀許可,只能於 IAM政策中提供。
此IAM政策不包含kms:PutKeyPolicy
許可或可在金鑰政策中設定的任何其他許可。最佳實務是在金鑰政策中設定這些許可,而這些許可僅適用於一個KMS金鑰。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "IAMPermissionsForParticularKMSKeys",
"Effect": "Allow",
"Action": "kms:TagResource",
"Resource": "arn:aws:kms:*:111122223333:key/*"
},
{
"Sid": "IAMPermissionsForParticularAliases",
"Effect": "Allow",
"Action": "kms:CreateAlias",
"Resource": "arn:aws:kms:*:111122223333:alias/*"
},
{
"Sid": "IAMPermissionsForAllKMSKeys",
"Effect": "Allow",
"Action": [
"kms:CreateKey",
"kms:ListKeys",
"kms:ListAliases"
],
"Resource": "*"
}
]
}
允許使用者使用特定 中的任何KMS金鑰來加密和解密 AWS 帳戶
下列IAM政策允許使用者使用任何KMS金鑰 in AWS 帳戶 111122223333 來加密和解密資料。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt"
],
"Resource": "arn:aws:kms:*:111122223333:key/*"
}
}
允許使用者使用特定 和 區域中的任何KMS金鑰來加密 AWS 帳戶 和解密
下列IAM政策允許使用者在美國西部 (奧勒岡) 區域中,使用 中的任何KMS AWS 帳戶 111122223333
金鑰來加密和解密資料。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:us-west-2:111122223333:key/*"
]
}
}
允許使用者使用特定KMS金鑰加密和解密
下列IAM政策允許使用者使用 Resource
元素中指定的兩個KMS金鑰來加密和解密資料。在IAM政策陳述式中指定KMS金鑰時,您必須使用KMS金鑰的金鑰ARN。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": [
"kms:Encrypt",
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
"arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321"
]
}
}
防止使用者停用或刪除任何KMS金鑰
下列IAM政策可防止使用者停用或刪除任何KMS金鑰,即使其他IAM政策或金鑰政策允許這些許可也一樣。明確拒絕許可的政策會覆寫所有其他政策,即使那些政策明確允許相同的許可。如需詳細資訊,請參閱許可疑難排解 AWS KMS。
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": [
"kms:DisableKey",
"kms:ScheduleKeyDeletion"
],
"Resource": "*"
}
}