App Engine には、App Engine スタンダード環境のサービス エージェントという名前のサービス エージェントが含まれます。このサービス エージェントにより、サービスは他の Google Cloud リソースにアクセスする際にユーザーに代わって動作できます。サービス エージェントは変更しないことが重要です。
なお、サービス エージェントは Google Cloud コンソールの [サービス アカウント] ページには表示されず、App Engine のデフォルトのサービス アカウントとの関連はありません。
Google Cloud プロジェクトのサービス エージェントは、最初のサービスをデプロイした後に自動的に作成されます。たとえば、gcloud app
deploy
コマンドを初めて実行して、スタンダード環境にアプリをデプロイした後に作成されます。
サービス エージェントでは、App Engine スタンダード環境サービス エージェントの事前定義された IAM ロールが使用されます。このロールには、App Engine がアプリを管理するのに必要な権限のセットが含まれます。このロールは、サービス エージェントの作成時にサービス エージェントに自動的に付与されます。
たとえば、これらの権限によって Cloud プロジェクトで Blobstore API を使用したり、App Engine インスタンスが他の Google Cloud リソース(Cloud Storage バケットなど)にアクセスするために使用するアクセス トークンを取得したりできます。
重要な制限事項:
- サービス エージェントに付与されているロールを取り消さないでください。
- 関連する App Engine スタンダード環境サービス エージェントのロールは、他のアカウントに付与しないでください。なお、このロールの権限は予告なく変更されることがあります。
サービス エージェントを確認する
Google Cloud プロジェクトでサービス エージェントに必要なロールが付与されていることを確認するには、次の手順を行います。
Google Cloud コンソールで、[権限] ページに移動します。
[権限] ページの右上にある [Google 提供のロール付与を含める] チェックボックスをオンにします。
[プリンシパル] リストで、次の ID を使用してサービス エージェントを見つけます。
service-PROJECT_NUMBER@gcp-gae-service.iam.gserviceaccount.com
サービス エージェントに App Engine スタンダード環境のサービス エージェント ロールが付与されていることを確認します。
サービス エージェントに必要なロールを復元する
サービス エージェントに必要な App Engine スタンダード環境サービス エージェントのロール バインディングを Google Cloud プロジェクトから誤って削除した場合は、次の手順で復元します。
Google Cloud コンソールで、[権限] ページに移動します。
[追加] をクリックします。
サービス エージェント ID を次の形式で入力します。
service-PROJECT_NUMBER@gcp-gae-service.iam.gserviceaccount.com
App Engine スタンダード環境のサービス エージェント ロールを選択します。
[保存] をクリックします。