IAM の概要

Identity and Access Management(IAM)を使用すると、プロジェクト レベル、Spanner インスタンス レベル、Spanner データベース レベルで、Spanner リソースに対するユーザーとグループのアクセスを制御できます。たとえば、あるユーザーにプロジェクト内の特定のインスタンスのデータベースの管理は許可しつつ、プロジェクト内でインスタンスの作成、変更、削除はできないように変更できます。IAM でアクセス制御を使用すると、Spanner のインスタンスやデータベースの権限を個別に変更することなく、ユーザーやグループに対する権限を付与できます。

このドキュメントでは、Spanner に関係する IAM の権限と、それらの権限を付与する IAM の役割について説明します。IAM とその機能の詳しい説明については、Identity and Access Management デベロッパー ガイドをご覧ください。特に、IAM ポリシーの管理に関するセクションをご覧ください。

権限

権限を使用することで、Spanner リソースに対して特定の操作を行えるようになります。たとえば、spanner.databases.read 権限を持つユーザーは、Spanner の読み取り API を使用してデータベースからデータを読み取ることが可能です。また、spanner.databases.select を持つユーザーは、データベースに対して SQL SELECT ステートメントを実行できます。ユーザーには権限を直接付与するのではなく、事前定義ロールまたはカスタムロールを割り当てます。ロールには、1 つ以上の権限が組み込まれています。

次の表に示すのは、Spanner に関係する IAM の権限の一覧です。

インスタンス構成

Spanner のインスタンス構成には次の権限が適用されます。詳細については、REST API と RPC API のインスタンス構成リファレンスをご覧ください。

インスタンス構成の権限名 説明
spanner.instanceConfigs.create カスタム インスタンス構成を作成する。
spanner.instanceConfigs.delete カスタム インスタンス構成を削除する。
spanner.instanceConfigs.get インスタンス構成を取得する。
spanner.instanceConfigs.list インスタンス構成の一覧を取得する。
spanner.instanceConfigs.update カスタム インスタンス構成を更新する。

インスタンス構成オペレーション

Spanner のインスタンス構成オペレーションには次の権限が適用されます。詳細については、REST API と RPC API のインスタンスの参照をご覧ください。

インスタンス構成オペレーションの権限名 説明
spanner.instanceConfigOperations.cancel インスタンス構成オペレーションをキャンセルする。
spanner.instanceConfigOperations.delete インスタンス構成オペレーションを削除する。
spanner.instanceConfigOperations.get インスタンス構成オペレーションを取得する。
spanner.instanceConfigOperations.list インスタンス構成オペレーションの一覧を取得する。

インスタンス

Spanner のインスタンスには次の権限が適用されます。詳細については、REST API と RPC API のインスタンスの参照をご覧ください。

インスタンスの権限名 説明
spanner.instances.create インスタンスを作成する。
spanner.instances.delete インスタンスを削除する。
spanner.instances.get 特定のインスタンスの構成を取得する。
spanner.instances.getIamPolicy インスタンスの IAM ポリシーを取得する。
spanner.instances.list インスタンスの一覧を取得する。
spanner.instances.setIamPolicy インスタンスの IAM ポリシーを設定する。
spanner.instances.update インスタンスを更新する。

インスタンス オペレーション

Spanner のインスタンス オペレーションには、次の権限が適用されます。詳細については、REST API と RPC API のインスタンスの参照をご覧ください。

インスタンス オペレーションの権限名 説明
spanner.instanceOperations.cancel インスタンス オペレーションをキャンセルする。
spanner.instanceOperations.delete インスタンス オペレーションを削除する。
spanner.instanceOperations.get 特定のインスタンス オペレーションをする。
spanner.instanceOperations.list インスタンス オペレーションの一覧を取得する。

インスタンス パーティション

Spanner のインスタンス パーティションには、次の権限が適用されます。詳細については、REST API と RPC API のインスタンスパティション リファレンスをご覧ください。

インスタンスの権限名 説明
spanner.instancePartitions.create インスタンス パーティションを作成する。
spanner.instancePartitions.delete インスタンス パーティションを削除する。
spanner.instancePartitions.get 特定のインスタンス パーティションの構成を取得する。
spanner.instancePartitions.list インスタンス パーティションの一覧を取得する。
spanner.instancePartitions.update インスタンス パーティションを更新する。

インスタンス パーティション オペレーション

