サービス アカウントのタイプ

サービス アカウントは、管理対象のサービス アカウントと Google が管理するサービスの 2 つのカテゴリに分けられます。このページでは、それぞれのタイプのサービス アカウントの作成方法と使用方法について説明します。

ユーザー管理サービス アカウント

ユーザー管理サービス アカウントは、プロジェクト内に作成するサービス アカウントです。必要に応じて、これらのサービス アカウントの更新、無効化、有効化、削除を行うことができます。また、これらのサービス アカウントに対する他のプリンシパルのアクセス権を管理できます。

プロジェクトでユーザー管理サービス アカウントを作成するには、IAM API、Google Cloud コンソール、または Google Cloud CLI を使用します。

デフォルトでは、1 つのプロジェクトに最大 100 個のユーザー管理サービス アカウントを作成できます。この割り当てがニーズを満たしていない場合は、Google Cloud コンソールを使用して割り当ての増加をリクエストできます。この割り当ての対象はユーザー作成のサービス アカウントのみです。デフォルトのサービス アカウントGoogle 管理のサービス アカウントは、カウントの対象に含まれません。

プロジェクトでユーザー管理サービス アカウントを作成するときには、サービス アカウントの名前を選んでください。この名前は、サービス アカウントを識別するメールアドレスに次の形式で表示されます。

service-account-name@project-id.iam.gserviceaccount.com

サービス アカウントの作成方法については、サービス アカウントを作成するをご覧ください。

デフォルトのサービス アカウント

デフォルトのサービス アカウントは、特定の Google Cloud サービスを有効にするとき、または使用するときに自動的に作成されるユーザー管理のサービス アカウントです。これらのサービス アカウントを使用すると、他の Google Cloud リソースにアクセスするジョブをデプロイできます。デフォルトのサービス アカウントが作成された後、このアカウントの管理はお客様自身で行う必要があります。

デフォルトのサービス アカウントがある Google Cloud 環境内でアプリケーションが実行される場合、アプリケーションはデフォルトのサービス アカウントの認証情報を使用して Google Cloud APIs を呼び出すことができます。または、独自のユーザー管理サービス アカウントを作成し、そのアカウントを使用して認証することもできます。詳細については、アプリケーションのデフォルト認証情報を設定するをご覧ください。

次の表に、デフォルト サービス アカウントを作成するサービスを示します。

サービス サービス アカウント名 メールアドレス
App Engine、および App Engine を使用する Google Cloud サービス App Engine デフォルト サービス アカウント project-id@appspot.gserviceaccount.com
Compute Engine、および Compute Engine を使用する Google Cloud サービス Compute Engine のデフォルトのサービス アカウント project-number-compute@developer.gserviceaccount.com

Google マネージド サービス アカウント

一部の Google Cloud サービスは、ユーザーに代わって処理を行うためにリソースにアクセスする必要があります。たとえば、Cloud Run でコンテナを実行する場合、このサービスはコンテナをトリガーする Pub/Sub トピックにアクセスする必要があります。

このニーズに応えるために、Google では多くの Google Cloud サービスにサービス アカウントを作成し、管理しています。これらのサービス アカウントは、Google が管理するサービス アカウントといいます。プロジェクトの許可ポリシー、監査ログ、または Google Cloud コンソールの IAM ページに、Google マネージド サービス アカウントが表示されることがあります。

Google 管理のサービス アカウントはプロジェクトに作成されないため、プロジェクトのサービス アカウントを表示する際に表示されません。

Google 管理のサービス アカウントには次の種類があります。

公開設定

Google Cloud コンソールの [サービス アカウント] ページには、Google 管理のサービス アカウントは表示されません。これらのサービス アカウントはプロジェクトに定義されていないため、直接アクセスすることはできません。

デフォルトでは、Google 管理のサービス アカウントは、プロジェクトに対するロールが付与されている場合でも、Google Cloud コンソールの [IAM] ページには表示されません。Google 管理のサービス アカウントに付与されたロールを表示するには、[Google 提供のロール付与を含める] チェックボックスをオンにします。

サービス固有のサービス エージェント

サービス エージェントは、個々のサービスに代わって動作する Google 管理のサービス アカウントです。多くの場合、サービスを正常に機能させるには、これらのサービス エージェントが必要になります。たとえば、Cloud Logging シンクが Cloud Storage バケットにログを書き込むことができるのは、サービス エージェントのおかげです。

