在KMS中有亚马逊别名密钥(例如/alias/aws/s3
)和客户主密钥(CMK)。
对于每个开发团队,我都有一些带有别名的 CMK(例如/alias/team1/default
,/alias/team1/confidential
)
我想允许所有 IAM 用户/组/角色访问 aws 别名密钥,但提供对团队级密钥的团队级访问权限
尝试允许访问 aws 托管密钥时出现我的问题
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"NotAction": [
"iam:*",
"kms:*"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:MultiFactorAuthAge": "false"
}
}
},
{
"Effect": "Allow",
"Resource": "arn:aws:kms:us-east-1:111111111111:alias/aws/*",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Condition": {
"Null": {
"aws:MultiFactorAuthAge": "false"
}
}
}
]
}
iam:*
提供对and的隐式拒绝kms:*
,但允许访问 aws 别名键
使用 IAM 策略模拟器时,看起来我必须提供对完整密钥 arn ( arn:aws:kms:us-east-1:111111111111:key/abcd123-acbd-1234-abcd-acbcd1234abcd
) 而不是别名 ( arn:aws:kms:us-east-1:111111111111:alias/aws/*
)的访问权限
有没有更好的方法来管理这个?
我知道我可以使用密钥策略管理对 CMK 的访问,并且不允许来自 IAM 的访问,但您不能Principal
在 KMS 密钥策略中使用组