IBM Cloud Docs
管理用户和角色

管理用户和角色

IBM Cloud® Databases for etcd 已被弃用。 自 2025 年 4 月 1 日起,您将无法部署新的应用程序。 现有实例支持至 2025 年 10 月 15 日。 任何在该日期仍然存在的实例都将被删除。 有关更多信息,请参阅 IBM Cloud® Databases for etcd 的弃用。

IBM Cloud® Databases for etcd 部署已启用认证,并使用 etcd的 内置访问控制

在技术上可行的情况下, 强烈建议关闭 etcd 认证。Databases for etcd 自动修复有意关闭 etcd 认证的任何部署。

管理用户

供应 Databases for etcd 部署时,将自动创建 admin 用户。

请先设置管理密码,然后再使用该密码进行连接。

在 UI 中设置管理员密码

通过从 IBM Cloud 仪表板中的资源列表中选择实例,通过 UI 设置管理员密码。 然后,选择 设置。 接下来,选择 更改数据库管理员密码

在 CLI 中设置管理密码

使用 IBM Cloud CLI Cloud Databases 插件中的 cdb user-password 命令来设置管理密码。

例如,要设置名为 example-deployment 的部署的管理密码,请使用以下命令:

ibmcloud cdb user-password example-deployment admin <newpassword>

在 API 中设置管理密码

服务的“概述”面板“部署详细信息”部分上显示的基础端点提供了用于通过 API 访问此部署的基本 URL。 将其与 Set specified user 's password 端点配合使用以设置管理密码。

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

通过 UI 管理用户和角色

  1. 转到您服务的服务仪表板。
  2. 单击 服务凭证 以打开 服务凭证 部分。
  3. 单击 __New Credential * *。
  4. 为新证书选择一个描述性名称。
  5. (可选) 指定新凭证是使用公共端点还是专用端点。 在 添加内联配置参数 字段中使用 { "service-endpoints": "public" } / { "service-endpoints": "private" } 来生成使用指定端点的连接字符串。 未强制使用端点。 它仅控制连接字符串中的主机名。 缺省情况下会生成公共端点。
  6. 单击 添加 以供应新凭证。 将自动生成用户名和密码以及关联的 etcd 用户。

新凭证显示在表中,连接字符串在“查看凭证”下的“单击以复制”字段中以 JSON 形式提供。

通过 CLI 或 API 创建用户不会自动将该用户的连接字符串填充到 _服务凭证_中。 如果要将其添加到该处,那么可以使用现有用户信息创建新凭证。 在 _添加内联配置参数_下的 JSON 字段中输入用户名和密码。 例如,{"existing_credentials":{"username":"Robert","password":"supersecure"}}。 基本上,您会发送用户名和密码,服务凭证 会生成包含所填写凭证的连接字符串。

从现有用户生成凭证不会检查或创建该用户。

通过 服务凭证 创建的用户将被授予角色 readWriteAnyDatabasedbAdminAnyDatabase

如果需要从 服务凭证 创建的用户具有其他角色,那么可以使用管理用户来更改其角色。

通过 CLI 管理用户和角色

如果需要用户具有其他角色,那么可以使用 admin 用户来更改其角色。

直接通过 CLI 创建的用户不会显示在 _服务凭证_中,但您可以添加这些用户。

如果通过 Cloud Databases CLI 插件 来管理服务,请使用 cdb user-create 创建新用户。 例如,要为 "example-deployment" 创建新用户,请使用以下命令:

ibmcloud cdb user-create example-deployment <newusername> <newpassword>

任务完成后,使用 ibmcloud cdb deployment-connections 命令检索新用户的连接字符串。

etcd 集中 admin 数据库中的用户数据。 使用 show users 命令列出 mongo shell 中的所有用户及其角色和数据库许可权。

ibmcloud cdb deployment-connections --start -u admin etcd-production
Database Password>>
etcd shell version v4.0.3
connecting to: etcd://....
....
replset:PRIMARY> use admin
switched to db admin
replset:PRIMARY> show users

