已创建AWS角色和策略,集成Datadog APM出现Access denied错误如何解决?
问题原因
该Access denied报错本质是AWS侧IAM权限配置不满足Datadog集成要求导致的,你创建的IAM Role或关联Policy存在配置错误,常见错误场景如下:
- IAM Role的信任策略配置错误,未授予Datadog官方AWS账号扮演该角色的权限
- 关联的IAM Policy未包含Datadog集成必须的最小权限集
- 集成页面填写的AWS账号ID、Role ARN信息有误,比如多写字符、区域标识不匹配
- AWS账号开启了全域访问限制,比如服务控制策略(SCP)禁止了外部账号扮演当前账号的角色
- Role配置了外部ID校验,集成时填写的外部ID与Role侧设置的不一致
排查修复步骤
第一步:校验Role信任策略配置
打开AWS IAM控制台找到对应集成Role,检查信任策略:
- 确认信任主体为Datadog官方AWS账号,账号ID无输入错误
- 确认信任策略已放开
sts:AssumeRole动作权限 - 若配置了
ExternalId校验,确认Datadog集成页面填写的ExternalId与Role信任策略中设置的完全一致
正确的信任策略参考示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::464622532012:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "Datadog页面生成的专属外部ID" } } } ] }
第二步:校验IAM Policy权限
检查Role关联的Policy是否覆盖集成所需的全部权限:
- 至少包含CloudWatch指标、日志的只读权限,以及对应AWS服务的资源列举权限
- 若要集成APM链路采集,需额外放开X-Ray、Lambda/ECS等计算服务的配置读取权限
- 确认Policy没有添加额外的Deny规则拦截Datadog的访问请求
第三步:校验集成页面填写信息
确认Datadog集成页面的填写内容无错误:
- AWS账号ID为12位纯数字,无特殊字符
- Role ARN格式正确,标准格式为
arn:aws:iam::[你的AWS账号ID]:role/[你的Role名称],中国区账号ARN前缀为arn:aws-cn,不要填为国际区格式
第四步:排查AWS全局访问限制
若上述配置全部正确,检查账号侧的额外限制:
- 若为AWS组织下的成员账号,检查父组织的SCP策略是否禁止外部账号扮演当前账号的Role
- 检查IAM访问分析器是否拦截了Datadog的角色扮演请求
- 确认对应区域的STS服务已启用
配置修改完成后等待2分钟再重新发起集成即可生效。
内容的提问来源于stack exchange,提问作者Rohit Mittal
相关产品推荐
相关产品推荐

