IAM策略多条件配置问题:StringEquals生效ArnEquals失效无法启动CodeBuild
问题解决思路
- 修正Action大小写错误:策略中的
codeBuild:RetryBuild需改为codebuild:RetryBuild,AWS操作名称区分大小写,该错误会导致对应权限无法生效。 - 替换错误条件键:
aws:SourceArn用于标识触发操作的资源ARN(如S3对象、SNS消息),若要限制用户自身ARN,应使用aws:userArn条件键,这才是匹配联合用户身份的正确键。
修正后的IAM策略
- Effect: Allow Action: - codebuild:StartBuild - codebuild:StopBuild - codebuild:RetryBuild Resource: - !Sub arn:aws:codebuild:${AWS::Region}:${AWS::AccountId}:project/* Condition: StringEquals: aws:ResourceTag/Application: - yyy - xxx aws:ResourceTag/TargetEnvironmentType: - dev ArnEquals: aws:userArn: - !Sub arn:aws:sts::${AWS::AccountId}:federated-user/Builder-role/xxx@gmial.com
额外验证建议
- 核对联合用户ARN准确性:通过AWS控制台IAM页面确认用户实际ARN,避免拼写错误(比如示例中的
gmial.com是否为gmail.com笔误)。 - 确认登录身份:测试时需确保用户通过指定的联合身份登录,否则ArnEquals条件会拦截权限生效。
内容的提问来源于stack exchange,提问作者preethi
相关产品推荐
相关产品推荐