Spanner のインスタンス パーティション オペレーションには、次の権限が適用されます。詳細については、REST API と RPC API のインスタンスパティション リファレンスをご覧ください。

インスタンス パーティション オペレーションの権限名 説明
spanner.instancePartitionOperations.cancel インスタンス パーティション オペレーションをキャンセルする。
spanner.instancePartitionOperations.delete インスタンス パーティション オペレーションを削除する。
spanner.instancePartitionOperations.get 特定のインスタンス パーティション オペレーションを取得する。
spanner.instancePartitionOperations.list インスタンス パーティション オペレーションの一覧を取得する。

データベース

Spanner のデータベースには次の権限が適用されます。詳細については、REST API と RPC API のデータベース リファレンスをご覧ください。

データベースの権限名 説明
spanner.databases.adapt Spanner Adapter API が Spanner と直接やり取りできるようにする。
spanner.databases.beginOrRollbackReadWriteTransaction Spanner データベースで読み取り専用トランザクションを開始またはロールバックします。
spanner.databases.beginPartitionedDmlTransaction インスタンス分割されたデータ操作言語(DML)ステートメントを実行する。インスタンス分割されたクエリの詳細については、データを同時に読み込むをご覧ください。
spanner.databases.beginReadOnlyTransaction Spanner データベースで読み取り専用トランザクションを開始する。
spanner.databases.create データベースを作成します。
spanner.databases.createBackup データベースからバックアップを作成する。また、バックアップ リソースを作成するには spanner.backups.create も必要です。
spanner.databases.drop データベースを削除する。
spanner.databases.get データベースのメタデータを取得する。
spanner.databases.getDdl データベースのスキーマを取得する。
spanner.databases.getIamPolicy データベースの IAM ポリシーを取得する。
spanner.databases.list データベースの一覧を取得する。
spanner.databases.read 読み取り API を使用してデータベースから読み取る。
spanner.databases.select データベースに SQL SELECT ステートメントを実行する。
spanner.databases.setIamPolicy データベースの IAM ポリシーを設定する。
spanner.databases.update データベースのメタデータを更新する。
spanner.databases.updateDdl データベースのスキーマを更新する。
spanner.databases.useDataBoost Spanner Data Boost のコンピューティング リソースを使用して、分割クエリを処理します。
spanner.databases.useRoleBasedAccess きめ細かいアクセス制御を使用する。
spanner.databases.write データベースに書き込む。

データベース ロール

Spanner のデータベース ロールには次の権限が適用されます。詳細については、REST API と RPC API のデータベース リファレンスをご覧ください。

データベース ロールの権限名 説明
spanner.databaseRoles.list データベース ロールの一覧を取得する。
spanner.databaseRoles.use 指定されたデータベース ロールを使用する。

データベース オペレーション

Spanner のデータベース オペレーションには次の権限が適用されます。詳細については、REST API と RPC API のデータベース リファレンスをご覧ください。

データベース オペレーションの権限名 説明
spanner.databaseOperations.cancel データベース オペレーションをキャンセルする。
spanner.databaseOperations.get 特定のデータベース オペレーションを取得する。
spanner.databaseOperations.list データベースの一覧を取得し、データベース オペレーションを復元する。

バックアップ

Spanner のバックアップには次の権限が適用されます。詳細については、REST API と RPC API のバックアップ リファレンスをご覧ください。

バックアップの権限名 説明
spanner.backups.create バックアップを作成する。ソース データベースに spanner.databases.createBackup も必要です。
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 のバックアップ オペレーションには次の権限が適用されます。詳細については、REST API と RPC API のデータベース リファレンスをご覧ください。

バックアップ オペレーションの権限名 説明
spanner.backupOperations.cancel バックアップ オペレーションをキャンセルする。
spanner.backupOperations.get 特定のバックアップ オペレーションを取得する。
spanner.backupOperations.list バックアップ オペレーションの一覧を取得する。

バックアップ スケジュール

Spanner のバックアップ スケジュールには次の権限が適用されます。詳細については、REST API と RPC API のデータベース リファレンスをご覧ください。

バックアップ スケジュールの権限名 説明
spanner.backupSchedules.create バックアップ スケジュールを作成する。ソース データベースに spanner.databases.createBackup も必要です。
spanner.backupSchedules.delete バックアップ スケジュールを削除する。
spanner.backupSchedules.get バックアップ スケジュールを取得する。
spanner.backupSchedules.list バックアップ スケジュールの一覧を取得する。
spanner.backupSchedules.update バックアップ スケジュールを更新する。

