ユーザーとロールの管理
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で管理者パスワードを設定する
サービスの Overview Deployment Details セクションに表示される 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を含む) に単純化します。
これらの組み合わせは、さまざまなレベルのアクセス制御を提供します。 お客様固有の要件とセキュリティー上の考慮事項に合わせた組み合わせを選択してください。
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 Credentials を選択します。
- New Credential を選択する。
- 新規資格情報にわかりやすい名前を選びます。
- (オプション) 新規資格情報でパブリック・エンドポイントまたはプライベート・エンドポイントのどちらを使用するかを指定します。 *「インラインの構成パラメーターの追加」*フィールドで
{ "service-endpoints": "public" }/{ "service-endpoints": "private" }のいずれかを使用すると、指定したエンドポイントを使用した接続文字列を生成できます。 そのエンドポイントを使用することが強制されるわけではありません。 接続文字列に含まれるホスト名が制御されるだけです。 パブリック・エンドポイントはデフォルトで生成されます。 - Add をクリックして、新しいクレデンシャルをプロビジョニングする。 ユーザー名、パスワード、および関連ユーザーが自動生成されます。
新しい資格情報が表に表示されます。接続文字列は JSON として*「資格情報の表示」*のクリックしてコピーできるフィールドに表示されます。
API を使用したユーザーの作成
サービスの Overview に表示される Foundation Endpoint は、API を通じてこのインスタンスにアクセスするためのベース URL を提供します。 ユーザーを作成し管理するには、 users エンドポイントを持つベース 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"}}" \
ユーザーの接続文字列を取得するには、基本 URL に /users/{userid}/connections エンドポイントを付けて使用します。
社内ユーザー
インスタンスには4人の予約ユーザーがいます。 これらのユーザーを変更すると、インスタンスが不安定になったり、使用できなくなったりします。
ibm-user- インスタンスを管理し、メトリクスを公開するためのadmin内部ユーザー。replication-user- レプリケーションに使用されるユーザー・アカウント。sentinel-user- モニターおよびフェイルオーバーを処理するためのセンチネル用のユーザー・アカウント。admin- インスタンスにアクセスするために提供されるデフォルト・ユーザー。