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 管理者
すべてのアプリケーションの構成と設定への読み取り / 書き込み / 変更アクセス権。 |
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 サービスに対する権限も含まれます。これらの基本的なロールの詳細については、アクセス制御をご覧ください。
カスタムロールで使用できない権限
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 トピックをご覧ください。