管理使用者和角色

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 角色提供 adminreadwrite 存取權,讓使用者完全控制所有指令及作業。
  • read 角色容許對指令進行唯讀存取。 具有此角色的使用者可以執行讀取作業,但無法執行寫入作業。
  • write 角色容許指令的唯寫存取權。 具有此角色的使用者可以執行寫入操作,但不能執行讀取操作。

管理指令 config getconfig resetacl whoamiacl catacl usersacl genpassacl logacl help 可在 adminall 中使用,但所有其他 aclconfig 指令則無法使用。

也可以結合這些角色來配置使用者的存取層次。

RBAC 角色組合

+ 併入項目指令

- excludes 指令

+@ 包含指令種類

-@ 排除指令種類

  • admin + read: 完整 admin 控制項,具有執行 read 作業的能力。
  • admin + write: 完整 admin 控制項,具有執行 write 作業的能力。
  • admin + all: 簡化為 all,其中包括 adminreadwrite
  • read + write:同時擁有「read」和「write」角色的使用者,可以執行「read」和「write」這兩項操作,但他們不會擁有管理權限。
  • read + all: 簡化為 all,其中包括 adminreadwrite
  • write + all: 簡化為 all,其中包括 adminreadwrite
  • admin + read + write: 完全 admin 控制,能夠同時執行 readwrite 作業。
  • admin + read + all: 簡化為 all,其中包括 adminreadwrite
  • admin + write + all: 簡化為 all,其中包括 adminreadwrite
  • read + write + all: 簡化為 all,其中包括 adminreadwrite
    • 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 指令集具有完整存取權,但次指令 configacl 除外-這包括 Admin 使用者。config getconfig resetacl whoamiacl catacl usersacl genpassacl logacl help 可供使用。

在 Redis 中,您建立的任何使用者(無論是透過服務憑證、CLI、API 或直接在 Redis 中建立)都具有相同的存取權。 您無法使用 Redis 本身來建立存取權限限於特定金鑰或金鑰範圍的使用者或角色,因為它們不會在群集部署中自動傳播。 管理使用者的所有其他方法都可確保在整個叢集中傳播。

透過使用者介面建立使用者

  1. 請前往您所使用服務的服務儀表板。
  2. 選取服務憑證
  3. 選擇「新增憑證」。
  4. 為您的新憑證選擇一個具描述性的名稱。
  5. (選用) 指定新認證使用公用或專用端點。 在 新增線型配置參數 欄位中使用 { "service-endpoints": "public" } / { "service-endpoints": "private" },以使用指定的端點產生連線字串。 未強制使用端點。 它只會控制連線字串中的主機名稱。 依預設會產生公用端點。
  6. 按一下 新增,以佈建新認證。 會自動產生使用者名稱、密碼及相關聯的使用者。

新認證會出現在表格中,且在 檢視認證下的按一下複製欄位中,連線字串會以 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-提供用來存取實例的預設使用者。