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 データベースをエクスポートできます。ユーザーには権限を直接付与するのではなく、事前定義されたロールを割り当てます。ロールには、1 つ以上の権限が組み込まれています。
次の表に示すのは、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 |
ディレクトリ内のタブレットを圧縮する | ✔ |
事前定義ロール
事前定義ロールには、1 つ以上の権限が付与されます。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 の認証と認可について学習する。