tkw*_*rgs 2 amazon-web-services amazon-iam aws-kms amazon-kms
在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"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
为了提供隐含的拒绝iam:*和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 密钥策略中使用组
虽然我知道问题已解决,但我很想从最佳来源发布此内容。
不能在策略中使用别名 请参阅https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf 中的以下段落
请注意,不能在策略中使用 CMK 别名。这是因为可以在策略之外操作别名到键的映射,这将允许特权升级。因此,必须在 KMS 密钥策略、IAM 策略和 KMS 授权中使用密钥 ID
您可以使用密钥别名作为 API 的资源,这些 API 用于控制对自身作用于别名的 API 的访问(例如创建/删除别名),并且别名不能用作 ARN 代替密钥 ID 来控制对访问的访问底层密钥。您可以参考以下 URL 中的表格,该表格解释了要与 KMS API 一起使用的资源/ARN。
http://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
您可以考虑这种方法:允许 IAM 组承担 IAM 角色并允许 CMK 的密钥策略中的 IAM 角色。
来源:https : //forums.aws.amazon.com/thread.jspa?threadID=173540
| 归档时间: |
|
| 查看次数: |
5439 次 |
| 最近记录: |