セッション

Spanner のセッションには次の権限が適用されます。詳細については、REST API と RPC API のデータベース リファレンスをご覧ください。

セッションの権限名 説明
spanner.sessions.create セッションを作成する。
spanner.sessions.delete セッションを削除する。
spanner.sessions.get セッションを取得する。
spanner.sessions.list セッションの一覧を取得する。

事前定義された役割

事前定義されたロールには、1 つ以上の権限が付与されます。たとえば、事前定義されたロール roles/spanner.databaseUser には、spanner.databases.readspanner.databases.write という権限が含まれています。Spanner の事前定義ロールには次の 2 つのタイプがあります。

  • ユーザーのロール: ユーザーまたはグループに付与されます。プロジェクト内のリソースに対するアクションが実行できるようになります。
  • マシンのロール: サービス アカウントに付与されます。サービス アカウントとして実行されているマシンで、プロジェクト内のリソースにアクションが実行できるようになります。

次の表に示すのは、IAM の事前定義ロールによるアクセス制御と、各ロールに関連付けられている権限です。

Role Permissions

(roles/spanner.admin)

Has complete access to all Spanner resources in a Google Cloud project. A principal with this role can:

  • Grant and revoke permissions to other principals for all Spanner resources in the project.
  • Allocate and delete chargeable Spanner resources.
  • Issue get/list/modify operations on Cloud Spanner resources.
  • Read from and write to all Cloud Spanner databases in the project.
  • Fetch project metadata.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

cloudkms.keyHandles.*

  • cloudkms.keyHandles.create
  • cloudkms.keyHandles.get
  • cloudkms.keyHandles.list

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list
  • spanner.backupSchedules.create
  • spanner.backupSchedules.delete
  • spanner.backupSchedules.get
  • spanner.backupSchedules.getIamPolicy
  • spanner.backupSchedules.list
  • spanner.backupSchedules.setIamPolicy
  • spanner.backupSchedules.update
  • spanner.backups.copy
  • spanner.backups.create
  • spanner.backups.delete
  • spanner.backups.get
  • spanner.backups.getIamPolicy
  • spanner.backups.list
  • spanner.backups.restoreDatabase
  • spanner.backups.setIamPolicy
  • spanner.backups.update
  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list
  • spanner.databaseRoles.list
  • spanner.databases.adapt
  • spanner.databases.addSplitPoints
  • spanner.databases.beginOrRollbackReadWriteTransaction
  • spanner.databases.beginPartitionedDmlTransaction
  • spanner.databases.beginReadOnlyTransaction
  • spanner.databases.changequorum
  • spanner.databases.create
  • spanner.databases.createBackup
  • spanner.databases.drop
  • spanner.databases.get
  • spanner.databases.getDdl
  • spanner.databases.getIamPolicy
  • spanner.databases.list
  • spanner.databases.partitionQuery
  • spanner.databases.partitionRead
  • spanner.databases.read
  • spanner.databases.select
  • spanner.databases.setIamPolicy
  • spanner.databases.update
  • spanner.databases.updateDdl
  • spanner.databases.useDataBoost
  • spanner.databases.useRoleBasedAccess
  • spanner.databases.write
  • spanner.instanceConfigOperations.cancel
  • spanner.instanceConfigOperations.delete
  • spanner.instanceConfigOperations.get
  • spanner.instanceConfigOperations.list
  • spanner.instanceConfigs.create
  • spanner.instanceConfigs.delete
  • spanner.instanceConfigs.get
  • spanner.instanceConfigs.list
  • spanner.instanceConfigs.update
  • spanner.instanceOperations.cancel
  • spanner.instanceOperations.delete
  • spanner.instanceOperations.get
  • spanner.instanceOperations.list
  • spanner.instancePartitionOperations.cancel
  • spanner.instancePartitionOperations.delete
  • spanner.instancePartitionOperations.get
  • spanner.instancePartitionOperations.list
  • spanner.instancePartitions.create
  • spanner.instancePartitions.delete
  • spanner.instancePartitions.get
  • spanner.instancePartitions.list
  • spanner.instancePartitions.update
  • spanner.instances.create
  • spanner.instances.createTagBinding
  • spanner.instances.delete
  • spanner.instances.deleteTagBinding
  • spanner.instances.get
  • spanner.instances.getIamPolicy
  • spanner.instances.list
  • spanner.instances.listEffectiveTags
  • spanner.instances.listTagBindings
  • spanner.instances.setIamPolicy
  • spanner.instances.update
  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.backupAdmin)

