Google Cloud の認証情報: サービスアカウントキー、OAuth 2.0 クライアント ID、API キーの違いを理解する
2024.9.4
はじめに
こんにちは、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つのタイプがあります。
- ユーザー管理のサービスアカウント
- 一般的に「サービスアカウント」と呼ばれるのは、このタイプです。Google Cloud リソースに権限を付与する際に作成されます。
- デフォルトのサービスアカウント
- 特定のサービスの Google Cloud API を有効にすると作成されるサービスアカウントです。ただし、ユーザー管理となります。
- 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に関するお役立ち情報を配信中!
Follow @twitterGoogle Cloud11冠、2024 AWS All Cert、ビール検定1冠
Recommends
こちらもおすすめ
-
Google Cloud のサービスアカウントを解説!
2024.9.13
-
Oktaがあるとすごく助かる人たちってどんな人たち?
2024.2.29
-
Okta導入物語(2)~テンプレートとSAML~
2024.4.1
-
こんにちは Okta
2024.2.13
Special Topics
注目記事はこちら
データ分析入門
これから始めるBigQuery基礎知識
2024.02.28
AWSの料金が 10 %割引になる!
『AWSの請求代行リセールサービス』
2024.07.16