AWS KMS资源策略与IAM策略优先级不符问题咨询
AWS IAM与KMS资源策略评估逻辑说明及配置问题解答
核心根因
权限异常的本质是KMS密钥策略存在特殊评估规则,与通用策略评估逻辑的适用场景存在差异:
- 配置中的KMS密钥策略包含默认的「启用IAM用户权限」语句,即给账户root授予
kms:*权限的配置,该语句的作用是将KMS密钥的权限评估权委托给IAM服务:同账户下的IAM用户访问该密钥时,必须同时满足KMS密钥策略显式Allow + IAM用户/所属组/角色的策略显式Allow,二者缺一则请求被拒绝。 - 此前理解的「资源策略允许即可跳过IAM策略评估」规则不适用于当前场景:该规则仅适用于两类场景,一是S3等服务的同账户资源直接授权场景,二是KMS密钥策略删除了默认root授权语句、仅通过密钥策略管理所有访问权限的场景。
配置逻辑验证
当前配置完全符合上述规则:
- KMS密钥策略已给user1授予
kms:Create*、kms:Delete*权限,满足资源侧允许要求 - IAM策略仅给user1授予了
kms:DeleteAlias权限,未包含kms:CreateAlias权限,不满足IAM侧允许要求,因此CreateAlias操作被拒绝 - 当IAM策略中添加
kms:CreateAlias权限后,两侧均满足允许要求,操作正常执行
可选调整方案
如果希望实现「仅通过KMS密钥策略管理用户权限,不需要IAM额外授权」的效果,可选择以下两种方案:
注意:调整KMS密钥策略前请确保不会导致密钥被锁死,务必保留至少一个可管理密钥的主体权限
- 方案1:删除默认root授权语句,仅在KMS密钥策略中配置所有允许访问的主体及对应权限,此时不需要IAM侧额外授权即可生效
- 方案2:保留默认权限逻辑,KMS密钥策略做资源级权限管控,IAM策略做用户侧权限管控,二者配合完成权限校验
内容的提问来源于stack exchange,提问作者pete
相关产品推荐
相关产品推荐

