管理用户和角色
IBM Cloud® Databases for Redis 实例已启用身份验证,并使用 Redis 的内置访问 control.They 通过 访问控制列表(ACL)支持多用户和身份验证。
管理Redis用户
管理员用户
在 IBM Cloud中供应新实例时,会自动授予管理员用户访问权。 您还可以为实例创建其他用户和凭证。
要使用“管理”用户来连接到实例,请首先设置“管理”密码。
在用户界面中设置管理员密码
从 IBM Cloud Dashboard 中的资源列表中选择您的实例,通过用户界面设置管理员密码。 然后,选择 设置。 接下来,选择 更改数据库管理员密码。
在 CLI 中设置管理员密码
使用 Cloud Databases CLI 插件 中的 cdb user-password 命令来设置 admin 密码。
例如,要设置实例的管理员密码,请使用以下命令:
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
在应用程序接口中设置管理员密码
服务的“概述部署详情”部分中显示的基础端点提供了通过 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"}` \
default 用户
Databases for Redis 内部不再使用 default 用户。 相反,Databases for Redis 实例由 Cloud Databases ibm-user 管理。
如果您的实例目前使用 default 用户,则可以继续使用。 不过,继续使用 default 用户需要更改密码,预计这将限制权限。 这些许可权限制是主要版本升级过程中的预期行为更改。 具体来说,default 用户的以下权限受到限制:
config:default用户无法查看,添加,更新或删除数据库配置。default用户也无法创建或管理数据库用户和角色。acl:default用户无法创建新用户。
如果打算继续使用默认用户,请确保在更新密码后彻底测试应用程序的兼容性。 有关在 Redis 中配置访问和权限的更多信息,请参阅 Redis 中的 ACL 支持。
要更新 default 用户密码,请使用类似如下的命令:
ibmcloud cdb deployment-user-password <INSTANCE_NAME_OR_CRN> default <NEW PASSWORD>
有关更多信息,请参阅 升级到新的主要版本。
管理Redis角色
基于角色的访问控制 (RBAC)
基于角色的访问控制 (RBAC) 允许您配置每个用户具有的访问级别。
Databases for Redis 当前支持以下角色:
admin角色提供对所有管理命令和操作的完全控制和访问权。all角色提供admin,read和write访问权,使用户能够完全控制所有命令和操作。read角色允许对命令进行只读访问。 具有此角色的用户可以运行读操作,但无法执行写操作。write角色允许对命令进行仅写访问。 具有此角色的用户可以执行写操作,但不能执行读操作。
可以在 admin 和 all 中使用管理命令 config get,config reset,acl whoami,acl cat,acl users,acl genpass,acl log 和 acl help,但所有其他
acl 和 config 命令都不可用。
还可以组合这些角色以配置用户的访问级别。
RBAC 角色组合
+ include 命令
- 排除命令
+@ 包含命令类别
-@ 排除命令类别
admin+read: 完全admin控制,能够运行read操作。admin+write: 完全admin控制,能够运行write操作。admin+all: 简化为all,包括admin,read和write。read+write:同时拥有“read”和“write”角色的用户可以执行read和write这两项操作,但他们不具备管理权限。read+all: 简化为all,包括admin,read和write。write+all: 简化为all,包括admin,read和write。admin+read+write: 完全admin控制,能够同时运行read和write操作。admin+read+all: 简化为all,其中包括admin,read和write。admin+write+all: 简化为all,其中包括admin,read和write。read+write+all: 简化为all,其中包括admin,read和write。-
read-write:用户仅拥有“read”角色,且仅能执行read操作。
这些组合提供不同级别的访问控制。 选择与特定需求和安全注意事项一致的组合。
通过 API 创建具有 RBAC 角色的用户
要使用 RBAC 角色创建用户,请使用以下命令:
curl -X POST "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database" \
-H "Authorization: Bearer {iam_token}" \
-H "Content-Type: application/json" \
-d '{
"user": {
"username": "example-user",
"password": "YourPassword123!"
}
}'
要创建具有默认角色的用户,请使用以下命令:
curl -X POST "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database" \
-H "Authorization: Bearer {iam_token}" \
-H "Content-Type: application/json" \
-d '{
"user": {
"username": "example-user",
"password": "YourPassword123!"
}
}'
要更改或更新角色,请使用以下命令:
curl -X PATCH "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
-H "Authorization: Bearer {iam_token}" \
-H "Content-Type: application/json" \
-d '{
"user": {
"role": "+@read +@admin"
}
}'
要更改角色密码,请使用以下命令:
curl -X PATCH "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
-H "Authorization: Bearer {iam_token}" \
-H "Content-Type: application/json" \
-d '{
"user": {
"password": "NewSecurePassword456!"
}
}'
要删除用户,请使用以下命令:
curl -X DELETE "https://{region}.databases.cloud.ibm.com/v5/ibm/deployments/{deployment_id}/users/database/{username}" \
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json"
通过 CLI 创建具有 RBAC 角色的用户
要使用 RBAC 角色创建用户,请使用以下命令:
ibmcloud cdb user-create <CRN> <USERNAME> <PASSWORD> -r "<ROLE_STRING>"
对于 -r USER_ROLE,请使用 <+/-@all> <+/-@read> <+/-@write> <+/-@admin> 的某些组合来授予访问权。
示例:
ibmcloud cdb user-create \
crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
Password1234567890 \
-r "+@read +@write"
样本输出:
Key Value
ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:49ec86e6-a2ac-4eb2-9c6b-48039c554f7e
Deployment ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description Creating user
Created At 2025-04-18T07:26:31Z
Status running
Progress Percentage 0
...
Progress Percentage 66
...
Status completed
Progress Percentage 100
Location https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK
要创建具有默认角色的用户,请使用以下命令:
ibmcloud cdb user-create <CRN> <USERNAME> <PASSWORD>
示例:
ibmcloud cdb user-create \
crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
ibm_cloud_user_default_role \
Password1234567890
样本输出:
Key Value
ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:f225e6a3-3f4e-449d-bfce-a5e171719074
Deployment ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description Creating user
Created At 2025-04-18T07:47:27Z
Status running
Progress Percentage 0
Status completed
Progress Percentage 100
Location https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK
要更改或更新角色,请使用以下命令:
ibmcloud cdb redis user-set <CRN> <USERNAME> <ROLE_STRING>
示例:
ibmcloud cdb redis user-set \
crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:: \
ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
"+@all"
样本输出:
Key Value
ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45:task:3a30ebc4-20d8-4004-8514-47c615276f81
Deployment ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
Description Updating user
Created At 2025-04-18T07:32:40Z
Status running
Progress Percentage 0
Status completed
Progress Percentage 100
Location https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:7065adf2-cc4f-433a-9a97-aa69d03f6f45::
OK
要更改角色密码,请使用以下命令:
ibmcloud cdb user-password <CRN> <USERNAME> <NEW_PASSWORD>
示例:
ibmcloud cdb user-password \
crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:: \
ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf \
Password1234567890123
样本输出:
Key Value
ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:task:c254ccef-9e9c-4375-ae0f-4c78173f6278
Deployment ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
Description Updating user
Created At 2025-04-18T07:41:32Z
Status running
Progress Percentage 0
Progress Percentage 66
Status completed
Progress Percentage 100
Location https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
OK
要删除一个角色,请使用以下命令:
ibmcloud cdb user-delete <CRN> <USERNAME>
示例:
ibmcloud cdb user-delete \
crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:: \
ibm_cloud_35ea37ad_119b_462d_bfd4_a4f001387cdf
样本输出:
Key Value
ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02:task:cc7effad-4fb2-4ae6-bd94-2d432b471e39
Deployment ID crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a/40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
Description Deleting user
Created At 2025-04-18T07:44:10Z
Status running
Progress Percentage 0
Status completed
Progress Percentage 100
Location https://api.dev-yp-03.us-south.databases.cloud.ibm.com/v5/ibm/deployments/crn:v1:bluemix:public:databases-for-redis-dev-yp-03:us-south:a%2F40ddc34a953a8c02f10987b59085b60e:3b20b985-1c89-441e-8e00-2d394d441a02::
OK
通过 Terraform 创建具有 RBAC 角色的用户
要使用 RBAC 角色为用户创建队列,请使用以下命令:
resource "ibm_database" "redis" {
name = "Databases for Redis-jt-DO-NOT-DELETE"
plan = "standard"
location = var.region
service = "databases-for-redis"
version = "7.2"
service_endpoints = "public-and-private"
resource_group_id = data.ibm_resource_group.group.id
tags = ["redis", "user-mgmt"]
# ##################################################
# # 1. Create user with custom ACL role
# ##################################################
users {
name = "reader-user-with-role"
password = "secureReadPass123456789"
role = "-@all +@read"
}
对于 role,请使用 <+/-@all> <+/-@read> <+/-@write> <+/-@admin> 的某些组合来授予访问权。
使用以下命令创建具有默认角色的队列:
resource "ibm_database" "redis" {
name = "Databases for Redis-jt-DO-NOT-DELETE"
plan = "standard"
location = var.region
service = "databases-for-redis"
version = "7.2"
service_endpoints = "public-and-private"
resource_group_id = data.ibm_resource_group.group.id
tags = ["redis", "user-mgmt"]
##################################################
# 2. Create user with default role
##################################################
users {
name = "default-user-role"
password = "defaultPass123456789"
# no `role` field → default ACL applies
}
用户可在初始 Terraform 配置过程中配置默认或自定义角色。 配置后,不支持创建、删除、更新密码或更改角色等操作,以保持一致性和安全性。
Redis 角色
“管理”用户和实例上的所有其他用户都具有对 Redis 命令集的完全访问权,但子命令 config 和 acl 除外-这包括“管理”用户。config get,config reset,acl whoami,acl cat,acl users,acl genpass,acl log 和 acl help 可用。
在 Redis 中,您通过服务凭证、CLI、API 或直接在 Redis 中创建的任何用户都具有相同的访问权限。 您不能使用 Redis 本身来创建访问权限仅限于特定密钥或密钥范围的用户或角色,因为它们不会在群集部署中自动传播。 用于管理用户的所有其他方法都确保在集群中传播。
通过用户界面创建用户
- 转到您所用服务的仪表盘。
- 选择服务凭据。
- 选择“新建凭证”。
- 为您的新凭证选择一个描述性名称。
- (可选) 指定新凭证是使用公共端点还是专用端点。 使用 添加内联配置参数 字段中的
{ "service-endpoints": "public" }/{ "service-endpoints": "private" }来生成使用指定端点的连接字符串。 未强制使用端点。 它仅控制连接字符串中的主机名。 缺省情况下会生成公共端点。 - 单击 添加 以供应新凭证。 将自动生成用户名,密码和关联用户。
新凭证显示在表中,连接字符串在“查看凭证”下的“单击以复制”字段中以 JSON 形式提供。
从应用程序接口创建用户
服务_概述_中显示的_基础端点_提供了通过 API 访问该实例的基本URL。 要创建和管理用户,请使用带有 用户 端点的基本URL:
curl -X POST https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/{user_type} \
-H "Authorization: Bearer $APIKEY" \
-H "Content-Type: application/json" \
-d "{"user": {"username": "user", "password": "v3ry-1-secUre-pAssword-2"}}" \
要检索用户的连接字符串,请使用带有 "/users/{userid}/connections 端点的基本URL。
内部用户
您的实例上有四个保留用户。 修改这些用户会导致实例变得不稳定或不可用。
ibm-user-用于管理实例和公开度量的内部admin用户。replication-user-用于复制的用户帐户。sentinel-user-用于处理监视和故障转移的传感器的用户帐户。admin-提供用于访问实例的缺省用户。