重要
我们建议您使用服务帐户而不是 API 密钥对 Atlas 管理 API 进行身份验证。API密钥是一种旧版的身份验证方法。
要使用Atlas管理 API管理Atlas集群,您必须对API请求进行身份验证。Atlas Administration API接受以下身份验证方法:
服务帐户访问权限令牌 (OAuth 2.0)
API密钥(HTTP摘要式身份验证)
学习如何使用服务帐户和 API 密钥来配置对 Atlas 组织和项目的编程访问权限,请参阅 Atlas 管理 API 入门指南。
Atlas 管理 API不提供对集群中存储的数据的访问权限。要在数据库中读取或写入数据,您必须使用具有相应读取或写入 角色 的 数据库用户 的凭证,向集群进行身份验证。您可以使用Atlas Administration API创建和管理数据库用户。
注意
以下部分介绍了Atlas Administration API身份验证方法:
服务帐户概述
服务帐户是管理 Atlas 管理 API 身份验证的推荐方法。通过将行业标准 OAuth2.0 协议与 客户端凭证流程 结合使用,服务帐户可提高 API 密钥的安全性。
服务帐户允许您管理权限并创建对API请求进行身份验证的访问令牌。每个服务帐户都有一个客户端ID和一个密钥,该密钥用作创建访问权限令牌的用户名和密码。要学习如何使用访问权限令牌构建API请求,请参阅发出API请求。
根据 OAuth 2.0 规范,访问令牌的有效期仅为 1 小时(3600 秒)。这种有限的生命周期可以防止重放攻击,即攻击者没有时间限制地使用泄露的访问权限令牌。
每个服务帐户只属于一个组织,您可以授予该帐户访问权限该组织内任意数量项目的权限。要授予组织级服务帐户对项目的访问权限,请参阅授予现有服务帐户对项目的访问权限。
Atlas 角色 限制服务帐户可以使用其访问令牌进行身份验证的操作。您必须像为用户分配角色一样为服务帐户分配角色,以确保服务帐户生成具有所需API调用所需权限的访问权限令牌。
您无法使用服务帐户或其访问令牌通过 Atlas 用户界面登录 Atlas。服务帐号仅授予对 Atlas 管理 API 的访问权限,不包括用户界面访问权限或对集群数据的访问权限。要学习;了解有关服务帐户限制的更多信息,请参阅MongoDB限制和阈值。
API密钥概述
重要
我们建议您使用服务帐户而不是API密钥对Atlas 管理 API进行身份验证。API密钥是一种旧版的身份验证方法。
API密钥是对使用HTTP摘要式身份验证的Atlas Administration API进行身份验证的传统方法。
API密钥分为两部分:公钥和私钥。它们的功能与用户名和密码相同,提供服务验证API请求。要学习如何使用API密钥构建API请求,请参阅发出API请求。
Atlas使用称为随机数的唯一值对公钥和私钥进行哈希处理。根据HTTP摘要式身份验证规范,此随机数仅在短时间内有效。这种有限的生命周期可以防止重放攻击,即攻击者缓存私钥以不受时间限制地使用它。
每对API密钥仅属于一个组织,并且可以授予该组织中任意数量的项目访问权限。要授予组织级 API 密钥对项目的访问权限,请参阅授予现有服务帐户对项目的访问权限。
Atlas 角色 限制API密钥可以执行的操作。您必须像为用户分配角色一样为API密钥分配角色,以确保API密钥具有所需API调用的必要权限。
您无法使用API密钥通过Atlas用户界面登录Atlas。API 密钥仅授予对 Atlas 管理 API 的访问权限,不包括用户界面访问权限或对集群数据的访问权限。
后续步骤
要学习如何使用和管理服务帐户和API密钥,请参阅以下过程: