ユーザーとロールの管理
IBM Cloud® Databases for Redis インスタンスは認証が有効になっており、 Redis の組み込みアクセス control.They を使用して、 アクセス制御リスト(ACL)のサポートを通じて複数のユーザーと認証をサポートします。
Redisユーザーの管理
管理者ユーザー
IBM Cloud で新しいインスタンスをプロビジョニングすると、自動的に「Admin」ユーザーへのアクセス権が付与されます。 また、インスタンス用に追加のユーザーと認証情報を作成することもできます。
管理者ユーザーを使用してインスタンスに接続するには、最初に管理者パスワードを設定します。
UIで管理者パスワードを設定する
IBM Cloud Dashboardリソースリストからインスタンスを選択し、UIから管理者パスワードを設定します。 次に、 「設定」 を選択します。 次に、 *「データベース管理者パスワードの変更」*を選択します。
CLIでadminパスワードを設定する
Cloud Databases CLI プラグイン から cdb user-password コマンドを使用して、 admin パスワードを設定します。
たとえば、インスタンスの管理者パスワードを設定するには、次のコマンドを実行します
ibmcloud cdb user-password <INSTANCE_NAME_OR_CRN> admin <NEWPASSWORD>
API での管理者パスワードの設定
サービスの「概要」セクションにある「デプロイメントの詳細」に表示される「Foundation Endpoint」は、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 役割の組み合わせ
+ に含まれるコマンド
- はコマンドを除外します
+@ には、コマンド・カテゴリーが含ま
-@ はコマンド・カテゴリーを除外します
admin+read:read操作を実行する機能を備えた完全なadmin制御。admin+write:write操作を実行する機能を備えた完全なadmin制御。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:readとwriteの両方の操作を実行できる完全なadmin制御。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 自体では、特定のキーまたはキーの範囲にアクセスが制限されたユーザーやロールを作成することはできません。これらはクラスタ展開において自動的に継承されないためです。 ユーザーを管理する他のすべての手段により、クラスター全体での伝播が確実になります。
UI を使用したユーザーの作成
- サービスのダッシュボードに移動します。
- 「 サービス認証情報 」を選択します。
- 「 新しい認証情報 」を選択します。
- 新規資格情報にわかりやすい名前を選びます。
- (オプション) 新規資格情報でパブリック・エンドポイントまたはプライベート・エンドポイントのどちらを使用するかを指定します。 *「インラインの構成パラメーターの追加」*フィールドで
{ "service-endpoints": "public" }/{ "service-endpoints": "private" }のいずれかを使用すると、指定したエンドポイントを使用した接続文字列を生成できます。 そのエンドポイントを使用することが強制されるわけではありません。 接続文字列に含まれるホスト名が制御されるだけです。 パブリック・エンドポイントはデフォルトで生成されます。 - 「 追加 」をクリックして、新しい認証情報を設定します。 ユーザー名、パスワード、およびそれに対応するユーザーが自動的に生成されます。
新しい資格情報が表に表示されます。接続文字列は JSON として*「資格情報の表示」*のクリックしてコピーできるフィールドに表示されます。
API を使用したユーザーの作成
サービスの「 概要 」に表示される「 Foundation Endpoint 」は、API を通じてこのインスタンスにアクセスするための基本の URL を提供します。 ユーザーの作成および管理を行うには、 URL をベースに、 users エンドポイントを使用します
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"}}" \
ユーザーの接続文字列を取得するには、基本 URL に /users/{userid}/connections エンドポイントを付けて使用します。
社内ユーザー
このインスタンスには、4人の予約済みユーザーが登録されています。 これらのユーザーを変更すると、インスタンスが不安定になったり、使用できなくなったりする可能性があります。
ibm-user- インスタンスの管理およびメトリクスの公開を行う、adminの内部ユーザー。replication-user- レプリケーションに使用されるユーザー・アカウント。sentinel-user- モニターおよびフェイルオーバーを処理するためのセンチネル用のユーザー・アカウント。admin- インスタンスにアクセスするために指定されるデフォルトのユーザー。