A principal with this role can:

  • Create, view, update, and delete backups.
  • View and manage a backup's allow policy.

This role cannot restore a database from a backup.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backupOperations.*

  • spanner.backupOperations.cancel
  • spanner.backupOperations.get
  • spanner.backupOperations.list

spanner.backupSchedules.create

spanner.backupSchedules.delete

spanner.backupSchedules.get

spanner.backupSchedules.list

spanner.backupSchedules.update

spanner.backups.copy

spanner.backups.create

spanner.backups.delete

spanner.backups.get

spanner.backups.getIamPolicy

spanner.backups.list

spanner.backups.setIamPolicy

spanner.backups.update

spanner.databases.createBackup

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

(roles/spanner.backupWriter)

This role is intended to be used by scripts that automate backup creation. A principal with this role can create backups, but cannot update or delete them.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

spanner.backupOperations.get

spanner.backupOperations.list

spanner.backupSchedules.create

spanner.backupSchedules.get

spanner.backupSchedules.list

spanner.backups.copy

spanner.backups.create

spanner.backups.get

spanner.backups.list

spanner.databases.createBackup

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instances.get

(roles/spanner.databaseAdmin)

A principal with this role can:

  • Get/list all Spanner instances in the project.
  • Create/list/drop databases in an instance.
  • Grant/revoke access to databases in the project.
  • Read from and write to all Cloud Spanner databases in the project.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

cloudkms.keyHandles.*

  • cloudkms.keyHandles.create
  • cloudkms.keyHandles.get
  • cloudkms.keyHandles.list

cloudkms.operations.get

cloudkms.projects.showEffectiveAutokeyConfig

monitoring.timeSeries.*

  • monitoring.timeSeries.create
  • monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databaseRoles.list

spanner.databases.adapt

spanner.databases.addSplitPoints

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginPartitionedDmlTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.changequorum

spanner.databases.create

spanner.databases.drop

spanner.databases.get

spanner.databases.getDdl

spanner.databases.getIamPolicy

spanner.databases.list

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.setIamPolicy

spanner.databases.update

spanner.databases.updateDdl

spanner.databases.useDataBoost

spanner.databases.useRoleBasedAccess

spanner.databases.write

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.getIamPolicy

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseReader)

A principal with this role can:

  • Read from the Spanner database.
  • Execute SQL queries on the database.
  • View schema for the database.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databases.beginReadOnlyTransaction

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseReaderWithDataBoost)

Includes all permissions in the spanner.databaseReader role enabling access to read and/or query a Cloud Spanner database using instance resources, as well as the permission to access the database with Data Boost, a fully managed serverless service that provides independent compute resources.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databases.beginReadOnlyTransaction

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.useDataBoost

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.databaseRoleUser)

In conjunction with the IAM role Cloud Spanner Fine-grained Access User, grants permissions to individual Spanner database roles. Add a condition for each desired Spanner database role that includes the resource type of `spanner.googleapis.com/DatabaseRole` and the resource name ending with `/YOUR_SPANNER_DATABASE_ROLE`.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

(roles/spanner.databaseUser)

A principal with this role can:

  • Read from and write to the Spanner database.
  • Execute SQL queries on the database, including DML and Partitioned DML.
  • View and update schema for the database.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.create

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databases.adapt

spanner.databases.beginOrRollbackReadWriteTransaction

spanner.databases.beginPartitionedDmlTransaction

spanner.databases.beginReadOnlyTransaction

spanner.databases.changequorum

spanner.databases.getDdl

spanner.databases.partitionQuery

spanner.databases.partitionRead

spanner.databases.read

spanner.databases.select

spanner.databases.updateDdl

spanner.databases.write

spanner.instancePartitions.get

spanner.instances.get

spanner.sessions.*

  • spanner.sessions.create
  • spanner.sessions.delete
  • spanner.sessions.get
  • spanner.sessions.list

(roles/spanner.fineGrainedAccessUser)

Grants permissions to use Spanner's fine-grained access control framework. To grant access to specific database roles, also add the `roles/spanner.databaseRoleUser` IAM role and its necessary conditions.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

spanner.databaseRoles.list

spanner.databases.useRoleBasedAccess

(roles/spanner.restoreAdmin)

