Identity and Access Management (IAM)를 사용하면 Spanner Omni 리소스에 대한 사용자 액세스를 제어할 수 있습니다. 예를 들어 사용자가 특정 데이터베이스를 완전히 제어할 수 있지만 배포에서 다른 데이터베이스를 만들거나 수정할 수는 없습니다. IAM을 사용하면 각 Spanner Omni 데이터베이스 권한을 개별적으로 수정할 필요 없이 사용자에게 권한을 부여할 수 있습니다.
이 문서는 Spanner Omni와 관련된 IAM 권한과 해당 권한을 부여하는 IAM 역할을 집중적으로 설명합니다. IAM 및 해당 기능에 대한 자세한 설명은 Identity and Access Management 개발자 가이드를 참조하세요.
권한
사용자는 권한을 통해 Spanner Omni 리소스에서 특정 작업을 수행할 수 있습니다. 예를 들어 사용자는 spanner.databases.read 권한을 통해 Spanner Omni의 읽기 API를 사용하여 데이터베이스에서 읽을 수 있고, spanner.databases.export 권한을 통해 Spanner Omni 데이터베이스를 내보낼 수 있습니다.
사용자에게 권한을 직접 부여하는 대신 하나 이상의 권한이 번들로 포함된 사전 정의된 역할을 부여합니다.
다음 표에는 Spanner Omni와 관련된 IAM 권한이 나열되어 있습니다. 일부 권한은 Spanner와 공유되고 일부 권한은 Spanner Omni에서만 사용됩니다.
데이터베이스
Spanner Omni 데이터베이스에 적용되는 권한은 다음과 같습니다.
| 데이터베이스 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.databases.create |
데이터베이스를 만듭니다. | ✔ | |
spanner.databases.createBackup |
데이터베이스에서 백업을 만듭니다. 또한 spanner.backups.create로 백업 리소스를 만들어야 합니다. |
✔ | |
spanner.databases.get |
데이터베이스의 메타데이터를 가져옵니다. | ✔ | |
spanner.databases.getIamPolicy |
데이터베이스의 IAM 정책을 가져옵니다. | ✔ | |
spanner.databases.list |
데이터베이스를 나열합니다. | ✔ | |
spanner.databases.read |
읽기 API를 사용하여 데이터베이스에서 읽습니다. | ✔ | |
spanner.databases.setIamPolicy |
데이터베이스의 IAM 정책을 설정합니다. | ✔ | |
spanner.databases.update |
데이터베이스의 메타데이터를 업데이트합니다. | ✔ | |
spanner.databases.updateDdl |
데이터베이스의 스키마를 업데이트합니다. | ✔ | |
spanner.databases.write |
데이터베이스에 씁니다. | ✔ | |
spanner.databases.compact |
데이터베이스의 테이블을 압축합니다. | ✔ | |
spanner.databases.export |
Spanner Omni 데이터베이스를 내보냅니다. | ✔ | |
spanner.databases.import |
Spanner Omni 데이터베이스를 가져옵니다. | ✔ | |
spanner.databases.addSplitPoints |
데이터베이스에 분할 지점을 추가합니다. | ✔ |
데이터베이스 작업
Spanner Omni 데이터베이스 작업에 적용되는 권한은 다음과 같습니다.
| 데이터베이스 작업 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.databaseOperations.cancel |
데이터베이스 작업을 취소합니다. | ✔ | |
spanner.databaseOperations.delete |
데이터베이스 작업을 삭제합니다. | ✔ | |
spanner.databaseOperations.get |
특정 데이터베이스 작업을 가져옵니다. | ✔ | |
spanner.databaseOperations.list |
데이터베이스를 나열하고 데이터베이스 작업을 복원합니다. | ✔ |
백업
Spanner Omni 백업에 적용되는 권한은 다음과 같습니다.
| 백업 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.backups.copy |
백업을 복사합니다. | ✔ | |
spanner.backups.create |
백업 만들기 또한 소스 데이터베이스에서 spanner.databases.createBackup이 필요합니다. |
✔ | |
spanner.backups.createDatabaseFromBackup |
백업에서 데이터베이스를 만듭니다. | ✔ | |
spanner.backups.delete |
백업을 삭제합니다. | ✔ | |
spanner.backups.get |
백업을 가져옵니다. | ✔ | |
spanner.backups.getIamPolicy |
백업의 IAM 정책을 가져옵니다. | ✔ | |
spanner.backups.list |
백업을 나열합니다. | ✔ | |
spanner.backups.restoreDatabase |
백업에서 데이터베이스를 복원합니다. 또한 spanner.databases.create로 복원된 데이터베이스를 만들어야 합니다. |
✔ | |
spanner.backups.setIamPolicy |
백업의 IAM 정책을 설정합니다. | ✔ | |
spanner.backups.update |
백업을 업데이트합니다. | ✔ | |
spanner.backups.import |
외부 저장소에서 백업을 가져옵니다. | ✔ |
백업 작업
Spanner Omni 백업 작업에 적용되는 권한은 다음과 같습니다.
| 백업 작업 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.backupOperations.cancel |
백업 작업을 취소합니다. | ✔ | |
spanner.backupOperations.get |
특정 백업 작업을 가져옵니다. | ✔ | |
spanner.backupOperations.list |
백업 작업을 나열합니다. | ✔ |
백업 일정
Spanner Omni 백업 일정에 적용되는 권한은 다음과 같습니다.
| 백업 일정 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.backupSchedules.create |
백업 일정을 만듭니다. 또한 소스 데이터베이스에서 spanner.databases.createBackup이 필요합니다. |
✔ | |
spanner.backupSchedules.delete |
백업 일정을 삭제합니다. | ✔ | |
spanner.backupSchedules.get |
백업 일정을 가져옵니다. | ✔ | |
spanner.backupSchedules.list |
백업 일정을 나열합니다. | ✔ | |
spanner.backupSchedules.update |
백업 일정을 업데이트합니다. | ✔ | |
spanner.backupSchedules.getIamPolicy |
백업 일정의 IAM 정책을 가져옵니다. | ✔ | |
spanner.backupSchedules.setIamPolicy |
백업 일정의 IAM 정책을 설정합니다. | ✔ |
백업 설명자
Spanner Omni 백업 설명자에 적용되는 권한은 다음과 같습니다.
| 백업 설명자 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.backupDescriptors.import |
백업 설명자에서 백업을 가져옵니다. | ✔ | |
spanner.backupDescriptors.list |
백업 설명자를 나열합니다. | ✔ |
세션
Spanner Omni 세션에 적용되는 권한은 다음과 같습니다.
| 세션 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.sessions.create |
세션 만들기 | ✔ | |
spanner.sessions.delete |
세션을 삭제합니다. | ✔ | |
spanner.sessions.get |
세션을 가져옵니다. | ✔ | |
spanner.sessions.list |
세션을 나열합니다. | ✔ |
위치 및 영역
Spanner Omni 위치 및 영역에 적용되는 권한은 다음과 같습니다.
| 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.locations.create |
Spanner Omni 위치 만들기 | ✔ | |
spanner.locations.delete |
Spanner Omni 위치 삭제 | ✔ | |
spanner.locations.get |
Spanner Omni 위치 가져오기 | ✔ | |
spanner.locations.list |
Spanner Omni 위치 나열 | ✔ | |
spanner.locationDistances.create |
Spanner Omni 위치 거리 만들기 | ✔ | |
spanner.locationDistances.delete |
Spanner Omni 위치 거리 삭제 | ✔ | |
spanner.locationDistances.get |
Spanner Omni 위치 거리 가져오기 | ✔ | |
spanner.locationDistances.list |
Spanner Omni 위치 거리 나열 | ✔ | |
spanner.locationDistances.update |
Spanner Omni 위치 거리 업데이트 | ✔ | |
spanner.zones.create |
Spanner Omni 영역 만들기 | ✔ | |
spanner.zones.delete |
Spanner Omni 영역 삭제 | ✔ | |
spanner.zones.get |
Spanner Omni 영역 가져오기 | ✔ | |
spanner.zones.list |
Spanner Omni 영역 나열 | ✔ |
서버
Spanner Omni 서버에 적용되는 권한은 다음과 같습니다.
| 서버 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.servers.create |
Spanner Omni 서버를 만듭니다. | ✔ | |
spanner.servers.delete |
Spanner Omni 서버를 삭제합니다. | ✔ | |
spanner.servers.get |
Spanner Omni 서버를 가져옵니다. | ✔ | |
spanner.servers.list |
Spanner Omni 서버를 나열합니다. | ✔ |
사용자 및 역할
Spanner Omni 사용자 및 역할에 적용되는 권한은 다음과 같습니다.
| 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.users.create |
Spanner Omni 사용자를 만듭니다. | ✔ | |
spanner.users.delete |
Spanner Omni 사용자를 삭제합니다. | ✔ | |
spanner.users.get |
Spanner Omni 사용자를 가져옵니다. | ✔ | |
spanner.users.list |
Spanner Omni 사용자를 나열합니다. | ✔ | |
spanner.users.update |
Spanner Omni 사용자를 업데이트합니다. | ✔ | |
spanner.roles.get |
Spanner Omni 역할을 가져옵니다. | ✔ | |
spanner.roles.list |
Spanner Omni 역할을 나열합니다. | ✔ |
외부 저장소
Spanner Omni 외부 스토리지에 적용되는 권한은 다음과 같습니다.
| 외부 저장소 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.externalStorages.create |
외부 저장소를 만듭니다. | ✔ | |
spanner.externalStorages.delete |
외부 저장소를 삭제합니다. | ✔ | |
spanner.externalStorages.get |
외부 저장소를 가져옵니다. | ✔ | |
spanner.externalStorages.getIamPolicy |
외부 저장소의 IAM 정책을 가져옵니다. | ✔ | |
spanner.externalStorages.list |
외부 스토리지를 나열합니다. | ✔ | |
spanner.externalStorages.setIamPolicy |
외부 저장소의 IAM 정책을 설정합니다. | ✔ |
파일 시스템 및 설명자
Spanner Omni 파일 시스템에 적용되는 권한은 다음과 같습니다.
| 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.filesystem.cat |
Spanner Omni 파일 시스템의 파일을 출력합니다. | ✔ | |
spanner.filesystem.ls |
Spanner Omni 파일 시스템의 파일을 나열합니다. | ✔ | |
spanner.descriptors.print |
Spanner Omni 파일 시스템에 설명자를 출력합니다. | ✔ |
기타 관리자 권한
기타 Spanner Omni 관리자 작업에 적용되는 권한은 다음과 같습니다.
| 권한 이름 | 설명 | Spanner 및 Spanner Omni | Spanner Omni만 |
|---|---|---|---|
spanner.chubby.list |
Chubby 셀을 나열합니다. | ✔ | |
spanner.chubby.print |
Chubby 셀 콘텐츠를 출력합니다. | ✔ | |
spanner.deployment.get |
Spanner Omni 배포 가져오기 | ✔ | |
spanner.diagnostics.create |
디버깅을 위해 Spanner Omni 서버에서 아티팩트를 수집합니다. | ✔ | |
spanner.internal-tables.sql |
내부 테이블에 대해 SQL 쿼리를 실행합니다. | ✔ | |
spanner.logs.copy |
Spanner Omni 서버에서 로그를 복사합니다. | ✔ | |
spanner.tablet.move |
하나의 Spanner Omni 서버에서 다른 서버로 태블릿을 이동합니다. | ✔ | |
spanner.workflows.delete |
데이터베이스에서 워크플로를 삭제합니다. | ✔ | |
spanner.groups.compact |
그룹의 태블릿을 압축합니다. | ✔ | |
spanner.directories.compact |
디렉터리의 태블릿을 압축합니다. | ✔ |
사전 정의된 역할
사전 정의된 역할은 한 개 이상의 권한 번들입니다. Spanner Omni는 다음과 같은 사전 정의된 역할을 지원합니다.
| 역할 | 설명 |
|---|---|
roles/spanner.admin |
모든 Spanner Omni 리소스에 대한 완전한 액세스 권한을 가집니다. 모든 권한을 포함합니다. |
roles/spanner.backupAdmin |
Spanner Omni 백업 및 백업 작업에 대한 완전한 액세스 권한을 가집니다. |
roles/spanner.backupWriter |
백업을 만들 수 있지만 업데이트하거나 삭제할 수는 없습니다. |
roles/spanner.databaseAdmin |
프로젝트의 모든 Spanner Omni 데이터베이스에 대한 완전한 액세스 권한을 가집니다. |
roles/spanner.databaseReader |
Spanner Omni 데이터베이스에서 읽고 스키마를 볼 수 있습니다. |
roles/spanner.databaseUser |
Spanner Omni 데이터베이스에서 데이터를 읽고 쓸 수 있습니다. |
roles/spanner.editor |
Spanner Omni의 편집자 역할입니다. |
roles/spanner.restoreAdmin |
백업에서 데이터베이스를 복원할 수 있습니다. |
roles/spanner.viewer |
모든 Spanner Omni 리소스를 볼 수 있지만 수정할 수는 없습니다. 읽기 전용 권한이 포함됩니다. |
Spanner Omni에는 몇 가지 더 주목할 만한 제한사항이 있습니다.
- 커스텀 역할이 없습니다.
- 세분화된 액세스 제어가 없습니다.
- IAM 조건이 없습니다.
다음 단계
- IAM 자세히 알아보기
- Spanner Omni의 인증 및 승인에 대해 알아봅니다.