如何用Cloud Custodian提取含KMS全局解密权限的AWS IAM策略?
提取具备KMS全局解密权限的AWS IAM策略:Cloud Custodian过滤器构造指南
核心逻辑
我们要定位的是IAM策略中**包含允许KMS解密动作,且资源范围为全局(*)**的语句。Cloud Custodian通过statement类型的过滤器来匹配IAM策略中的具体授权语句。
过滤器构造详解
直接用statement过滤器匹配符合条件的授权语句,关键参数说明:
type: statement:指定针对IAM策略的授权语句进行过滤statements:定义要匹配的语句规则,包含三个核心条件:Effect: Allow:仅匹配允许类的授权Action:包含kms:Decrypt或覆盖所有KMS动作的kms:*(根据需求选择,若只需精准匹配kms:Decrypt可移除kms:*)Resource: "*":匹配资源范围为全局的授权
match: any:只要策略中有任意一条语句满足规则,就判定该策略符合条件
完整Cloud Custodian策略示例
policies: - name: find-kms-global-decrypt-policies resource: iam-policy description: 识别所有包含KMS全局解密权限的IAM策略 filters: - type: statement statements: - Effect: Allow Action: - "kms:Decrypt" - "kms:*" Resource: "*" match: any
扩展调整
- 若要匹配带通配符的解密动作(比如
kms:Decr*),可将Action改为["like:kms:Decr*"] - 若需严格匹配仅包含
kms:Decrypt的动作,删除kms:*条目即可 - 执行策略后,运行
custodian run --output-dir ./output your-policy.yaml,在输出目录查看结果验证
内容的提问来源于stack exchange,提问作者Robin Curtis
相关产品推荐
相关产品推荐

