使用AWS Secrets Manager连接DMS端点失败排查请求
AWS DMS使用Secrets Manager连接PostgreSQL失败排查
问题场景
- 手动输入服务器名、用户名、密码时,DMS源端点可成功连接PostgreSQL数据库
- 使用AWS Secrets Manager测试连接时失败,报错信息:
Test Endpoint failed: Application-Status: 1020912, Application-Message: Failed to build connection string Unable to find Secrets Manager secret, Application-Detailed-Message: Failed to retrieve secret. Unable to find AWS Secrets Manager secret Arn 'arn:aws:secretsmanager:region:......' The secrets_manager get secret value failed: curlCode: 28, Timeout was reached Too many retries: curlCode: 28, Timeout was reached
提供的IAM角色权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dms:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "secretsmanager:*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" } ] }
可能的问题及解决办法
1. Secrets Manager ARN填写错误
仔细核对DMS端点配置中的Secrets Manager ARN:
- 确认ARN内的**区域(region)**与DMS复制实例所在区域完全一致,跨区域访问会触发超时
- 检查ARN中的AWS账号ID和Secret所属账号是否匹配
- 排查Secret名称是否存在拼写错误、多余空格或特殊字符
2. 网络/安全组拦截访问
IAM权限全开不代表网络层面允许访问:
- 若使用VPC内的复制实例:
- 优先配置Secrets Manager的VPC接口端点,让流量走AWS内网,避免公网超时
- 若走公网,需确保复制实例所在安全组的出方向允许HTTPS(443端口)访问公网
- 若Secret用自定义KMS密钥加密,需检查KMS密钥策略是否允许该DMS角色访问
3. Secret状态异常
- 确认Secret未被删除或处于恢复状态,在Secrets Manager控制台查看Secret状态
- 检查指定的Secret版本是否有效,避免使用不存在的版本标识符
4. IAM角色信任策略错误
权限配置正确但DMS无法假定该角色:
- 检查IAM角色的信任策略,必须允许
dms.amazonaws.com作为可信实体,示例配置如下:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dms.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
5. 复制实例性能不足
低规格复制实例可能出现网络超时:
- 尝试重启复制实例,或升级实例规格后重新测试连接
内容的提问来源于stack exchange,提问作者Starlord5107
相关产品推荐
相关产品推荐

