管理使用者和角色
IBM Cloud® Databases for Redis 實例已啟用驗證功能,並使用 Redis 的內建存取 control.They 支援多位使用者,並透過 存取控制清單(ACL)支援驗證。
管理Redis用戶
管理員用戶
當您在 IBM Cloud中佈建新實例時,系統會自動為您提供 Admin 使用者的存取權。 您也可以為您的實例建立額外的使用者和憑證。
若要使用 Admin 使用者連接至您的實例,請先設定 Admin 密碼。
在 UI 中設定管理員密碼
從 IBM Cloud Dashboard 的資源清單中選擇您的實例,透過 UI 設定管理員密碼。 然後,選取 設定。 接下來,選取 變更資料庫管理者密碼。
在 CLI 中設定管理員密碼
從 Cloud Databases CLI 外掛程式 使用 cdb user-password 指令來設定 admin 密碼。
例如,要為您的執行個體設定管理員密碼,請使用下列命令:
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
在API中設定管理員密碼
服務的概述部署詳細資訊部分中顯示的基礎端點提供了透過 API 存取此實例的基本URL。 搭配使用它與 設定指定使用者的密碼 端點,以設定管理者密碼。
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角色容許指令的唯寫存取權。 具有此角色的使用者可以執行寫入操作,但不能執行讀取操作。
管理指令 config get、config reset、acl whoami、acl cat、acl users、acl genpass、acl log 及 acl help 可在 admin 及 all 中使用,但所有其他
acl 及 config 指令則無法使用。
也可以結合這些角色來配置使用者的存取層次。
RBAC 角色組合
+ 併入項目指令
- excludes 指令
+@ 包含指令種類
-@ 排除指令種類
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 角色
Admin 使用者及實例上的所有其他使用者對 Redis 指令集具有完整存取權,但次指令 config 及 acl 除外-這包括 Admin 使用者。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 建立用戶
服務_概述_中顯示的_基礎端點_提供了透過 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-提供用來存取實例的預設使用者。