IAM の概要

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 条件はありません。

次のステップ