修改策略后AWS Pipeline仍构建失败,报CloudWatch Logs权限拒绝错误
解决AWS CodeBuild无法创建CloudWatch Logs日志流的权限问题
错误详情
ACCESS_DENIED:服务角色arn:aws:iam::749760571158:role/codebuild-hu-cb-crm-poc-service-role不允许AWS CodeBuild为构建任务arn:aws:codebuild:ap-south-1:749760571158:build/hu-moxie-crm-cb:7af26655-bea9-41b8-94c9-38b1c7a68d1e创建Amazon CloudWatch Logs日志流。详细错误:用户arn:aws:sts::749760571158:assumed-role/codebuild-hu-cb-crm-poc-service-role/AWSCodeBuild-7af26655-bea9-41b8-94c9-38b1c7a68d1e无权对资源arn:aws:logs:ap-south-1:749760571158:log-group:/aws/codebuild/hu-moxie-crm-cb:log-stream:7af26655-bea9-41b8-94c9-38b1c7a68d1e执行logs:CreateLogStream操作,因为没有基于身份的策略允许该操作。
已知情况:管道搭建完成,网站可正常访问,已配置过策略但问题仍存在。
排查与解决步骤
1. 验证CodeBuild服务角色的权限策略
- 进入IAM控制台,定位角色
codebuild-hu-cb-crm-poc-service-role - 检查附加的权限策略,确保包含针对CloudWatch Logs的完整权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:ap-south-1:749760571158:log-group:/aws/codebuild/hu-moxie-crm-cb:*" } ] } - 重点确认资源ARN的匹配性:必须包含正确的区域(
ap-south-1)、账号ID(749760571158)和日志组名称,末尾的*允许操作该日志组下的所有动态生成的日志流。
2. 检查权限边界与组织SCP限制
- 确认该角色未设置权限边界,或权限边界明确允许上述CloudWatch Logs操作
- 若账号属于AWS组织,检查是否存在服务控制策略(SCP)限制
logs:CreateLogStream操作,确保组织层面未阻止该权限。
3. 修正策略的资源范围
- 避免将策略资源限定为具体的日志流ARN(因为每次构建的日志流名称都会变化),必须使用通配符
*覆盖目标日志组下的所有日志流。
4. 强制刷新权限并重新触发构建
- IAM权限可能存在生效延迟,可尝试重新附加策略,或等待5-10分钟后手动触发一次新的构建任务,验证权限是否已更新。
5. 核对CodeBuild项目的日志配置
- 进入CodeBuild控制台,查看项目
hu-moxie-crm-cb的日志设置:- 确认已启用CloudWatch Logs
- 日志组名称需与策略中的资源路径完全匹配(即
/aws/codebuild/hu-moxie-crm-cb)
内容的提问来源于stack exchange,提问作者quickstart
相关产品推荐
相关产品推荐

