이 페이지에서는 Identity and Access Management(IAM)를 사용하여 Memorystore for Redis 프로젝트 액세스와 권한을 제어하는 방법을 설명합니다.
개요
Google Cloud는 사용자가 특정 Google Cloud 리소스에 대한 세부적인 액세스 권한을 부여하고 다른 리소스에 대한 무단 액세스를 방지할 수 있는 IAM을 제공합니다. 이 페이지에서는 Memorystore for Redis IAM 역할 및 권한을 설명합니다. 역할 및 권한에 관한 자세한 내용은 IAM 문서를 참조하세요.
Memorystore for Redis는 Redis 리소스에 대한 액세스를 쉽게 제어할 수 있도록 사전 정의된 역할 모음을 제공합니다. 사전 정의된 역할이 요구 사항을 충족하지 못하는 경우 커스텀 역할을 만들 수도 있습니다. 또한 기존의 기본 역할(편집자, 뷰어, 소유자)도 계속 제공되지만, Memorystore for Redis 역할처럼 세부적인 제어 기능을 제공하지는 않습니다. 특히 기본 역할은 Memorystore for Redis뿐 아니라 Google Cloud 전반의 리소스에 대한 액세스를 제공합니다. 기본 역할에 대한 자세한 내용은 기본 역할을 참조하세요.
권한 및 역할
이 섹션에서는 Memorystore for Redis에서 지원하는 권한과 역할을 요약합니다.
사전 정의된 역할
Memorystore for Redis는 주 구성원에 세분화된 권한을 제공하는 데 사용할 수 있는 일부 사전 정의된 역할을 제공합니다. 주 구성원에게 부여하는 역할은 해당 주 구성원이 실행할 수 있는 작업을 제어합니다. 주 구성원은 개인, 그룹, 서비스 계정이 될 수 있습니다.
동일한 주 구성원에 여러 역할을 부여할 수 있으며, 이러한 권한이 있는 경우 언제든지 주 구성원에게 부여된 역할을 변경할 수 있습니다.
폭넓은 역할일수록 세부적으로 정의된 역할을 포함합니다. 예를 들어, Redis 편집자 역할에는 Redis 뷰어 역할의 모든 권한에 추가로 Redis 편집자 역할의 권한까지 포함됩니다. 마찬가지로 Redis 관리자 역할에는 Redis 편집자 역할의 모든 권한에 추가로 관리자 권한까지 포함됩니다.
기본 역할(소유자, 편집자, 뷰어)은 Google Cloud 전반에 대한 권한을 제공합니다. Memorystore for Redis와 관련된 역할은 일반적인 Google Cloud 사용에 필요한 다음 Google Cloud 권한을 제외하고 Memorystore for Redis 권한만 제공합니다.
resourcemanager.projects.get
resourcemanager.projects.list
다음 표에는 Memorystore for Redis에 사용할 수 있는 사전 정의된 역할과 Memorystore for Redis 권한이 나와 있습니다.
역할 | 이름 | Redis 권한 | 설명 |
---|---|---|---|
|
소유자 |
|
Google Cloud의 모든 리소스에 대한 전체 액세스 및 제어, 사용자 액세스 관리 |
|
편집자 | *.getIamPolicy 및 .setIamPolicy 를 제외한 모든 redis 권한 |
모든 Google Cloud 및 Redis 리소스에 대한 읽기-쓰기 액세스 권한(권한 수정 기능을 제외한 전체 제어 권한) |
|
뷰어 |
|
Redis 리소스를 포함한 모든 Google Cloud 리소스에 대한 읽기 전용 액세스 권한 |
|
Redis 관리자 |
|
모든 Memorystore for Redis 리소스에 대한 전체 제어 권한 |
|
Redis 편집자 | 다음을 제외한 모든 redis 권한
|
Memorystore for Redis 인스턴스 관리 인스턴스를 만들거나 삭제할 수 없습니다. |
|
Redis 뷰어 | 다음을 제외한 모든 redis 권한
|
모든 Memorystore for Redis 리소스에 대한 읽기 전용 액세스 권한 |
권한과 권한의 역할
다음 표는 Memorystore for Redis가 지원하는 각 권한과 그 권한을 포함하는 Memorystore for Redis 역할을 나열합니다.
권한 | Redis 역할 | 기본 역할 |
---|---|---|
|
Redis 관리자 Redis 편집자 Redis 뷰어 |
리더 |
|
Redis 관리자 Redis 편집자 Redis 뷰어 |
리더 |
|
Redis 관리자 | 작성자 |
|
Redis 관리자 Redis 편집자 |
작성자 |
|
Redis 관리자 | 작성자 |
|
Redis 관리자 | 작성자 |
|
Redis 관리자 | 작성자 |
|
Redis 관리자 | 작성자 |
|
Redis 관리자 | 작성자 |
|
Redis 관리자 | 작성자 |
|
Redis 관리자 Redis 편집자 Redis 뷰어 |
리더 |
|
Redis 관리자 Redis 편집자 Redis 뷰어 |
리더 |
|
Redis 관리자 Redis 편집자 Redis 뷰어 |
리더 |
|
Redis 관리자 Redis 편집자 Redis 뷰어 |
리더 |
|
Redis 관리자 | 작성자 |
커스텀 역할
사전 정의된 역할로 사용자의 고유한 비즈니스 요구 사항이 해결되지 않을 경우, 권한을 지정하여 자신의 커스텀 역할을 정의할 수 있습니다. 이를 지원하기 위해 IAM은 커스텀 역할을 제공합니다. Memorystore for Redis의 커스텀 역할을 만들 때 resourcemanager.projects.get
및 resourcemanager.projects.list
를 모두 포함해야 합니다.
그렇지 않으면 Google Cloud 콘솔이 Memorystore for Redis에 맞게 작동하지 않습니다. 자세한 내용은 권한 종속 항목을 참조하세요.
커스텀 역할을 만드는 방법을 알아보려면 커스텀 역할 만들기를 참조하세요.
Google Cloud 콘솔에서 일반적인 작업에 필요한 권한
사용자가 Google Cloud 콘솔을 사용하여 Redis용 Memorystore를 사용하도록 설정하려면 사용자 역할에 resourcemanager.projects.get
및 resourcemanager.projects.list
권한이 포함되어야 합니다.
다음 표에서는 Google Cloud 콘솔에서 일반적인 태스크에 필요한 다른 권한을 제공합니다.
작업 | 필요한 추가 권한 |
---|---|
인스턴스 목록 페이지 표시 |
|
인스턴스 만들기 및 편집 |
|
인스턴스 삭제 |
|
Cloud Shell에서 인스턴스에 연결 |
|
인스턴스 정보 보기 |
|
RDB 백업 파일 가져오기 및 내보내기 |
|
인스턴스의 Redis 버전 업그레이드 |
|
gcloud 명령어에 필요한 권한
사용자가 gcloud
명령어를 사용하여 Memorystore for Redis를 사용하도록 하려면 사용자 역할에 resourcemanager.projects.get
및 resourcemanager.projects.list
권한이 포함되어 있어야 합니다.
다음 표에는 gcloud
명령어를 호출하는 사용자가 각 gcloud redis
하위 명령어에 대해 갖고 있어야 하는 권한 목록을 확인할 수 있습니다.
명령어 | 필수 권한 |
---|---|
gcloud redis instances auth |
|
gcloud redis instances create |
|
gcloud redis instances delete |
|
gcloud redis instances update |
|
gcloud redis instances list |
|
gcloud redis instances describe |
|
gcloud redis instances import |
|
gcloud redis instances export |
|
gcloud redis instances upgrade |
|
gcloud redis operations list |
|
gcloud redis operations describe |
|
gcloud redis regions list |
|
gcloud redis regions describe |
|
gcloud redis zones list |
|
API 메서드에 필요한 권한
다음 표에는 호출자가 Redis용 Memorystore API에서 각 메서드를 호출하거나 이 API를 사용하는 Google Cloud 도구(예: Google Cloud 콘솔 또는 gcloud
명령줄 도구)를 사용하여 태스크를 수행해야 하는 권한이 나와 있습니다.
메서드 | 필수 권한 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Redis용 Memorystore 서비스 계정
각 Redis용 Memorystore 인스턴스에는 다른 Google Cloud 리소스와 통신하는 데 사용하는 서비스 계정이 있습니다.
내보내기 또는 CEMK 사용과 같이 서비스 계정에 특정 역할이나 권한을 부여해야 하는 경우도 있습니다.
Redis용 Memorystore 서비스 계정 형식
인스턴스의 서비스 계정은 생성 시점에 따라 두 가지 형식 중 하나를 사용합니다.
첫 번째 형식은 다음과 같습니다.
[PROJECT_NUMBER]-compute@developer.gserviceaccount.com
두 번째 형식은 다음과 같습니다.
service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com
인스턴스에서 사용하는 서비스 계정의 소스 정보는 인스턴스의 서비스 계정 보기를 참조하세요.
알려진 문제
경우에 따라 [PROJECT_NUMBER]-compute@developer.gserviceaccount.com
형식을 사용하는 서비스 계정이 조직 정책과 충돌할 수 있습니다. 자세한 내용과 이 문제를 해결하는 단계는 도메인 제한 공유 조직 정책 문제를 참조하세요.
인스턴스의 서비스 계정 확인
인스턴스의 서비스 계정을 보려면 다음 명령어를 실행하고 persistenceIamIdentity
아래에 나열된 서비스 계정을 기록해 둡니다.
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Redis AUTH 권한
다음 표에서는 사용자가 Redis용 기본 Memorystore AUTH 작업을 수행하기 위해 필요한 최소 권한을 보여줍니다.
권한 필요 | Redis AUTH가 사용 설정된 Memorystore 인스턴스 만들기 | 기존 Redis 인스턴스에서 AUTH 사용 설정/사용 중지 | AUTH 문자열 보기 | Redis 인스턴스의 AUTH 사용 설정 /사용 중지 여부 확인 |
---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | X | ✓ |
redis.instances.updateAuth
|
✓ | ✓ | X | X |
redis.instances.getAuthString
|
X | X | ✓ | X |
전송 중인 데이터 암호화 권한
다음 표에서는 Memorystore for Redis의 전송 중인 데이터 암호화를 사용 설정하고 관리하는 데 필요한 권한을 보여줍니다.
권한 필요 | 전송 중인 데이터 암호화로 Memorystore 인스턴스를 만듭니다. | 인증 기관 다운로드 |
---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
유지보수 정책 권한
아래 표에서는 Memorystore for Redis의 유지보수 정책을 관리하는 데 필요한 권한을 보여줍니다.
권한 필요 | 유지보수 정책이 사용 설정된 Memorystore 인스턴스 만들기 | 기존 Memorystore 인스턴스의 유지보수 정책 만들기 또는 수정 | 유지보수 정책 설정 보기 | 유지보수 재예약 |
---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | ✓ | X |
redis.instances.rescheduleMaintenance
|
X | X | X | ✓ |
가져오기 및 내보내기에 필요한 권한
가져오기 및 내보내기에 커스텀 역할을 사용하려면 2개의 개별 커스텀 역할이 필요합니다. 하나는 사용자의 커스텀 역할이며 다른 하나는 Redis 인스턴스의 서비스 계정에 대한 추가 커스텀 역할입니다. 서비스 계정의 커스텀 역할은 Cloud Storage 버킷 수준 권한을 사용합니다.
인스턴스의 서비스 계정을 찾으려면 인스턴스의 서비스 계정 보기를 참조하세요.
서비스 계정에 대한 권한
전체 프로젝트가 아닌 버킷 수준의 서비스 계정에만 스토리지 권한을 부여하면 됩니다. 자세한 내용은 버킷 수준 정책에 주 구성원 추가를 참조하세요.
서비스 계정에 버킷 수준 권한을 부여하면 'Memorystore에서 서비스 계정 xxxx@xxxx.gserviceaccount.com에 가져오기/내보내기에 필요한 권한이 있는지 확인할 수 없습니다.'의 메시지를 무시할 수 있습니다. 권한을 확인하거나 업데이트하는 데 도움이 필요하면 프로젝트 관리자에게 문의하세요. 필요한 권한은 가져오기/내보내기 권한 문서를 참조하세요. 아래 나열된 권한을 사용자 계정 및 서비스 계정의 커스텀 역할에 적용하면 가져오기/내보내기가 성공합니다.
서비스 계정의 커스텀 역할 권한 | gcloud로 가져오기 | gcloud로 내보내기 | Google Cloud 콘솔로 가져오기 | Google Cloud 콘솔로 내보내기 |
---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | 선택사항입니다. (기존 RDB 파일을 덮어쓸 수 있는 권한을 부여합니다). |
X | 선택사항입니다. (기존 RDB 파일을 덮어쓸 수 있는 권한을 부여합니다). |
사용자 계정에 대한 권한
사용자 계정의 커스텀 역할 권한 | gcloud로 가져오기 | gcloud로 내보내기 | Google Cloud 콘솔로 가져오기 | Google Cloud 콘솔로 내보내기 |
---|---|---|---|---|
resourcemanager.projects.get |
X | X | ✓ | ✓ |
redis.instances.get |
✓ | ✓ | ✓ | ✓ |
redis.instances.list |
X | X | X | X |
redis.instances.import |
✓ | X | ✓ | X |
redis.instances.export |
X | ✓ | X | ✓ |
redis.operations.get |
X | ✓ | ✓ | ✓ |
redis.operations.list |
X | X | ✓ | ✓ |
redis.operations.cancel |
✓ | ✓ | ✓ | ✓ |
storage.buckets.list |
X | X | ✓ | ✓ |
storage.buckets.get |
X | X | ✓ | ✓ |
storage.objects.list |
X | X | ✓ | ✓ |
storage.objects.get |
X | X | ✓ | ✓ |
다음 단계
- 액세스 권한 부여 및 취소 방법 알아보기
- IAM 자세히 알아보기
- 커스텀 역할 자세히 알아보기