Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs 菜单
Docs 主页
/ /

AWS IAM 身份验证

您可以使用 个 AWS IAM 用户或角色对Atlas集群的数据库用户进行身份验证,而无需管理密码。使用 AWS IAM 可以减少身份验证机制的数量和需要管理的密钥数量。 Atlas不会通过网络接收身份验证密钥,驾驶员也不会保留该密钥。

为您的使用案例选择适当的身份验证方法:

  • IAM 角色:AWS 服务(EC2 、 Lambda、ECS)或联合用户担任的角色。对于在 AWS 计算资源上运行的工作负载,我们建议您使用 IAM 角色进行应用程序和工作负载访问权限。

  • IAM 用户:需要直接访问权限数据库的个人 AWS 用户。此选项可能适合使用特定用户凭证运行的应用程序。对于开发者和管理员等人类用户,我们建议您将 Workforce Identity Federation 与 OIDC 结合使用,以获得与身份提供商程序直接 SSO 的体验。

重要

在客户端使用 AWS IAM数据库身份验证进行连接之前,您必须创建为 IAM身份验证配置的数据库用户。要学习;了解如何创建使用IAM UsersIAM Roles 进行身份验证的数据库用户,请参阅 管理数据库用户。

注意

Atlas使用 AWS STS 验证 IAM 用户和角色的身份。 AWS 600在每个地区、每个账户每秒强制执行 个请求的默认请求配额 。此配额适用于 IAM 用户或角色的 AWS 账户。

您可以设立Amazon Web Services IAM 角色,对Amazon Web Services Atlas集群的 计算类型进行身份验证。

注意

启用 LDAP 授权后,您无法为 Amazon Web Services IAM 主体设立身份验证。

如果您需要对Amazon Web Services IAM 主体进行身份验证,请考虑将要访问权限Amazon Web Services IAM身份验证访问的集群移动到另一个禁用LDAP授权的项目中。

对于 AWS Lambda 和 HTTP(ECS 和 EC2),驱动程序自动从环境变量读取。对于 AWS EKS,您必须手动分配 IAM 角色。

本页介绍了 AWS Lambda、AWS ECSAWS EKS 如何使用 AWS IAM 角色进行连接。

注意

必须在 AWS 控制台中将 IAM 角色分配给 Lambda、EC2、ECS 或 EKS。

如果您为Lambda函数分配执行角色, Amazon Web Services Lambda会通过以下环境变量将信息传递给函数。

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

注意

在函数中使用执行角色时,无需手动创建这些环境变量。

要学习;了解有关这些环境变量的更多信息,请参阅使用Amazon Web Services Lambda环境变量。

AWS ECS 从以下 URI 获取档案:

http://169.254.170.2${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}

AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 是一个环境变量。要学习;了解更多信息,请参阅Amazon Web Services文档中的任务的 IAM 角色。

附加 IAM角色时,AWS EC2 2实例会自动从实例元数据服务 V 获取凭证。从以下URL检索凭证:

http://169.254.169.254/latest/meta-data/iam/security-credentials/

重要

您必须将 IAM角色附加到您的 EC2实例,身份验证才能正常运行。 IAM角色必须具有访问权限Atlas集群的必要权限。

要学习;了解如何将 IAM角色附加到 EC2 实例,请参阅 AWS 文档中的启动具有 IAM角色的实例。

要学习;了解如何配置Amazon Web Services IAM角色以使用Amazon Web Services ECS Fargate 进行身份验证,请参阅Amazon Web Services文档中的Amazon ECS任务执行 IAM角色

对于 AWS EKS,您必须首先为 pod 分配 IAM 角色,才能在该 pod 中设置以下环境变量:

  • AWS_WEB_IDENTITY_TOKEN_FILE - 包含网络身份令牌文件的 路径。

  • AWS_ROLE_ARN — 包含用于连接集群的IAM角色。

要学习;了解有关Amazon Web Services EKS 的更多信息,请参阅什么是Amazon EKS?在Amazon Web Services文档中。

要向 AWS IAM 角色授予数据库访问权限,请完成 AWS IAM 的“配置数据库用户” 部分中描述的步骤。有关使用Atlas CLI、 Atlas 管理 API或Atlas 用户界面授予数据库访问权限权限的更多信息,请参阅配置数据库用户。

要使用Atlas 通过您的Amazon Web Services IAM 凭证连接到mongosh ,请提供 指定 MONGODB- 身份验证机制的连接stringAmazon Web Services 。此连接string格式适用于所有Amazon Web Services IAM身份验证机制。

重要

必须使用使用Amazon Web Services IAM 角色设置身份验证中描述的方法之一配置身份验证,然后才能使用此连接字符串格式。

使用 AWS IAM 身份验证与 mongosh 连接 Atlas 需要 shell 版本 v0.9.0 或更高版本。

请考虑以下内容:

  • 使用 AWS IAM 凭证,将访问密钥 ID 作为用户名,将密钥作为密码。

  • authSource查询参数是 $external,URL编码为 %24external

  • authMechanism 查询参数是 MONGODB-AWS

    例子

    mongosh "mongodb+srv://<atlas-host-name>/test?authSource=%24external&authMechanism=MONGODB-AWS" --username <access-key-id> --password <secret-key>

提示

后退

身份验证

在此页面上