Identity and Access Management(IAM)

Google Cloud Platform には Identity and Access Management(IAM)機能があり、特定の Google Cloud Platform リソースへのより詳細なアクセスが可能になり、他のリソースへの不要なアクセスを防ぐことができます。このページでは、Datastore モードの Cloud Firestore の IAM 役割について説明します。Cloud IAM について詳しくは、IAM のドキュメントをご覧ください。

IAM を使用すると、最小限の権限のセキュリティ原則を導入できるため、リソースに対する必要なアクセス権のみ付与できます。

IAM では、IAM ポリシーを設定して、誰(どのユーザー)に、どのリソースに対するどのアクセス権(役割)を付与するかを制御することができます。IAM ポリシーは、特定の役割をユーザーに付与することで、そのユーザーに特定の権限を付与します。たとえば、ユーザーに datastore.indexAdmin 役割を付与すると、このユーザーにはインデックスの作成、変更、削除、リスト表示、表示が許可されます。

権限と役割

ここでは、Datastore モードの Cloud Firestore でサポートされる権限と役割を簡単に説明します。

必要な権限

次の表に、各メソッドを呼び出すために呼び出し元が持っている必要のある権限のリストを示します。

メソッド 必要な権限
allocateIds datastore.entities.allocateIds
beginTransaction datastore.databases.get
insert の commit datastore.entities.create
upsert の commit datastore.entities.create
datastore.entities.update
update の commit datastore.entities.update
delete の commit datastore.entities.delete
lookup の commit datastore.entities.get

メタデータまたは統計情報に関連する検索の場合には、メタデータと統計情報に必要な権限をご覧ください。
query の commit datastore.entities.list
datastore.entities.get(クエリがキーのみのクエリではない場合)

メタデータまたは統計情報に関連するクエリの場合には、メタデータと統計情報に必要な権限をご覧ください。
lookup datastore.entities.get

メタデータまたは統計情報に関連する検索の場合には、メタデータと統計情報に必要な権限をご覧ください。
rollback datastore.databases.get
runQuery datastore.entities.list
datastore.entities.get(クエリがキーのみのクエリではない場合)

メタデータまたは統計情報に関連するクエリの場合には、メタデータと統計情報に必要な権限をご覧ください。

メタデータと統計情報に必要な権限

次の表に、メタデータ統計情報に関するメソッドを呼び出す際に必要な権限を示します。

メソッド 必要な権限
__Stat_*__ と一致する種類名を持つエンティティの lookup datastore.statistics.get
__Stat_*__ と一致する名前の種類を使用する runQuery datastore.statistics.get
datastore.statistics.list
種類 __namespace__ を使用する runQuery datastore.namespaces.get
datastore.namespaces.list

役割

IAM ではすべての Cloud Datastore API メソッドで、API リクエストを行うアカウントにリソースを使用するための適切な権限が付与されている必要があります。権限は、ユーザー、グループ、またはサービス アカウントに役割を付与するポリシーを設定することで付与されます。オーナー、編集者、閲覧者という基本の役割以外に、Datastore モードの Cloud Firestore の役割をプロジェクトのユーザーに付与できます。

次の表に、Datastore モードの Cloud Firestore の IAM 役割を示します。1 つのユーザー、グループ、またはサービス アカウントに複数の役割を付与できます。

