사용자 및 역할 관리
{{{site.data.keyword.databases-for-redis_full}} 인스턴스는 인증이 활성화된 상태로 제공되며 Redis 기본 제공 액세스 제어를 사용합니다. Redis 5.x 및 이전 버전은 단일 admin
사용자만 지원합니다. Redis 6은 ACL(Access Control List)지원을
도입했습니다. 여러 사용자 및 인증을 이용하려면 업그레이드하십시오.
Redis 사용자 관리
admin 사용자
IBM Cloud 새 인스턴스를 프로비저닝하면 자동으로 관리 사용자 액세스 권한이 부여됩니다. Redis 5.x 이전 버전을 사용하는 경우, 인스턴스에서 사용할 수 있는 사용자는 관리자 사용자뿐입니다. Redis 6.x 이상을 사용하는 경우 관리자 사용자 및 사용자 및 자격 증명을 생성할 수 있는 기능이 있습니다.
Admin 사용자를 사용하여 인스턴스에 연결하려면 먼저 Admin 비밀번호를 설정하십시오.
UI에서 관리자 비밀번호 설정하기
Set your Admin password through the UI by selecting your instance from the Resource List in the IBM Cloud Dashboard. 그런 다음 설정을 선택하십시오. 그런 다음 데이터베이스 관리자 비밀번호 변경을 선택하십시오.
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
' 사용자
Redis 6의 ACL 지원가 도착하기 전에 default
사용자는 광범위한 권한을 가지고 있었으며 Cloud Databases 및 외부 사용자가 Databases for Redis 인스턴스를
관리하기 위해 내부적으로 사용했습니다.
Redis 6.x에서 Databases for Redis 는 더 이상 default
사용자를 내부적으로 사용하지 않습니다. 대신 Databases for Redis 인스턴스는 Cloud Databases ibm-user
에 의해 관리됩니다.
인스턴스가 현재 default
사용자 (Redis 5.x) 를 사용하는 경우 6.2와 같은 이후 버전에서 계속 이를 수행할 수 있습니다. 그러나 v6.2 로 업그레이드한 후 default
사용자를 계속 사용하려면 비밀번호 변경이 필요하며, 이는 권한을 제한할 것으로 예상됩니다. 이러한 권한 제한사항은 주요 버전 업그레이드의 일부로 예상되는 동작 변경입니다. 특히, 다음 권한은 Redis
v6.2: 로 시작하는 default
사용자에 대해 제한됩니다.
config
:default
사용자가 데이터베이스 구성을 보거나, 추가하거나, 업데이트하거나, 삭제할 수 없습니다. 또한default
사용자는 데이터베이스 사용자 및 역할을 작성하거나 관리할 수 없습니다.acl
:default
사용자가 새 사용자를 작성할 수 없습니다.
Redis 6.2 및 default
사용자로 업그레이드
Redis 5를 사용 중인 경우 Redis 6.2로 직접 업그레이드하십시오. 업그레이드 후 default
사용자를 사용하여 애플리케이션을 완전히 테스트하여 애플리케이션이 완전히 작동하는지 확인하십시오. v6.2 로 업그레이드하고 default
사용자를 계속 사용하려면 비밀번호를 변경해야 합니다.
default
사용자 비밀번호를 업데이트하려면 다음과 같은 명령을 사용하십시오.
ibmcloud cdb deployment-user-password <INSTANCE_NAME_OR_CRN> default <NEW PASSWORD>
자세한 정보는 새 주 버전으로 업그레이드를 참조하십시오.
Redis 역할 관리
역할 기반 액세스 제어(RBAC)
역할 기반 액세스 제어 (RBAC) 를 사용하여 각 사용자의 액세스 레벨을 구성할 수 있습니다.
Databases for Redis 는 현재 다음 역할을 지원합니다.
admin
역할은 모든 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
:admin
,read
및write
를 포함하는all
로 단순화합니다.read
+write
:read
및write
역할이 둘 다 있는 사용자는read
및write
조작을 모두 수행할 수 있지만 관리 권한은 없습니다.read
+all
:admin
,read
및write
를 포함하는all
로 단순화합니다.write
+all
:admin
,read
및write
를 포함하는all
로 단순화합니다.admin
+read
+write
:read
및write
조작을 모두 실행하는 기능이 있는 전체admin
제어.admin
+read
+all
:admin
,read
및write
를 포함하는all
로 단순화합니다.admin
+write
+all
:admin
,read
및write
를 포함하는all
로 단순화합니다.read
+write
+all
:admin
,read
및write
를 포함하는all
로 단순화합니다.
이러한 조합은 서로 다른 레벨의 액세스 제어를 제공합니다. 특정 요구사항 및 보안 고려사항에 맞는 조합을 선택하십시오.
API를 통해 RBAC 역할이 있는 사용자 작성
RBAC 역할을 사용하여 사용자를 작성하려면 다음과 같은 명령을 사용하십시오.
Create User
POST /deployments/{id}/users/{user_type}
{
"user": {
"username": "#{USER}",
"password": "<PASSWORD>",
"role": "<+/-@all> <+/-@read> <+/-@write> <+/-@admin>"
}
}
CLI를 통해 RBAC 역할이 있는 사용자 작성
RBAC 역할을 사용하여 사용자를 작성하려면 다음과 같은 명령을 사용하십시오.
ibmcloud cdb deployment-user-create <INSTANCE_NAME_OR_CRN> <USERNAME> <PASSWORD> -r "+@read +@write"
-r USER_ROLE
의 경우 <+/-@all>
<+/-@read>
<+/-@write>
<+/-@admin>
의 일부 조합을 사용하여 액세스 권한을 부여하십시오.
작업이 완료되면 ' ibmcloud cdb deployment-connections
' 명령으로 새 사용자의 연결 문자열을 검색합니다.
Terraform을 통해 RBAC 역할이 있는 사용자 작성
RBAC 역할을 사용하여 사용자를 작성하려면 다음과 같은 구성을 사용하십시오.
resource "ibm_database" "redis" {
name = "example-redis"
plan = "standard"
location = "us-south"
service = "databases-for-redis"
resource_group_id = data.ibm_resource_group.group.id
tags = ["tag1", "tag2"]
version = "6"
users {
name = "<user_name>"
password = "securepassword123"
role = "-@all +@read"
}
}
role
의 경우 <+/-@all>
<+/-@read>
<+/-@write>
<+/-@admin>
의 일부 조합을 사용하여 액세스 권한을 부여하십시오.
Redis 역할
Admin 사용자 및 인스턴스의 다른 모든 사용자는 하위 명령 config
및 acl
를 제외하고 Redis 명령 세트에 대한 전체 액세스 권한을 갖습니다. 여기에는 Admin 사용자가 포함됩니다. config get
, config reset
, acl whoami
, acl cat
, acl users
,
acl genpass
, acl log
및 acl help
를 사용할 수 있습니다.
Redis 6.x 이상에서는 서비스 자격 증명, CLI, API 또는 Redis 직접 생성하는 모든 사용자가 동일한 액세스 권한을 갖습니다. 특정 키 또는 키 범위로 제한된 액세스 권한을 가진 사용자 또는 역할은 클러스터 배포에서 자동으로 전파되지 않으므로 Redis 자체를 사용하여 만들 수 없습니다. 다른 모든 사용자 관리 수단은 클러스터 간 전파를 보장합니다.
UI를 통해 사용자 만들기
- 서비스에 대한 서비스 대시보드로 이동하십시오.
- 서비스 자격 증명을 선택합니다.
- 새 자격 증명을 선택합니다.
- 새 인증 정보에 대한 설명 이름을 선택하십시오.
- (선택사항) 새 인증 정보가 공용 또는 개인용 엔드포인트를 사용하는지를 지정하십시오. 인라인 구성 매개변수 추가 필드에서
{ "service-endpoints": "public" }
/{ "service-endpoints": "private" }
를 사용하여 지정된 엔드포인트를 사용하는 연결 문자열을 생성하십시오. 엔드포인트 사용은 적용되지 않습니다. 연결 호스트에 있는 호스트 이름을 제어할 뿐입니다. 공용 엔드포인트는 기본적으로 생성됩니다. - 추가를 클릭하여 새 자격 증명을 프로비저닝합니다. 사용자 아이디, 비밀번호 및 연결된 사용자가 자동으로 생성됩니다.
새 인증 정보가 테이블에 표시되며 연결 문자열은 인증 정보 보기 아래의 click-to-copy 필드에서 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을 사용하십시오.
내부 사용 사용자 - Redis 6.x 이상 버전
인스턴스에 예약된 사용자가 4명 있습니다. 이러한 사용자를 수정하면 인스턴스가 불안정해지거나 사용할 수 없게 됩니다.
ibm-user
' - 인스턴스를 관리하고 메트릭을 노출하기 위한 내부 'admin
' 사용자입니다.replication-user
- 복제에 사용되는 사용자 계정입니다.sentinel-user
- 감시자(sentinel)가 모니터링 및 장애 복구를 처리하는 데 사용되는 사용자 계정입니다.admin
' - 인스턴스에 액세스하기 위해 제공되는 기본 사용자입니다.