A principal with this role can restore databases from backups.

If you need to restore a backup to a different instance, apply this role at the project level or to both instances. This role cannot create backups.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.backups.get

spanner.backups.list

spanner.backups.restoreDatabase

spanner.databaseOperations.*

  • spanner.databaseOperations.cancel
  • spanner.databaseOperations.get
  • spanner.databaseOperations.list

spanner.databases.create

spanner.databases.get

spanner.databases.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.createTagBinding

spanner.instances.deleteTagBinding

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

(roles/spanner.serviceAgent)

Cloud Spanner API Service Agent

aiplatform.endpoints.get

aiplatform.endpoints.list

aiplatform.endpoints.predict

aiplatform.models.get

aiplatform.models.list

(roles/spanner.viewer)

A principal with this role can:

  • View all Spanner instances (but cannot modify instances).
  • View all Spanner databases (but cannot modify or read from databases).

For example, you can combine this role with the roles/spanner.databaseUser role to grant a user with access to a specific database, but only view access to other instances and databases.

This role is recommended at the Google Cloud project level for users interacting with Cloud Spanner resources in the Google Cloud console.

Lowest-level resources where you can grant this role:

  • Instance
  • Database

monitoring.timeSeries.list

resourcemanager.projects.get

resourcemanager.projects.list

spanner.databases.list

spanner.instanceConfigs.get

spanner.instanceConfigs.list

spanner.instancePartitions.get

spanner.instancePartitions.list

spanner.instances.get

spanner.instances.list

spanner.instances.listEffectiveTags

spanner.instances.listTagBindings

基本ロール

基本ロールは、IAM より前から存在するプロジェクト レベルのロールです。詳細については、基本ロールをご覧ください。

Spanner では以下の基本ロールがサポートされていますが、可能な限り、前述の事前定義ロールのいずれかを使用してください。基本ロールには、すべての Google Cloud リソースに適用される包括的な権限が含まれています。これとは対照的に、Spanner の事前定義ロールには Spanner のみに適用される細分化された権限が含まれています。

基本ロール 説明
roles/editor roles/viewer で許可されるすべての操作を実行できます。インスタンスとデータベースを作成し、インスタンスやデータベースの作成、データベースへの書き込みもできます。
roles/owner roles/editor で許可されるすべての操作を実行できます。データベースやインスタンスに対するアクセス権を変更できます。
roles/viewer スキーマとインスタンスのメタデータを一覧表示または取得できます。データベースに対して読み取りや SQL クエリも実行できます。

カスタムロール

Spanner の事前定義ロールがビジネス要件に合っていない場合は、指定した権限を含むカスタムロールを独自に定義できます。

カスタムロールを作成する前に、実行する必要のあるタスクを特定する必要があります。これで各タスクに必要な権限を特定し、これらの権限をカスタムロールに追加できます。

サービス アカウント タスクのカスタムロール

多くのタスクでは、カスタムの役割に追加する必要のある権限がはっきりしています。たとえば、サービス アカウントでデータベースを作成できるようにするには、spanner.databases.create という権限をカスタムロールに追加します。

ただし、Spanner テーブルでデータを読み書きする場合は、カスタムロールにさまざまな権限を追加する必要があります。次の表に示すのは、データの読み取りと書き込みに必要な権限です。

サービス アカウント タスク 必要な権限
バックアップを作成する spanner.backups.create
spanner.databases.createBackup
データを読み取る spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
データベースを復元する spanner.backups.restoreDatabase
spanner.databases.create
データを挿入、更新、削除する spanner.databases.beginOrRollbackReadWriteTransaction
spanner.sessions.create
spanner.sessions.delete
spanner.databases.write

Google Cloud コンソール タスクのカスタムロール

Google Cloud コンソールで特定のタスクに必要な権限のリストを特定するには、そのタスクのワークフローを決定し、そのワークフローの権限をコンパイルします。たとえば、テーブル内のデータを表示するには、 Google Cloud コンソールで次の手順で操作します。

手順 権限
1. プロジェクトにアクセスする resourcemanager.projects.get
2. インスタンスの一覧を確認する spanner.instances.list
3. インスタンスを選択する spanner.instances.get
4. データベースのリストを確認する spanner.databases.list
5. データベースとテーブルを選択する spanner.databases.getDdl
6. テーブル内のデータを確認する spanner.databases.selectspanner.sessions.createspanner.sessions.delete

