Admin API でのアクセス制御

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 管理者

/roles/appengine.appAdmin

すべてのアプリケーションの構成と設定への読み取り / 書き込み / 変更アクセス権。

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 デプロイ担当者

/roles/appengine.deployer

すべてのアプリケーション構成および設定への読み取り専用アクセス権。

新しいバージョンの作成に限定された書き込みアクセス権。既存のバージョンの変更はできませんが、トラフィックを受信していないバージョンの削除はできます。特定のバージョンへのトラフィックを構成することはできません。

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 サービス管理者

/roles/appengine.serviceAdmin

すべてのアプリケーション構成および設定への読み取り専用アクセス権。

トラフィック構成を含むサービスレベルおよびバージョン レベルの設定に対する書き込みアクセス権。アプリの複数バージョンをデプロイすることはできません。

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 閲覧者

/roles/appengine.appViewer

すべてのアプリケーション構成および設定への読み取り専用アクセス権。

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 コード閲覧者

/roles/appengine.codeViewer

すべてのアプリケーションの構成および設定と、デプロイ済みソースコードへの読み取り専用アクセス権。

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/ownerroles/editorroles/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 トピックをご覧ください。

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

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