以下の内容はhttps://uga-box.hatenablog.com/entry/2024/09/16/000000より取得しました。


【GCS】GCSにアクセスするためのHMAC鍵の作成と、サービスアカウントを作成してロールを与えることの違い

Google Cloud Storage(GCS)にアクセスする際に使用できる方法として、「HMAC鍵の作成」と「サービスアカウントの作成とロールの付与」があることがわかったが、違いがわからなかったので調べた

1. HMAC鍵の作成

HMAC(Hash-based Message Authentication Code)鍵は、Amazon S3互換のAPIやGCSに対してプログラムから直接アクセスする際に使用される

主に以下の特徴がある

  • 使用目的: 主にプログラムによる署名付きリクエストの認証に使用され、S3互換のAPIを利用する場面で役立つ
  • アクセスタイプ: 対象のプロジェクトやバケットに対する直接のアクセス権限を持つ。クライアントがHMAC鍵を使ってリクエストを行う際、リクエストに対して認証情報を含めることで、GCSのリソースにアクセスする
  • 柔軟性: APIキーやプライベートアクセス用の認証に特化している。特にS3互換のツールやプラットフォームを使っている場合にはHMACが推奨される
  • セキュリティの管理: HMAC鍵はAPIキーのようなものであり、管理が簡単だがアクセス権を細かく制御するのは難しい

2. サービスアカウントの作成とロールの付与

サービスアカウントは、Google Cloud上のリソースに対して認証・認可を行うために使われる

これを使って、GCSや他のGoogle Cloudリソースにアクセスする権限を与えることができる

  • 使用目的: より柔軟かつ詳細なアクセス権限の制御が必要な場合に使用される。たとえば、サービスアカウントに対して特定のバケットにのみアクセスできるように権限を与えることができる
  • アクセスタイプ: IAM(Identity and Access Management)を使って、プロジェクトやリソースに対して非常に細かい制御を行うことが可能。ロール(役割)を付与することで、そのアカウントができる操作を制限することができる
  • 柔軟性: アクセス権限を細かく設定できるため、セキュリティ面で強力。GCP内の他のリソースに対しても統一された認証システムを使えるため、シームレスにアクセスを管理できる
  • セキュリティの管理: サービスアカウントには詳細なIAMロールを割り当てることで、必要な最小限のアクセス権限を付与する「最小権限の原則」を守ることができる。また、鍵はJSON形式のキーとして生成され、必要に応じて削除やローテーションが可能

大きな違い

  • 認証方法: HMAC鍵はプログラムによる署名付きリクエストに使用され、S3互換のAPIと互換性がある。サービスアカウントは、Google Cloud全体で広く使われるIAMをベースにした認証・認可の仕組みを利用する
  • アクセスの制御: HMAC鍵は柔軟性に欠け、詳細なアクセス制御が難しい一方、サービスアカウントはIAMロールを使ってきめ細かくアクセスを制御できる
  • 適用範囲: HMAC鍵は主にストレージAPIに対するアクセス用だが、サービスアカウントはGCSを含むさまざまなGCPリソースへのアクセスに対応できる



以上の内容はhttps://uga-box.hatenablog.com/entry/2024/09/16/000000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14