役割 権限 説明
roles/datastore.owner
with
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
データベース インスタンスへの完全アクセス権。
roles/datastore.owner
次の役割と一緒に使用しない:
roles/appengine.appAdmin
appengine.applications.get
datastore.databases.*
datastore.entities.*
datastore.indexes.*
datastore.namespaces.*
datastore.operations.*
datastore.statistics.*
resourcemanager.projects.get
resourcemanager.projects.list
データベース インスタンスへの完全アクセス権。ただし、ユーザー、グループ、サービス アカウントは、次のことができません。
roles/datastore.user appengine.applications.get
datastore.databases.get
datastore.entities.*
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
Datastore モード データベース内のデータへの読み取り、書き込みアクセス権。アプリケーション デベロッパーとサービス アカウント向け。
roles/datastore.viewer appengine.applications.get
datastore.databases.get
datastore.entities.get
datastore.entities.list
datastore.indexes.get
datastore.indexes.list
datastore.namespaces.get
datastore.namespaces.list
datastore.statistics.get
datastore.statistics.list
resourcemanager.projects.get
resourcemanager.projects.list
すべての Datastore モード データベース リソースへの読み取りアクセス権。
roles/datastore.importExportAdmin appengine.applications.get
datastore.databases.export
datastore.databases.import
datastore.operations.cancel
datastore.operations.get
datastore.operations.list
resourcemanager.projects.get
resourcemanager.projects.list
インポートとエクスポートを管理するための完全アクセス権。
roles/datastore.indexAdmin appengine.applications.get
datastore.indexes.*
resourcemanager.projects.get
resourcemanager.projects.list
インデックス定義を管理するための完全アクセス権。

権限

次の表に、Datastore モードの Cloud Firestore でサポートされる権限を示します。

データベースの権限名 説明
datastore.databases.export データベースからエンティティをエクスポートします。
datastore.databases.get トランザクションを開始またはロールバックします。
データベースからメタデータを読み取ります。
datastore.databases.import データベースにエンティティをインポートします。
エンティティの権限名 説明
datastore.entities.allocateIds 不完全なキーパスを使用して、キーの ID を割り当てます。
datastore.entities.create エンティティを作成します。
datastore.entities.delete エンティティを削除します。
datastore.entities.get エンティティを読み取ります。
datastore.entities.list プロジェクト内のエンティティのキーを一覧表示します。
エンティティ データにアクセスするには datastore.entities.get が必要です。
datastore.entities.update エンティティを更新します。
インデックスの権限名 説明
datastore.indexes.create インデックスを作成します。
datastore.indexes.delete インデックスを削除します。
datastore.indexes.get インデックスからメタデータを読み取ります。
datastore.indexes.list プロジェクト内のインデックスを一覧表示します。
datastore.indexes.update インデックスを更新します。
名前空間の権限名 説明
datastore.namespaces.get 名前空間からメタデータを取得します。
datastore.namespaces.list プロジェクト内の名前空間を一覧表示します。
オペレーションの権限名 説明
datastore.operations.cancel 長時間実行オペレーションをキャンセルします。
datastore.operations.delete 長時間実行オペレーションを削除します。
datastore.operations.get 長時間実行オペレーションの最新の状態を取得します。
datastore.operations.list 長時間実行オペレーションを一覧表示します。
プロジェクトの権限名 説明
resourcemanager.projects.get プロジェクト内のリソースを参照します。
resourcemanager.projects.list 所有するプロジェクトをリスト表示します。
統計情報の権限名 説明
datastore.statistics.get 統計情報のエンティティを取得します。
datastore.statistics.list 統計情報のエンティティのキーを一覧表示します。
統計情報のエンティティ データにアクセスするには datastore.statistics.get が必要です。
App Engine の権限名 説明
appengine.applications.get すべての App Engine アプリケーション構成に読み取り専用でアクセスします。

Datastore モード データベース インスタンスを作成するために必要な役割

新しい Datastore モード データベース インスタンスを作成するには、オーナーの役割または Cloud Datastore オーナーの役割のいずれかが必要です。

Datastore モード データベースではアクティブな App Engine アプリケーションが必要です。プロジェクトにアプリケーションがない場合は、Datastore モードの Cloud Firestore によりアプリケーションが作成されます。その場合、appengine.applications.create 権限(オーナーの役割または IAM カスタム役割に含まれています)が必要です。

役割変更のレイテンシ

Datastore モードの Cloud Firestore は IAM 権限を 5 分間キャッシュに保存します。そのため、役割の変更が反映されるまでに最大で 5 分かかります。

IAM の管理

IAM ポリシーの取得と設定には、Google Cloud Platform Console、IAM のメソッド、gcloud コマンドライン ツールを使用できます。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Datastore ドキュメント