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

MongoDB IAM身份认证故障:无法使用IAM角色完成身份验证

MongoDB Atlas IAM角色认证Unauthorized报错排查方案

你遇到的13号未授权错误完整信息如下:

error: {
"operationTime" : Timestamp(1635767862, 1),
"ok" : 0,
"errmsg" : "command find requires authentication",
"code" : 13,
"codeName" : "Unauthorized",
"$clusterTime" : {
"clusterTime" : Timestamp(1635767862, 1),
"signature" : {
"hash" : BinData(0,"WibtM8VK2aorci9mA6QNyP/ummU="),
"keyId" : NumberLong("7023742477949468676")
}
}
}

可按以下步骤逐一排查:

  • 首先确认Atlas集群版本支持IAM身份认证:仅M10及以上付费集群支持AWS IAM身份验证,M0/M2/M5免费集群不支持该特性,若使用免费集群需切换为密码认证方式。
  • 检查Atlas数据库访问配置:需在Atlas控制台「数据库访问」页面新建类型为AWS IAM角色的数据库用户,填入对应AWS IAM角色的完整ARN,并为该用户分配目标数据库的对应操作权限,仅在AWS侧创建绑定EC2的IAM角色无法直接访问Atlas数据库。
  • 验证AWS IAM角色配置:检查IAM角色的信任策略是否允许EC2服务代入角色,可登录EC2实例执行aws sts get-caller-identity命令,确认返回的角色ARN和你配置的一致,同时需确保实例内没有硬编码的AWS凭证(例如~/.aws/credentials文件内的AK/SK)覆盖实例角色的默认凭证。
  • 核对数据库连接字符串:使用IAM认证的连接字符串必须指定authSource=$external和authMechanism=MONGODB-AWS参数,标准格式参考:
    mongodb+srv://<你的集群地址>.mongodb.net/?authSource=%24external&authMechanism=MONGODB-AWS&retryWrites=true&w=majority
    
    连接时无需额外填写用户名和密码,MongoDB驱动会自动从EC2实例元数据获取角色凭证完成认证。
  • 检查网络访问规则:确认Atlas集群的IP白名单已放通EC2实例的出口公网IP,或已配置正确的VPC对等连接/私有端点,网络限制也可能触发认证类报错。

内容的提问来源于stack exchange,提问作者Aritra Nag

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:06:04