Google Cloud のサービスアカウントとは?使い方・種類・ベストプラクティス

Google Cloud

2025.9.24

Topics

1. はじめに

こんにちは、reonoです。
最近は雨が良く降っており、秋に近づいているのを感じています。

さて、Google Cloud を使っていく上で、「サービスアカウント」は非常に重要な概念です。
この記事では、サービスアカウントの基本から種類、認証・管理方法、運用上の注意点までをまとめます。

以前、Shunが同様の内容でブログを公開していますので、合わせてご覧ください。
本記事では、Shunの内容を踏まえ、特に認証方法について AWS IAM との比較を交えながら紹介します。

関連記事
Google Cloud のサービスアカウントを解説!

2. サービスアカウントとは

  • サービスアカウントは、人間ではなくアプリケーションや VM 、その他 Google Cloud リソースなどが操作・認証するときに使う特殊なアカウントです。
  • 通常のユーザーアカウントとは異なり、ブラウザでログインしてコンソール操作をするためのアカウントではありません。
  • Google Cloud 内部で「このアプリ/この VM がどのリソースにアクセスできるか」を指定できます。
  • AWS における IAM ロールや システム用途での IAM ユーザーのようなものです。

3. 種類とその違い

Google Cloud のサービスアカウントにはいくつか種類があり、それぞれ性質や管理責任が異なります。

タイプ 作成者/管理者 用途/特徴
ユーザー管理のサービス アカウント ユーザーが自分で作成・管理 明示的に用途を定めてアプリ用などに割り当てる。 IAM ロールをユーザーが付与。
デフォルトのサービス アカウント Google Cloud サービスを有効にしたときなどに自動で作られる たとえば Compute Engine を使うときの VM にデフォルトで付属するものなど。ユーザーの責任での管理が必要。
サービス エージェント Google が作成・管理する Google Cloud の内部サービスがリソースにアクセスするために使われる。ユーザーが操作できないものも多い。

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

4. サービスアカウントの認証方法

サービスアカウントが Google Cloud のリソースを操作する際、認証を行う必要があります。
サービスアカウントの認証は以下いずれかの方法で行われます。

  • 有効期間の短い認証情報を取得する
  • サービス アカウント キーを使用して JSON Web Token (JWT) に署名し、アクセス トークンと交換する

有効期間の短い認証情報を取得する

AWS では sts で一時認証情報を取得するように Google Cloud のサービスアカウントでも短期間だけ使用可能な認証情報を取得します。
AWS IAM ロールと同等の機能を有して利用されます。

特徴

  • 多くの場合、認証情報の取得は自動的に行われる
  • 取得した認証情報は1時間で失効する
  • Service Account Credentials API を使用することで手動で認証情報の取得を行える

使用例

  • Google Cloud CLI 実行時に--impersonate-service-account <サービスアカウントのメールアドレス>を指定し、サービスアカウントの権限でコマンドを実行する
  • Compute Engine にサービスアカウントを割り当てし、Compute Engine 内のスクリプトやコマンドで Google Cloud サービスを操作する
  • Workload Identity 連携を構成しサービスアカウントを紐づけることで、Google Cloud 外のIdP(AWS、Azure、Active Directoryなど)の認証で Google Cloud サービスを操作する

サービス アカウント キーを使用して JSON Web Token (JWT) に署名し、アクセス トークンと交換する

AWS IAM ユーザーのアクセスキーと同等の機能を有して利用されます。

特徴

  • 公開鍵認証を使い有効期間の短いサービスアカウント認証情報を作成し、アクセストークンを取得する
  • 鍵を使用するため簡単に設定できるが、流出リスクが存在する

使用例

  • オンプレミスやローカル環境のアプリケーション、スクリプトから Google Cloud サービスを操作する

ユーザーがローカル環境から Google Cloud サービスを操作したい場合、gcloud auth loginapplication-default loginを使ってユーザー認証を行ってください。

参考:

5. 管理と運用のベストプラクティス

長期間運用して安全性と可用性を保つためのポイントです。

  • 最小権限の原則(Least Privilege):必要なリソースに対して必要最低限の IAM ロールを割り当てる。不要なアクセスを可能としない。
  • 命名規則/用途の明記:display name やアカウント名に何のためのものかを明記しておく。将来的に誰が/何が使っているかわからなくなることを防ぐ。
  • キーの管理とローテーション:ユーザ管理キーを使う場合は特に、定期的にローテーションし、古いキーは無効化または削除する。保管場所を安全にする。
  • 未使用アカウントの監査・削除:作ったが使われなくなったサービスアカウントやキーがないかを定期的に確認し、不要なら無効化または削除する。
  • アクセス権限の借用・役割の付与に注意:オーナーなどの強い権限を持つロールの借用先は制限する。

6. 注意すべき点

  • サービスアカウントのキーが流出すると、そのアカウントが持つ権限を悪意ある者に使われてしまうリスクがある
  • デフォルトのサービスアカウントを安易に多用するのは避けるべき。用途が特定されておらず、過剰な権限がついていることも多い
  • サービスアカウントやキーの IAM ポリシーや許可設定を定期的に見直さないと、肥大化やセキュリティホールの原因になる
  • サービスアカウントを削除すると、それを使っていたリソース(VM やジョブなど)が動かなくなることがあるので、影響範囲を把握してから操作する

7. まとめ

サービスアカウントは、Google Cloud のセキュリティと運用を支える重要な柱です。
今回紹介したベストプラクティスを守って安全に利用を進めていきましょう。

また、システム用途での Google Cloud のサービスアカウントは AWS IAM でいうところの IAM ユーザーと IAM ロール両方の性質を併せ持つので混乱しないように活用していってください。

NHN テコラスの採用情報はこちら

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

reono

2022年4月、NHNテコラスに新卒入社。大学時代は山に登ったり、インドに行ったりしてました。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら