You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS DMS S3目标验证卡在‘Records pending’状态求助

AWS DMS S3跨账户验证权限拒绝问题解决建议

核心问题分析

全量迁移能正常写入S3,说明基础写入权限没问题,但验证阶段需要DMS读取S3中自动生成的aws_dms_validation_meta_data目录下的验证文件(比如Athena结果CSV),当前权限配置缺少这部分读取权限。

具体修复步骤

1. 补全S3目标桶的跨账户权限策略

确保S3桶的权限策略中,给DMS所在账户(或DMS使用的IAM角色)添加读取验证元数据目录的权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::DMS账户ID:role/DMS使用的IAM角色名"
      },
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my_target_s3",
        "arn:aws:s3:::my_target_s3/aws_dms_validation_meta_data/*"
      ]
    }
  ]
}
  • 替换DMS账户ID、DMS使用的IAM角色名、my_target_s3为实际值
  • s3:ListBucket用于让DMS遍历验证目录下的文件

2. 更新DMS任务关联的IAM角色权限

确保DMS任务使用的IAM角色(访问S3的角色)包含读取权限:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::my_target_s3",
        "arn:aws:s3:::my_target_s3/aws_dms_validation_meta_data/*"
      ]
    }
  ]
}
  • 全量迁移仅需s3:PutObject,但验证必须补充读取权限,这是高频遗漏点

3. 排查权限冲突

如果S3桶开启了桶策略拒绝规则或账户权限边界,确认没有阻止DMS角色读取验证目录的配置。

4. 验证权限有效性

用AWS CLI模拟DMS角色测试权限:

# 先获取临时凭证
aws sts assume-role --role-arn arn:aws:iam::DMS账户ID:role/DMS使用的IAM角色名 --role-session-name test-dms-validation
# 使用返回的临时凭证执行以下命令
aws s3 ls s3://my_target_s3/aws_dms_validation_meta_data/
aws s3 cp s3://my_target_s3/aws_dms_validation_meta_data/aws_dms_validation_athena_results/b1281cda-8a8d-42d5-8f7b-73378520c09f.csv ./test.csv

若命令执行失败,说明权限配置仍有问题,需重新核对策略。

5. 重启验证进程

权限修复后,停止当前DMS任务,重新启动验证(或全量迁移+验证),观察CloudWatch日志是否仍有权限拒绝错误。


内容的提问来源于stack exchange,提问作者Ali Ourag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:13:19