Admin API でのアクセス制御

App Engine Admin API は、Identity and Access Management(IAM)を使用してアクセスを制御します。

App Engine Admin API のアクセス制御は、プロジェクト レベルで構成できます。Google Cloud プロジェクトとプロジェクト内のリソースへのアクセス権は、ユーザー アカウント、ドメイン、グループ、サービス アカウントに付与できます。例:

  • プロジェクト内のすべてのリソースへのアクセス権を個々のユーザーまたはサービス アカウントに付与します。
  • プロジェクト内のリソースへの部分的なアクセス権を付与します。たとえば、リソースへの読み取り専用アクセスや新しいバージョンのデプロイは許可するが、デプロイしたバージョンへのトラフィックの構成は許可しない、などの制限を設けることができます。

IAM とその機能の詳細については、IAM のドキュメントをご覧ください。

すべての Admin API メソッドでは、呼び出し元が必要な権限を持っていることが求められます。Admin API でサポートされているすべての権限とロールの一覧については、次のセクションをご覧ください。

権限とロール

このセクションでは、Admin API でサポートされている権限とロールを簡単に説明します。

App Engine のロールの詳細については、App Engine のアクセス制御をご覧ください。

必要な権限

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

メソッド 必要な権限
apps.create リクエストされた Application リソースに対する appengine.applications.create
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

ロール

次の表に、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 サービスに対する権限も含まれます。これらの基本的なロールの詳細については、アクセス制御をご覧ください。

カスタムロールで使用できない権限

IAM 事前定義ロールに含まれないアクセス権を構成する必要がある場合は、カスタムロールを作成します。ただし、カスタムロールで次の権限は使用できません。

  • appengine.applications.disable
  • appengine.applications.list
  • appengine.instances.update
  • appengine.operations.cancel
  • appengine.operations.delete
  • appengine.services.create

これらの権限は、どのオペレーションにも必須ではありません。

Google Cloud コンソールによるアクセス制御

Google Cloud コンソールを使用して、Google Cloud プロジェクトのアクセス制御を管理できます。

プロジェクト全体のアクセス制御を設定する

プリンシパルに Google Cloud プロジェクトとそのリソースへのアクセス権を付与するには、アクセス権の付与、変更、取り消しをご覧ください。

サービス アカウントのアクセス制御を設定する

Google Cloud プロジェクトにサービス アカウントを作成して、アプリにプログラムによる Google Cloud サービスへのアクセスを許可できます。たとえば、サービス アカウントを使用して、ある Google Cloud プロジェクトが App Engine Admin API で別の Google Cloud プロジェクトに HTTP リクエストを送信できるようにします。

サービス アカウントを作成してアクセス権を付与する方法については、次の IAM トピックをご覧ください。