사용자 및 역할 관리

IBM Cloud® Databases for Redis 인스턴스는 인증이 활성화된 상태로 제공되며 Redis 의 기본 제공 액세스 control.They 를 사용하여 여러 사용자와 ACL(액세스 제어 목록)지원을 통한 인증을 지원합니다.

Redis 사용자 관리

admin 사용자

IBM Cloud 에서 새 인스턴스를 프로비저닝하면, 자동으로 관리자(Admin) 사용자 권한이 부여됩니다. 인스턴스에 대한 추가 사용자 및 자격 증명을 만들 수도 있습니다.

Admin 사용자를 사용하여 인스턴스에 연결하려면 먼저 Admin 비밀번호를 설정하십시오.

UI에서 관리자 비밀번호 설정하기

IBM Cloud 대시보드의 리소스 목록에서 인스턴스를 선택하여 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 역할은 모든 admin 명령 및 조작에 대한 전체 제어 및 액세스를 제공합니다.
  • all 역할은 admin, readwrite 액세스를 제공하여 사용자에게 모든 명령 및 조작에 대한 전체 제어를 제공합니다.
  • read 역할은 명령에 대한 읽기 전용 액세스를 허용합니다. 이 역할의 사용자는 읽기 조작을 실행할 수 있지만 쓰기 조작을 수행할 수는 없습니다.
  • write 역할은 명령에 대한 쓰기 전용 액세스를 허용합니다. 이 역할이 있는 사용자는 쓰기 작업을 실행할 수 있지만 읽기 작업은 수행할 수 없습니다.

관리 명령 config get, config reset, acl whoami, acl cat, acl users, acl genpass, acl logacl helpadminall 에서 사용할 수 있지만 다른 모든 aclconfig 명령은 사용할 수 없습니다.

이러한 역할을 결합하여 사용자의 액세스 레벨을 구성할 수도 있습니다.

RBAC 역할 조합

+ 는 명령을 포함합니다

- 제외 명령

+@ 에는 명령 범주가 포함됩니다.

-@ 은 명령 범주를 제외합니다.

  • admin + read: read 조작을 실행하는 기능이 있는 전체 admin 제어입니다.
  • admin + write: write 조작을 실행하는 기능이 있는 전체 admin 제어입니다.
  • admin + all: admin, readwrite 를 포함하는 all 로 단순화합니다.
  • read + write: readwrite 역할을 모두 가진 사용자는 readwrite 작업을 모두 수행할 수 있지만, 관리자 권한은 없습니다.
  • read + all: admin, readwrite 를 포함하는 all 로 단순화합니다.
  • write + all: admin, readwrite 를 포함하는 all 로 단순화합니다.
  • admin + read + write: readwrite 조작을 모두 실행하는 기능이 있는 전체 admin 제어.
  • admin + read + all: admin, readwrite 를 포함하는 all 로 단순화합니다.
  • admin + write + all: admin, readwrite 를 포함하는 all 로 단순화합니다.
  • read + write + all: admin, readwrite 를 포함하는 all 로 단순화합니다.
    • 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 사용자 및 인스턴스의 다른 모든 사용자는 하위 명령 configacl 를 제외하고 Redis 명령 세트에 대한 전체 액세스 권한을 갖습니다. 여기에는 Admin 사용자가 포함됩니다. config get, config reset, acl whoami, acl cat, acl users, acl genpass, acl logacl help 를 사용할 수 있습니다.

Redis 에서는 서비스 자격 증명, CLI, API 또는 Redis 에서 직접 생성한 모든 사용자에게 동일한 액세스 권한이 부여됩니다. Redis 자체를 사용하여 특정 키나 키 범위로만 접근 권한이 제한된 사용자나 역할을 생성할 수는 없습니다. 클러스터 배포 환경에서는 이러한 권한이 자동으로 전파되지 않기 때문입니다. 다른 모든 사용자 관리 수단은 클러스터 간 전파를 보장합니다.

UI를 통해 사용자 생성하기

  1. 서비스에 대한 서비스 대시보드로 이동하십시오.
  2. ‘서비스 자격 증명’을 선택하십시오.
  3. '새 자격 증명'을 선택하십시오.
  4. 새 인증 정보에 대한 설명 이름을 선택하십시오.
  5. (선택사항) 새 인증 정보가 공용 또는 개인용 엔드포인트를 사용하는지를 지정하십시오. 인라인 구성 매개변수 추가 필드에서 { "service-endpoints": "public" } / { "service-endpoints": "private" }를 사용하여 지정된 엔드포인트를 사용하는 연결 문자열을 생성하십시오. 엔드포인트 사용은 적용되지 않습니다. 연결 호스트에 있는 호스트 이름을 제어할 뿐입니다. 공용 엔드포인트는 기본적으로 생성됩니다.
  6. ‘추가’를 클릭하여 새 자격 증명을 할당하십시오. 사용자 이름, 비밀번호 및 해당 사용자가 자동으로 생성됩니다.

새 인증 정보가 테이블에 표시되며 연결 문자열은 인증 정보 보기 아래의 click-to-copy 필드에서 JSON으로 사용 가능합니다.

API에서 사용자 작성

서비스의 ‘개요’에 표시된 Foundation 엔드포인트는 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"}}" \

사용자의 연결 문자열을 검색하려면 /users/{userid}/connections 엔드포인트에서 기본 URL을 사용하십시오.

내부 사용 사용자

인스턴스에는 4명의 예약된 사용자가 있습니다. 이 사용자들을 수정하면 인스턴스가 불안정해지거나 사용할 수 없게 됩니다.

  • ibm-user - 인스턴스를 관리하고 메트릭을 노출하기 위한 내부 admin 사용자.
  • replication-user - 복제에 사용되는 사용자 계정입니다.
  • sentinel-user - 감시자(sentinel)가 모니터링 및 장애 복구를 처리하는 데 사용되는 사용자 계정입니다.
  • admin- 인스턴스에 액세스하기 위해 지정된 기본 사용자.