管理用户和角色
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 管理用户和角色
- 转到您服务的服务仪表板。
- 单击 服务凭证 以打开 服务凭证 部分。
- 单击 __New Credential * *。
- 为新证书选择一个描述性名称。
- (可选) 指定新凭证是使用公共端点还是专用端点。 在 添加内联配置参数 字段中使用
{ "service-endpoints": "public" }
/{ "service-endpoints": "private" }
来生成使用指定端点的连接字符串。 未强制使用端点。 它仅控制连接字符串中的主机名。 缺省情况下会生成公共端点。 - 单击 添加 以供应新凭证。 将自动生成用户名和密码以及关联的 etcd 用户。
新凭证显示在表中,连接字符串在“查看凭证”下的“单击以复制”字段中以 JSON 形式提供。
通过 CLI 或 API 创建用户不会自动将该用户的连接字符串填充到 _服务凭证_中。 如果要将其添加到该处,那么可以使用现有用户信息创建新凭证。 在 _添加内联配置参数_下的 JSON 字段中输入用户名和密码。 例如,{"existing_credentials":{"username":"Robert","password":"supersecure"}}。 基本上,您会发送用户名和密码,服务凭证 会生成包含所填写凭证的连接字符串。
从现有用户生成凭证不会检查或创建该用户。
您 通过 服务凭证 创建的用户将被授予角色 readWriteAnyDatabase
和 dbAdminAnyDatabase
。
如果需要从 服务凭证 创建的用户具有其他角色,那么可以使用管理用户来更改其角色。
通过 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
用户,这将破坏部署的稳定性。