Google App Engine Admin API は、Google Cloud Identity and Access Management(IAM)を使用してアクセスを制御します。
Google App Engine Admin API のアクセス制御は、プロジェクト レベルで構成できます。GCP プロジェクトとそれに含まれるリソースへのアクセス権は、ユーザー アカウント、ドメイン、グループ、サービス アカウントに対して付与できます。次に例を示します。
- プロジェクト内のすべてのリソースへのアクセス権を、サービス アカウントの 1 人のメンバーまたはすべてのメンバーに付与できます。
- プロジェクト全体ではなく役割ごとにアクセス権を付与し、プロジェクト メンバーに与える権限を制限できます。たとえば、リソースへの読み取り専用アクセスや新しいバージョンのデプロイは許可するが、デプロイしたバージョンへのトラフィックの構成は許可しない、などの制限を設けることができます。
IAM とその機能の詳細については、Google Cloud Identity and Access Management のドキュメントをご覧ください。
すべての Admin API メソッドでは、呼び出し元が必要な権限を持っていることが求められます。Admin API IAM がサポートするすべての権限と役割のリストについては、次のセクションをご覧ください。
権限と役割
このセクションでは、Admin API IAM がサポートする権限と役割の概要を示します。
App Engine の役割の詳細については、App Engine のアクセス制御をご覧ください。
必要な権限
次の表に、各メソッドを呼び出すために呼び出し元が持っている必要のある権限のリストを示します。
メソッド | 必要な権限 |
---|---|
apps.create |
リクエストされた Application リソースに対する appengine.applications.create 。GCP プロジェクトに対するオーナー役割の権限が必要。 |
apps.get |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.patch |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.repair |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.authorizedCertificates.create |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.authorizedCertificates.delete |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.authorizedCertificates.get |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.authorizedCertificates.list |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.authorizedCertificates.patch |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.authorizedDomains.list |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.domainMappings.create |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.domainMappings.delete |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.domainMappings.get |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.domainMappings.list |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.domainMappings.patch |
リクエストされた Application リソースに対する appengine.applications.update 。 |
apps.locations.get |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.locations.list |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.operations.get |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.operations.list |
リクエストされた Application リソースに対する appengine.applications.get 。 |
apps.services.delete |
リクエストされた Service リソースに対する appengine.services.delete 。 |
apps.services.get |
リクエストされた Service リソースに対する appengine.services.get 。 |
apps.services.list |
リクエストされた Application リソースに対する appengine.services.list 。 |
apps.services.patch |
リクエストされた Service リソースに対する appengine.services.update 。 |
apps.services.versions.create |
リクエストされた Service リソースに対する appengine.versions.create 。 |
apps.services.versions.delete |
リクエストされた Version リソースに対する appengine.versions.delete 。 |
apps.services.versions.get |
リクエストされた Version リソースに対する appengine.versions.get 。 |
apps.services.versions.list |
リクエストされた Service リソースに対する appengine.versions.list 。 |
apps.services.versions.patch |
リクエストされた Version リソースに対する appengine.versions.update 。 |
apps.services.versions.instances.debug |
リクエストされた Instance リソースに対する appengine.instances.enableDebug 。 |
apps.services.versions.instances.delete |
リクエストされた Instance リソースに対する appengine.instances.delete 。 |
apps.services.versions.instances.get |
リクエストされた Instance リソースに対する appengine.instances.get 。 |
apps.services.versions.instances.list |
リクエストされた Version リソースに対する appengine.instances.list 。 |
役割
次の表に、Google App Engine Admin API IAM の役割と、各役割に含まれるすべての権限の一覧を示します。各権限は、特定のリソースタイプに適用できます。
役割 | 含まれている権限 |
---|---|
App Engine 管理者
すべてのアプリケーションの構成と設定への読み取り / 書き込み / 変更アクセス権。 |
appengine.applications.disable
|
appengine.applications.get | |
appengine.applications.update | |
appengine.instances.delete | |
appengine.instances.enableDebug | |
appengine.instances.get | |
appengine.instances.list | |
appengine.instances.update
|
|
appengine.operations.cancel
|
|
appengine.operations.delete
|
|
appengine.operations.get | |
appengine.operations.list | |
appengine.runtimes.actAsAdmin | |
appengine.services.delete | |
appengine.services.get | |
appengine.services.list | |
appengine.services.update | |
appengine.versions.create | |
appengine.versions.delete | |
appengine.versions.get | |
appengine.versions.list | |
appengine.versions.update | |
resourcemanager.projects.get | |
resourcemanager.projects.list | |
App Engine デプロイ担当者
すべてのアプリケーション構成および設定への読み取り専用アクセス権。 新しいバージョンの作成に限定された書き込みアクセス権。既存のバージョンの変更はできませんが、トラフィックを受信していないバージョンの削除はできます。特定のバージョンへのトラフィックを構成することはできません。 |
appengine.applications.get |
appengine.instances.get | |
appengine.instances.list | |
appengine.operations.get | |
appengine.operations.list | |
appengine.services.create
|
|
appengine.services.get | |
appengine.services.list | |
appengine.versions.create | |
appengine.versions.delete | |
appengine.versions.get | |
appengine.versions.list | |
resourcemanager.projects.get | |
resourcemanager.projects.list | |
App Engine サービス管理者
すべてのアプリケーション構成および設定への読み取り専用アクセス権。 トラフィック構成を含むサービスレベルおよびバージョン レベルの設定に対する書き込みアクセス権。アプリの複数バージョンをデプロイすることはできません。 |
appengine.applications.get |
appengine.instances.delete | |
appengine.instances.get | |
appengine.instances.list | |
appengine.operations.get | |
appengine.operations.list | |
appengine.services.delete | |
appengine.services.get | |
appengine.services.list | |
appengine.services.update | |
appengine.versions.delete | |
appengine.versions.get | |
appengine.versions.list | |
appengine.versions.update | |
resourcemanager.projects.get | |
resourcemanager.projects.list | |
App Engine 閲覧者
すべてのアプリケーション構成および設定への読み取り専用アクセス権。 |
appengine.applications.get |
appengine.instances.get | |
appengine.instances.list | |
appengine.operations.get | |
appengine.operations.list | |
appengine.services.get | |
appengine.services.list | |
appengine.versions.get | |
appengine.versions.list | |
resourcemanager.projects.get | |
resourcemanager.projects.list | |
App Engine コード閲覧者
すべてのアプリケーションの構成および設定と、デプロイ済みソースコードへの読み取り専用アクセス権。 |
appengine.applications.get |
appengine.instances.get | |
appengine.instances.list | |
appengine.operations.get | |
appengine.operations.list | |
appengine.services.get | |
appengine.services.list | |
appengine.versions.get | |
appengine.versions.getFileContents | |
appengine.versions.list | |
resourcemanager.projects.get | |
resourcemanager.projects.list |
役割 roles/owner
、roles/editor
、roles/viewer
には、他の Google Cloud Platform サービスに対する権限も含まれていることに注意してください。これらの基本の役割の詳細については、アクセス制御をご覧ください。
カスタムの役割で使用できない権限
カスタムの役割を作成することで、定義済みの IAM 役割に含まれないアクセス権を構成できます。ただし、カスタムの役割では次の権限は使用できません。
appengine.applications.disable
appengine.applications.list
appengine.instances.update
appengine.operations.cancel
appengine.operations.delete
appengine.services.create
これらの権限は、どのオペレーションにも必須ではありません。
GCP Console によるアクセス制御
GCP Console を使用して GCP プロジェクトのアクセス制御を管理できます。
プロジェクト全体のアクセス制御を設定する
GCP プロジェクトとそのリソースへのアクセス権をメンバーに付与する方法については、プロジェクト メンバーに対するアクセス権の付与、変更、取り消しをご覧ください。
サービス アカウントのアクセス制御を設定する
アプリがプログラムによって GCP サービスにアクセスできるように権限を付与するには、GCP プロジェクトにサービス アカウントを作成します。たとえば、サービス アカウントを使用して、ある GCP プロジェクトが Google App Engine Admin API で別の GCP プロジェクトに HTTP リクエストを送信できるようにします。
サービス アカウントを作成してアクセス権を付与する方法については、次の IAM トピックをご覧ください。