各サービス エージェントはリソースに関連付けられます。このリソースは通常はプロジェクト、フォルダ、組織のいずれかですが、サービス固有のリソース(Cloud SQL インスタンスなど)にすることもできます。このリソースは、サービス エージェントのアクションのスコープを定義します。たとえば、サービス エージェントがプロジェクトに関連付けられている場合、そのサービス エージェントは、そのプロジェクトならびにその子孫リソースのサービスに代わって動作します。

サービス エージェントが関連付けられているリソースの種類は、メールアドレスで確認できます。

  • サービス エージェントがプロジェクト、フォルダ、または組織に関連付けられている場合、そのメールアドレスにはそのプロジェクト、フォルダ、または組織の数値 ID が含まれます。
  • サービス エージェントがサービス固有のリソースに関連付けられている場合、そのメールアドレスには、数値のプロジェクト ID と一意の識別子が含まれます。数値のプロジェクト ID は、サービス エージェントが関連付けられているリソースを所有するプロジェクトを示します。一意の識別子は、同一のプロジェクト内の類似したサービス エージェントを区別します。

サービス エージェントの作成

サービス エージェントが作成される正確な時間は、関連付けられているリソースの種類によって異なります。

サービス固有のリソースに関連付けられるサービス エージェントは、リソースの作成時に作成されます。それらのサービス エージェントを特定する方法や、構成する方法については、関連するリソースのドキュメントをご覧ください。

プロジェクト、フォルダ、組織に関連付けられるサービス エージェントは、必要に応じて(通常は初めてサービスを使用するときに)作成されます。サービスを使用する前に、必要に応じて、サービスのサービス エージェントを作成するように Google Cloud に指示することもできます。詳細については、ロールを作成してサービス エージェントに付与するをご覧ください。

サービス エージェントのロール

Google Cloud の一部のアクションでは、ユーザーの代理でサービス エージェントがリソースを作成したり、アクセスしたりする必要があります。たとえば、Dataproc クラスタを作成する場合、クラスタを作成するには、Dataproc サービス エージェントが、プロジェクト内に Compute Engine インスタンスを作成する権限を持っている必要があります。

このアクセス権を得るためには、サービス エージェントに特定の IAM ロールが必要です。多くのプロジェクト レベルのサービス エージェントには、必要なロールが自動的に付与されます。通常、これらの自動付与されるロールの名前は、serviceAgent または ServiceAgent で終わります。他のサービス エージェントの場合、サービスが正常に機能するためにはロールを付与する必要があります。自動的にロールが付与されるサービス エージェントを確認するには、サービス エージェントのリファレンスをご覧ください。

サービスを使用する前に Google Cloud にサービス エージェントの作成を指示する場合は、通常であれば自動的に付与されるロールを、自らサービス エージェントに付与する必要があります。これは、ユーザーのリクエストで作成されるサービス エージェントにはロールが自動的に付与されないためです。これらのロールをサービス エージェントに付与しないと、一部のサービスが正常に機能しない可能性があります。これらのロールをサービス エージェントに付与する方法については、ロールを作成してサービス エージェントに付与するをご覧ください。

プライマリ サービス エージェント

サービス エージェント リファレンスでは、一部のサービス エージェントがプライマリ サービス エージェントとして識別されています。プライマリ サービス エージェントは、サービスのサービス エージェント作成をトリガーしたときにメールアドレスが返されるサービス エージェントです。

Google API サービス エージェント

プロジェクトの許可ポリシーでは、Google API サービス エージェントという名前のサービス アカウントが言及されることがよくあります。そのサービス アカウントのメールアドレスは project-number@cloudservices.gserviceaccount.com という形式になります。

このサービス アカウントは内部の Google プロセスを実行します。これには、プロジェクトに対する編集者ロール(roles/editor)が自動的に付与されます。

Google 管理のサービス アカウントのロール マネージャー

IAM の監査ログにサービス アカウント service-agent-manager@system.gserviceaccount.com が含まれることがあります。

このサービス アカウントは、サービス エージェントに付与されているロールを管理します。これは監査ログにのみ表示されます。

たとえば、新しい API を使用する場合、Google が新しいサービス エージェントを自動的に作成し、プロジェクトに対するロールを付与することがあります。このようにしてロールが付与されると、監査ログエントリが生成されます。これは、service-agent-manager@system.gserviceaccount.com がプロジェクトの許可ポリシーを設定したことを示します。

次のステップ

使ってみる

Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

無料で開始