是否可以在AWS服务主体的权限策略中使用aws:PrincipalOrgID条件键
结论
你所提供的配置方式无法生效,不能达到预期的权限限制效果。
原因说明
aws:PrincipalOrgID 条件键仅适用于归属AWS Organizations组织的IAM类主体,包括AWS账号根用户、IAM用户、IAM角色、IAM身份中心身份等。而AWS服务主体(如示例中的cloudtrail.amazonaws.com)是AWS全局托管的公共服务身份,不属于任何AWS组织实体,因此该条件永远无法匹配,会直接导致这条Allow权限语句失效,CloudTrail最终会被拒绝访问KMS密钥完成日志加密。
正确实现方案
如果你的需求是限制仅当前组织内的CloudTrail实例可以使用该KMS密钥加密日志,可改用aws:SourceOrgID条件键,该条件会匹配发起请求的CloudTrail所属的组织ID,符合你的使用场景,参考配置如下:
"Sid":"Allow Cloudtrail to encrypt logs", "Effect": "Allow", "Principal":{ "Service":"cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition":{ "StringEquals":{ "aws:SourceOrgID": "${var.organization_id}" } }
内容的提问来源于stack exchange,提问作者dcloud
相关产品推荐
相关产品推荐