在 CLI 中创建的用户将获得与 服务凭证 用户 rwall 相同的角色。 他们对数据库中的所有密钥都具有读和写访问权。 如果需要他们具有已创建的其他角色,那么可以使用 root 用户来更改他们的角色。

直接通过 CLI 创建的用户不会显示在 _服务凭证_中,但您可以在选择时添加这些用户。

通过 API 管理用户和角色

如果需要用户具有其他角色,请使用 admin 用户来更改其角色。

直接从 API 创建的用户不会显示在 _服务凭证_中,但您可以添加这些用户。

服务的“概述”部分上显示的 基础端点 提供了用于通过 API 访问此部署的基本 URL。 要创建和管理用户,请将基本 URL 与 /users 端点 配合使用。

该命令如下所示:

curl -X POST 'https://api.{region}.databases.cloud.ibm.com/v4/ibm/deployments/{id}/users' \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d '{"username":"jane_smith", "password":"newsupersecurepassword"}'

要检索用户的连接字符串,请将基本 URL 与 /users/{userid}/connections 端点配合使用。

在 API 中创建的用户将获得与 服务凭证 用户 rwall 相同的角色。 他们对数据库中的所有密钥都具有读和写访问权。 如果需要他们具有已创建的其他角色,那么可以使用 root 用户来更改他们的角色。

直接从 API 创建的用户不会显示在 _服务凭证_中,但您可以在选择时添加这些用户。

root 用户

在 IBM Cloud中供应新部署时,将自动授予您对 etcd root 用户的访问权。 您还可以在“服务凭证”面板中添加用户,这允许访问 etcd 以与 IBM Cloud 帐户和 IAM 集成。

etcd root 用户 旨在用作管理用户。 它被授予 root 角色,这将授予对整个密钥空间,集群操作的读/写访问权,以及在部署上创建,修改和删除其他角色和用户的特权。

etcd 角色

etcd 使用角色系统来管理数据库和密钥访问。 角色用于为用户提供一组特权。 如果使用 root 用户和 ectdctl 连接到部署,那么可以使用如下命令来检查部署上的角色:

ETCDCTL_API=3 etcdctl --cacert=c5f07736-d94c-11e8-a2e9-62ec2ed68f84 --endpoints=https://35dae549-2275-4d3e-baed-d86f36022336.974550db65eb4ec0983f023940bf637f.databases.appdomain.cloud:32460 --user=root:$PASSWORD role list

创建授予对特定密钥或密钥范围的读访问权和/或写访问权的角色。 请参阅 用于管理角色的命令 的 etcd 文档。

创建角色后,将其分配给用户。 使用如下命令列出部署上的用户:

ETCDCTL_API=3 etcdctl --cacert=c5f07736-d94c-11e8-a2e9-62ec2ed68f84 --endpoints=https://35dae549-2275-4d3e-baed-d86f36022336.974550db65eb4ec0983f023940bf637f.databases.appdomain.cloud:32460 --user=root:$PASSWORD user list

服务凭证 用户

您通过“服务凭证”面板创建的用户将被授予角色 rwall。 他们对数据库中的所有密钥都具有读和写访问权。

如果需要从 服务凭证 创建的用户具有其他角色,那么可以使用 root 用户来更改其角色。

在 etcd 中创建的用户

绕过在 服务凭证,CLI,API 和 直接在 etcd 中创建用户。

直接在 etcd 中创建的用户不会显示在 _服务凭证_中,但您可以 添加这些用户

组合用户

如果使用 etcdctl 列出部署上的用户,那么您可能已注意到名为 compose 的用户。 compose 用户是用于管理复制,集群操作和确保部署稳定性的其他功能的内部管理帐户。 它具有与 root 用户相同的角色和特权。 建议不要更改或删除 compose 用户,这将破坏部署的稳定性。