この例では、次の権限が必要です。

  • resourcemanager.projects.get
  • spanner.databases.getDdl
  • spanner.databases.list
  • spanner.databases.select
  • spanner.instances.get
  • spanner.instances.list
  • spanner.sessions.create
  • spanner.sessions.delete

次の表に示すのは、Google Cloud コンソールでの操作に必要な権限です。

権限 操作
spanner.databases.setIamPolicy [データベースの詳細] ページの [権限] タブでメンバーを追加する
spanner.instances.setIamPolicy [インスタンス] ページの [権限] タブでメンバーを追加する
spanner.backups.create
spanner.databases.createBackup
spanner.databases.list1
spanner.backupOperations.list1
バックアップを作成する
spanner.backupSchedules.create
spanner.databases.createBackup
バックアップ スケジュールを作成する
spanner.databases.create データベースを作成する
spanner.instancePartitions.list
spanner.instancePartitionOperations.get
spanner.instancePartitions.create
インスタンス パーティションを作成する
spanner.databaseOperations.get
spanner.databaseOperations.list
spanner.databases.updateDdl
テーブルを作成する
テーブル スキーマを更新する
spanner.instanceConfigs.list
spanner.instanceOperations.get
spanner.instances.create
インスタンスを作成する
spanner.backups.delete バックアップを削除する
spanner.backupSchedules.delete バックアップ スケジュールを削除する
spanner.databases.drop データベースを削除する
spanner.instancePartitions.delete インスタンス パーティションを削除する
spanner.instances.delete インスタンスを削除する
spanner.instancePartitionOperations.get
spanner.instancePartitions.update
インスタンス パーティションを変更する
spanner.instanceOperations.get
spanner.instances.update
インスタンスを変更する
spanner.databases.beginOrRollbackReadWriteTransaction
spanner.databases.select
spanner.databases.write
spanner.sessions.create
spanner.sessions.delete
テーブル内のデータを変更する
spanner.instanceConfigs.list
spanner.instances.get
spanner.backups.get
spanner.backups.restoreDatabase
spanner.instances.list
spanner.databases.create
バックアップからデータベースを復元する
spanner.databases.get
spanner.databases.getDdl
データベースの一覧からデータベースを選択し、[データベースの詳細] ページでスキーマを確認する
spanner.instances.get インスタンスの一覧からインスタンスを選択し、[インスタンスの詳細] ページを確認する
spanner.backups.update バックアップを更新する
spanner.backupSchedules.update バックアップ スケジュールを更新する
spanner.databases.select
spanner.sessions.create
spanner.sessions.delete
[データベースの詳細] ページの [データ] タブでデータを確認する
クエリを作成して実行する
spanner.backups.list
spanner.backups.get
[バックアップ / 復元] ページを確認する
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.timeSeries.list
spanner.instances.get
[インスタンスの詳細] ページまたは [データベースの詳細] ページの [モニタリング] タブでグラフを確認する
spanner.backupOperations.list バックアップ オペレーションの一覧を取得する
spanner.databases.list [インスタンスの詳細] ページでデータベースの一覧を確認する
resourcemanager.projects.get
spanner.instances.list
[インスタンス] ページでインスタンスの一覧を確認する
spanner.databaseOperations.list 復元オペレーションの一覧を確認する
spanner.databases.getIamPolicy [データベースの詳細] ページの [権限] タブで一覧を確認する
spanner.instances.getIamPolicy [インスタンス] ページの [権限] タブで一覧を確認する
1 データベース レベルではなく、インスタンス レベルで [バックアップ / 復元] ページからバックアップを作成する場合は必須です。

Spanner の IAM ポリシー管理

Spanner インスタンス、データベース、バックアップ リソースで REST または RPC API を使用して、IAM ポリシーを取得、設定、テストできます。

インスタンス

REST API RPC API
projects.instances.getIamPolicy GetIamPolicy
projects.instances.setIamPolicy SetIamPolicy
projects.instances.testIamPermissions TestIamPermissions

データベース

REST API RPC API
projects.instances.databases.getIamPolicy GetIamPolicy
projects.instances.databases.setIamPolicy SetIamPolicy
projects.instances.databases.testIamPermissions TestIamPermissions

バックアップ

REST API RPC API
projects.instances.backups.getIamPolicy GetIamPolicy
projects.instances.backups.setIamPolicy SetIamPolicy
projects.instances.backups.testIamPermissions TestIamPermissions

次のステップ