Google Cloud の認証情報: サービスアカウントキー、OAuth 2.0 クライアント ID、API キーの違いを理解する

Google Cloud

2024.9.4

Topics

はじめに

こんにちは、Shunです!

Google Cloud を利用する上で、様々な認証情報の設定が必要になりますよね。
設定を進めていく中で、「各認証情報の違いは何だろう?」と疑問に思う方もいるのではないでしょうか?

この記事では、Google Cloud APIs の認証情報として使われるサービスアカウントキー、OAuth 2.0 クライアント ID、API キーの違いについて解説していきます。
それぞれの認証情報の特徴を理解することで、適切な認証方法を選択できるようになりましょう!

各認証のイメージ

早速ですが、各認証情報を表にすると以下のようになります。

認証情報 プリンシパル ユースケース
サービスアカウントキー サービスアカウント GCEなどのリソースからのアクセス
OAuth 2.0 クライアント ID ユーザーアカウント 個人データへのアクセス
API キー 匿名 公開データへのアクセス

プリンシパルとは、認証情報を使用する人やシステムのことです。つまり、誰が(または何が)認証情報を用いて Google Cloud にアクセスしようとしているのかを表すものです。

以下では、各認証情報を詳しく見ていきましょう。

サービスアカウントキー

サービスアカウントとは?

サービスアカウントは、ユーザーではなく、アプリケーションや Compute Engine インスタンスなどのコンピューティング ワークロードが使用する特別なアカウントです。ユーザーアカウントとは異なり、Google Cloud Console へのアクセスは用意されていません。

サービスアカウントは、アカウント固有のメールアドレスで識別され、GCE などのリソースが Google Cloud にアクセスするために使用されます。

サービスアカウントキーとは?

サービスアカウントキーとは、サービスアカウントが Google Cloud にアクセスするための認証情報です。サービスアカウントキーは、JSON ファイルとして生成され、秘密鍵を含んでいます。

サービスアカウントキーを使用する際は、以下の点に注意が必要です。

  • サービスアカウントキーは機密情報なので、安全な場所に保管する
  • サービスアカウントキーは、必要最低限の権限を持つように設定する
  • 不要になったサービスアカウントキーは、削除する

サービスアカウントの種類

サービスアカウントには、以下の3つのタイプがあります。

  1. ユーザー管理のサービスアカウント
    • 一般的に「サービスアカウント」と呼ばれるのは、このタイプです。Google Cloud リソースに権限を付与する際に作成されます。
  2. デフォルトのサービスアカウント
    • 特定のサービスの Google Cloud API を有効にすると作成されるサービスアカウントです。ただし、ユーザー管理となります。
  3. Google 管理のサービスアカウント
    • サービスが各リソースにアクセスするために使用するサービスアカウントです。Google Cloud は、様々なサービスがユーザーの認識しない箇所で繋がっています。それらのサービスの認証を通すために使用されます。

参考: サービス アカウント認証情報

OAuth 2.0 クライアント ID

OAuth 2.0 とは?

OAuth 2.0 は、ウェブサイトやアプリケーションが、ユーザーに代わって他のウェブアプリがホストしているリソースにアクセスすることを可能にする標準規格です。

参考: OAuth 2.0とは?

OAuth 2.0 クライアント ID

Google Cloud では、OAuth 2.0 認証は Google のユーザーアカウントを使用します。クライアント ID は、Google の OAuth サーバーで個々のアプリケーションを識別するために使用されます。
OAuth 2.0 クライアント ID は、Identity-Aware Proxy (IAP) を使用する場合などに用いられます。

参考: OAuth 2.0 を使用して Google API にアクセスする

API キー

API キーは、プリンシパルを識別せず、認可情報も提供しない認証情報です。

API キーは、課金と割り当てのために、リクエストを Google Cloud プロジェクトに関連付けます。API キーは呼び出し元を特定しないため、一般公開のデータやリソースへアクセスする際によく使用されます。
出典: API キーの概要

ただ、ほとんどの Google Cloud API は API キーをサポートしていないので、使用する API が API キーをサポートしているかを確認してから API キーを発行しましょう。

API キーを使用する際は、以下の点に注意が必要です。

  • API キーは、公開しないようにする
  • API キーは、必要最低限の権限を持つように設定する
  • 不要になった API キーは、削除する。

参考: API キーを使用して認証する

さいごに

この記事では、Google Cloud の3種類の認証情報について解説しました。

認証情報 プリンシパル ユースケース
サービスアカウントキー サービスアカウント GCEなどのリソースからのアクセス
OAuth 2.0 クライアント ID ユーザーアカウント 個人データへのアクセス
API キー 匿名 公開データへのアクセス

これらの認証情報の特性を理解することで、適切な認証方法を選択できるようになり、Google Cloud をより安全に、効率的に利用できるようになります。
Google Cloud では、認証情報は「API とサービス」で一覧を確認することができます。

Google Cloud 上で一番利用されるサービスアカウントについては、別途詳細に解説する予定です。

最後までお読みいただきありがとうございました!

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

Shun

週8バスケしたいです。Google Cloud11冠、2024 AWS All Cert

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら