要仅使用 API 向组织或项目授予编程访问权限,请创建 API 密钥或服务帐号。这可确保提供服务户名和密码的密钥和访问权限令牌永远不会通过网络发送。API密钥和服务帐户:
不能用于通过用户界面日志Cloud Manager 。
必须像授予用户一样被授予角色,以确保API密钥和服务帐户可以调用API端点而不会出错。
属于一个组织,但可被授予对该组织中任意数量项目的访问权限。
要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
使用以下过程,通过API密钥或服务帐户向组织授予编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
输入一个 Name。
输入一个 Description。
从 Client Secret Expiration(客户端密钥到期)菜单中选择持续时间。
从Organization Permissions(组织权限)菜单中,为服务帐户选择一个或多个新角色。
客户端密钥在创建访问令牌时充当密码。
警告
只有在这个时候,您才能查看完整的客户机密。点击 Copy(复制)并将其保存到安全位置。否则,您需要生成新的客户端机密。
单击 Add Access List Entry(连接)。
输入您希望Cloud Manager接受针对该服务帐号的API请求的IP解决或 APIIPCIDR区块。Cloud Manager
Use Current IP AddressCloud ManagerAPI如果用于访问权限Cloud Manager的托管也将使用此服务帐号发出API请求,则也可以单击 。
单击 Save(连接)。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
在Add API Key页面的API Key Information步骤中:
在Add API Key页面的Private Key & Access List步骤中,单击Add Access List Entry 。
对于此API密钥,您可以选择:
警告
在离开此页面之前复制私钥
Cloud Manager 会显示Private Key一次:在此页面上。 单击Copy将私钥添加到剪贴板。 像保护任何其他密码一样保存和保护此私钥。
您可以查看有权访问权限组织的所有API密钥或服务帐户的详细信息。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
列出有权访问权限组织的所有服务帐户。
单击服务帐户名称可查看其详细信息,包括:
服务帐户的混淆客户端密钥
上次使用客户端密钥的日期
创建客户端密钥的日期
服务帐户可以访问权限API的IP地址
已为服务帐户分配的角色
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
在API密钥旁边,单击。
单击 View Details(连接)。
<Public Key> API Key Details模式显示:
混淆Private Key 。
上次使用密钥的日期。
密钥的创建日期。
密钥位于访问列表中的IPv4地址。
已授予密钥访问权限的项目。
您可以更改组织中API密钥或服务帐户的角色、描述或访问权限列表。您还可以为服务帐户生成新的客户端密钥。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
要修改 Name 或 Description,请单击 。
单击 Generate New Client Secret
从菜单中选择客户端密钥的持续时间。 客户端密钥在此持续时间后过期。
单击 Generate New(连接)。
单击 Copy 并将客户端密钥保存到安全位置。这是您唯一一次可以查看完整的客户端密钥。
单击 Edit Permissions(连接)。
从Organization Permissions 菜单中,为服务帐户选择一个或多个新角色。
单击 Save and next(连接)。
重要
服务帐户凭证将保持活动状态,直到过期或被用户撤销。
要添加您希望Cloud Manager接受针对此服务帐号的API请求的IP解决或 APIIPCIDR区块,请单击 Cloud ManagerAdd Access List EntryIP并键入IP解决。
Use Current IP AddressCloud ManagerAPI如果用于访问权限Cloud Manager的托管也将使用此服务帐号发出API请求,则也可以单击 。
要从访问权限列表中删除IP解决,请单击在IP解决右侧。
单击 Save(连接)。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
单击在要更改的API密钥旁边。
单击 Edit(连接)。
在Add API Key页面的API Key Information步骤中:
在Add API Key页面的Private Key & Access List步骤中,单击Add Access List Entry 。
对于此API密钥,您可以选择:
警告
在离开此页面之前复制私钥
Cloud Manager 会显示Private Key一次:在此页面上。 单击Copy将私钥添加到剪贴板。 像保护任何其他密码一样保存和保护此私钥。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
单击要删除的服务帐户右侧 Actions 下的 图标。
单击 Delete(连接)。
从组织中删除服务帐户还会将其从服务帐户被授予访问权限的任何项目中删除。
如果尚未显示,组织从导航栏中的Organizations菜单。
在侧边栏中,单击 Identity & Access 标题下的 Applications`。
显示应用程序页面。
单击在要删除的API密钥旁边。
单击Delete 以确认您要删除此 API 密钥,或单击 Cancel以将密钥保留在组织中。
注意
从组织中删除API密钥也会从该密钥被授予访问权限的任何项目中删除该密钥。
使用以下过程,通过API密钥或服务帐户授予对项目的编程访问权限。要学习;了解有关这两种身份验证方法的更多信息,请参阅身份验证。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
输入一个 Name。
输入一个 Description。
从 Client Secret Expiration(客户端密钥到期)菜单中选择持续时间。
从项目权限菜单中,为服务帐户选择一个或多个新角色。
客户端密钥在创建访问令牌时充当密码。
警告
只有在这个时候,您才能查看完整的客户机密。点击 Copy(复制)并将其保存到安全位置。否则,您需要生成新的客户端机密。
单击 Add Access List Entry(连接)。
输入您希望Cloud Manager接受针对该服务帐号的API请求的IP解决或 APIIPCIDR区块。Cloud Manager
Use Current IP AddressCloud ManagerAPI如果用于访问权限Cloud Manager的托管也将使用此服务帐号发出API请求,则也可以单击 。
单击 Save(连接)。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
在Add API Key页面的API Key Information步骤中:
在Add API Key页面的Private Key & Access List步骤中,单击Add Access List Entry 。
对于此API密钥,您可以选择:
警告
在离开此页面之前复制私钥
Cloud Manager 会显示Private Key一次:在此页面上。 单击Copy将私钥添加到剪贴板。 像保护任何其他密码一样保存和保护此私钥。
您可以查看有权访问权限您的项目的所有API密钥或服务帐户的详细信息。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
列出有权访问权限您的项目的所有服务帐户。
单击服务帐户名称可查看其详细信息,包括:
服务帐户的混淆客户端密钥
上次使用客户端密钥的日期
创建客户端密钥的日期
服务帐户可以访问权限API的IP地址
已为服务帐户分配的角色
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
在API密钥旁边,单击。
单击 View Details(连接)。
<Public Key> API Key Details模式显示:
混淆Private Key 。
上次使用密钥的日期。
密钥的创建日期。
密钥位于访问列表中的IPv4地址。
已授予密钥访问权限的项目。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
要修改 Name 或 Description,请单击 。
单击 Generate New Client Secret
从菜单中选择客户端密钥的持续时间。 客户端密钥在此持续时间后过期。
单击 Generate New(连接)。
单击 Copy 并将客户端密钥保存到安全位置。这是您唯一一次可以查看完整的客户端密钥。
单击 Edit Permissions(连接)。
从Project Permissions 菜单中,为服务帐户选择一个或多个新角色。
单击 Save and next(连接)。
重要
服务帐户凭证将保持活动状态,直到过期或被用户撤销。
要添加您希望Cloud Manager接受针对此服务帐号的API请求的IP解决或 APIIPCIDR区块,请单击 Cloud ManagerAdd Access List EntryIP并键入IP解决。
Use Current IP AddressCloud ManagerAPI如果用于访问权限Cloud Manager的托管也将使用此服务帐号发出API请求,则也可以单击 。
要从访问权限列表中删除IP解决,请单击在IP解决右侧。
单击 Save(连接)。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
单击在要更改的API密钥旁边。
单击 Edit(连接)。
在Add API Key页面的API Key Information步骤中:
在Add API Key页面的Private Key & Access List步骤中,单击Add Access List Entry 。
对于此API密钥,您可以选择:
警告
在离开此页面之前复制私钥
Cloud Manager 会显示Private Key一次:在此页面上。 单击Copy将私钥添加到剪贴板。 像保护任何其他密码一样保存和保护此私钥。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
Actions单击要从项目中删除的服务帐户右侧 下的图标。
单击 Remove from this project(连接)。
重要
服务帐户仍然存在于组织中,任何现有凭证都保持活动状态,直到过期或手动撤销。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。
如果尚未显示,请从导航栏的Projects菜单中选择所需的项目。
在侧边栏中,单击 Project Settings。
显示项目设置页面。
在侧边栏中,单击 Identity & Access 标题下的 Applications。
显示应用程序页面。
单击在要删除的API密钥旁边。
单击Delete 以确认您要删除此 API 密钥,或单击 Cancel以将密钥保留在组织中。
注意
从组织中删除API密钥也会从该密钥被授予访问权限的任何项目中删除该密钥。
Cloud Manager API使用两种身份验证方法之一对请求进行身份验证: API密钥或服务帐户。您将需要在配置首选身份验证方法时保存的密钥或密钥,以完成以下过程。
要使用服务帐户发出 API 请求,请使用该服务帐户生成访问令牌,然后在请求中使用访问令牌:
找到以 mdb_sa_sk_ 开头的客户机密;这是创建服务帐户后立即保存的客户机密,当时也是唯一一次可以查看客户机密的时机。如果未保存客户端机密,则必须生成新的客户端机密。
例如,运行:
| echo -n {clientId}:{clientSecret} | base64 -w0 |
将以下示例中的 {base64Auth} 替换为上一步的输出,然后运行:
| 1 | curl --request POST \ |
| 2 | --url https://cloud.mongodb.com/api/oauth/token \ |
| 3 | --header 'accept: application/json' \ |
| 4 | --header 'cache-control: no-cache' \ |
| 5 | --header 'authorization: Basic {base64Auth}' \ |
| 6 | --header 'content-type: application/x-www-form-urlencoded' \ |
| 7 | --data 'grant_type=client_credentials' |
| {"access_token":"{accessToken}""expires_in":3600,"token_type":"Bearer"}% |
重要
访问令牌的有效期为 1 小时(3600 秒)。您无法刷新访问令牌。当此访问令牌过期时,重复此步骤以生成新的访问令牌。
将以下示例中的 {accessToken} 替换为上一步的输出。示例,--header 'Authorization: Bearer eyJ...pSnF' \。
以下示例GET请求将返回当前用户的所有项目:
| curl --request GET \ |
| --url https://cloud.mongodb.com/api/public/v1.0/groups \ |
| --header 'Authorization: Bearer {accessToken}' \ |
| --header 'Accept: application/json' \ |
以下示例POST请求采用请求正文并在组织中创建名为 MyProject 的项目:
| curl --header 'Authorization: Bearer {accessToken}' \ |
| --header 'Content-Type: application/json' \ |
| --header 'Accept: application/json' \ |
| --include \ |
| --request POST 'https://cloud.mongodb.com/api/public/v1.0/groups' \ |
| --data ' |
| { |
| "name": "MyProject", |
| "orgId": "5a0a1e7e0f2912c554080adc" |
| }' |
您的请求应类似于以下示例,其中,{publicKey} 是您的 API 公钥,{privateKey} 是相应的私钥。
以下示例GET请求将返回当前用户的所有项目:
| curl --user "{publicKey}:{privateKey}" --digest \ |
| --header "Accept: application/json" \ |
| --include \ |
| --request GET "https://cloud.mongodb.com/api/public/v1.0/groups?pretty=true" |
以下示例POST请求采用请求正文并在组织中创建名为 MyProject 的项目:
| curl --user "{publicKey}:{privateKey}" --digest \ |
| --header "Accept: application/json" \ |
| --header "Content-Type: application/json" \ |
| --include \ |
| --request POST "https://cloud.mongodb.com/api/public/v1.0/groups?pretty=true" \ |
| --data ' |
| { |
| "name": "MyProject", |
| "orgId": "deffb2031b938da53f16d714" |
| }' |