AWS创建组织级CloudTrail报InvalidCloudWatchLogsLogGroupArnException错误如何解决
问题解决步骤
该报错的核心原因是你配置中关联的aws_iam_role.cloudwatch角色不满足CloudTrail写入CloudWatch日志组的权限要求,按以下步骤排查修复即可:
1. 校验IAM角色的信任策略
该角色必须允许CloudTrail服务扮演它才能正常工作,角色的assume_role_policy配置需要包含如下内容:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
2. 校验IAM角色的权限策略
角色必须被授予日志写入相关的最小权限,权限策略至少包含以下配置:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "${aws_cloudwatch_log_group.nfcisbenchmark.arn}:*" } ] }
注意资源ARN要和你CloudTrail配置里的cloud_watch_logs_group_arn完全匹配,不要漏写末尾的:*通配符。
3. 校验KMS相关权限
如果你的CloudWatch日志组启用了KMS加密,还需要额外做两个配置:
- 给上述IAM角色添加对应KMS密钥的
kms:Decrypt、kms:GenerateDataKey权限 - KMS密钥自身的策略中也要允许CloudTrail服务和该IAM角色调用上述KMS操作
4. 组织级CloudTrail额外校验
如果当前创建的是组织级CloudTrail(即is_organization_trail = true的场景),需要确认你执行Terraform操作的身份属于组织管理账号,且拥有组织级CloudTrail的创建权限。
5. 最终验证
如果以上配置都正确仍然报错,等待2分钟(IAM权限变更存在最多2分钟的生效延迟)后重新执行操作,也可以手动在AWS控制台模拟角色写入日志的操作,排查是否存在ARN拼写错误等低级问题。
内容的提问来源于stack exchange,提问作者Evan Gertis
相关产品推荐
相关产品推荐

