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

次のステップ