重要
每个 Atlas Administration API 都有自己的资源,需要进行初始设置。
您只能通过公共互联网访问 Atlas Administration API 服务器。Atlas Administration API 不适用于使用 网络对等互连或私有端点的连接。
要了解更多信息,请参阅 Atlas 编程访问权限。
Atlas Administration API遵循 REST 架构风格的原则来公开大量内部资源,从而启用以编程方式访问权限Atlas中的管理功能。要学习;了解有关Atlas Administration API 的更多信息,请参阅Atlas Administration API参考。
Atlas Administration API不提供对集群中存储的数据的访问权限。要在数据库中读取或写入数据,您必须使用具有相应读取或写入角色的 数据库用户的凭证,对集群进行身份验证。您可以使用Atlas Administration API创建和管理数据库用户。
要使用Atlas Administration API管理Atlas集群,您必须使用以下身份验证方法之一对API请求进行身份验证:
服务帐户访问权限令牌 (OAuth)2.0
API密钥( HTTP摘要式身份验证)
要学习;了解这些方法,请参阅Atlas Administration API身份验证方法。
以下部分介绍如何使用服务帐户和API密钥来配置对Atlas组织和项目的编程访问权限。
必需的访问权限
要为组织创建服务帐户或API密钥,您必须拥有该组织的Organization Owner访问权限。
要授予服务帐户对项目的访问权限,您必须对拥有该项目的组织具有Organization Owner访问权限。
要授予API密钥对项目的访问权限,您必须拥有该项目的Project Owner访问权限。
可选:需要针对 Atlas Administration API 的 IP 访问列表
使用 Atlas 用户界面创建组织时,Atlas 默认启用 API IP 访问列表功能。这会将 API 请求限制为仅来自您在 IP 访问列表中指定的基于位置的 IP 或 CIDR 地址的那些请求。如果您在没有 IP 访问列表条目的情况下向 Atlas Administration API 发出请求,服务器则会返回 403 状态码。
如果您禁用该功能,则只要 IP 访问列表为空,您便可从互联网上的任意地址发出 API 请求。一旦您添加了 IP 访问列表条目,则只有来自该 IP 地址的请求才会被处理。
要将您的组织设置为在创建组织后要求为每个 Atlas Administration API 请求提供 IP 访问列表,请执行以下步骤:
在 Atlas 中,转到 Organization Settings(项目集成)页面。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Organization Settings。
显示“组织设置”页面。
授予 Atlas 的编程访问权限
您可以使用以下两种身份验证方法之一向组织或项目授予编程访问权限:
重要
我们建议您使用服务帐户而不是API密钥对Atlas Administration API进行身份验证。 API密钥是一种传统的身份验证方法。
服务帐户(推荐) | API密钥(旧版) |
|---|---|
使用HTTP摘要式身份验证向Atlas进行身份验证的传统方法。 | |
创建服务帐号后,您将使用其客户端 ID 和机密生成访问令牌,用于对您的 API 请求进行身份验证。根据 OAuth 2.0 规范,访问令牌的有效期仅为 1 小时(3600 秒)。访问令牌过期可以防止重放攻击;在重放攻击中,可以不受时间限制地使用泄露的访问令牌。 | Atlas 使用一个称为 nonce 的唯一值对公钥和私钥进行哈希化处理。根据 HTTP 摘要式身份验证规范,nonce 的有效期很短。这是为了防止重放攻击,因此您不能缓存 nonce 并永远使用它。 |
Atlas 角色 限制服务帐户可以使用其访问权限令牌执行的操作。您必须像为用户分配角色一样为服务帐户分配角色,以确保服务帐户生成具有所需API调用所需权限的访问权限令牌。 | |
每个服务帐户只属于一个组织,可以授予该组织中任意数量的项目访问权限。要授予组织级服务帐户对项目的访问权限,请参阅授予现有服务帐户对项目的访问权限。 | 每对API密钥仅属于一个组织,并且可以授予该组织中任意数量的项目访问权限。要授予组织级 API 密钥对项目的访问权限,请参阅授予现有服务帐户对项目的访问权限。 |
您无法使用服务帐户或其访问令牌通过 Atlas 用户界面登录 Atlas。服务帐号仅授予对Atlas管理 API的访问权限,不包括用户界面访问权限或对集群数据的访问权限。 | 您无法使用API密钥通过Atlas用户界面日志Atlas 。 API密钥仅授予对Atlas Administration API 的访问权限,不包括用户界面访问权限或对集群数据的访问权限。 |
为组织授予编程访问权限
使用以下过程,通过服务帐户或API密钥向组织授予编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅Atlas Administration API身份验证方法。
授予对项目的编程访问权限
使用以下过程,通过服务帐户或API密钥授予对项目的编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅Atlas Administration API身份验证方法。
从项目添加项目访问权限
如果您尚未为组织创建服务帐户或 API 密钥,则可以为项目创建它们,以授予该项目访问 Atlas 管理 API 的权限。为项目创建的服务帐号或 API 密钥会自动添加到父组织中,并获得 Organization Member 权限。
提出 API 请求
Atlas 管理 API 使用以下两种身份验证方法之一来验证请求:服务帐户或 API 密钥。您需要在配置首选身份验证方法时保存的密钥或机密才能完成以下过程。
所有 Atlas Administration API 端点均有以下基本 URL:
https://cloud.mongodb.com/api/atlas/<version>
重要
MongoDB 使用 HTTPS URL 来提高安全性。使用 HTTP URL 将返回 301 状态码。
或者,您可以使用任何支持 OpenAPI v3 规范 的工具来生成代码示例或模拟服务器。例如,可以将 Atlas Admin API 规范导入 Postman,生成 curl 命令。
警告
在 Postman 中使用 HTTP URL 将按预期返回 301 状态码。然而,在这种情况下,Postman 可能会自动使用 HTTPS 重试请求,但同时会从重试请求中删除标头和正文。这将返回 401 状态码而不是 301,这使得很难确定请求失败的原因。
要使用 Postman 生成 curl 命令:
后续步骤
要了解有关 Atlas Administration API 的更多信息,请参阅 Atlas Administration API 参考资料。
要管理对 Atlas Administration API 的编程访问,请参阅以下任一过程: