HMAC キー

このページでは、Cloud Storage に対するリクエストの認証に使用できる、ハッシュベースのメッセージ認証コード(HMAC)キーについて説明します。サービス アカウントの HMAC キーを作成、管理する際のガイドについては、サービス アカウントの HMAC キーの管理をご覧ください。

概要

HMAC キーは一種の認証情報であり、Cloud Storage のサービス アカウントベータまたはユーザー アカウントに関連付けることができます。HMAC キーを使用して署名を作成すると、その署名が Cloud Storage に対するリクエストに組み込まれます。署名により、所定のリクエストが当該のユーザー アカウントまたはサービス アカウントで承認されたものであることが証明されます。

HMAC キーはアクセス ID とシークレットの 2 つで構成されます。アクセス ID とシークレットの両方が HMAC キーを一意に識別しますが、署名の作成に使用されるため、シークレットのほうが遥かに機密性が高くなります。

HMAC キーは次の場合に役立ちます。

  • 他のクラウド ストレージ プロバイダと Cloud Storage の間でデータを移動する場合。HMAC キーを使用すると、既存のコードを再利用して Cloud Storage にアクセスできます。

シークレットの保管

サービス アカウントに HMAC キーを作成すると、そのキーのシークレットが一度だけ提供されます。シークレットはそれに関連付けられているアクセス ID と一緒に安全に保管する必要があります。シークレットを紛失した場合、Google もそれを回収することはできません。したがって、リクエストの認証を続けるには、サービス アカウントの新しい HMAC キーを作成しなければなりません。

ユーザー アカウントに HMAC キーを作成する場合は、Google Cloud Platform Console でキーのシークレットを表示できます。それには、該当するユーザー アカウントで GCP Console にログインします。ユーザー アカウントに関連付けられているシークレットは、Cloud Storage の [設定] メニューで [相互運用] タブにあります。

制限事項

  • HMAC キーを使用できるのは、JSON API ではなく XML API に対してリクエストを送信する場合のみです。

  • サービス アカウントごとに設定できる HMAC キーは最大 5 つです。削除されたキーはこの上限に計上されません。

ユーザー アカウントの HMAC キーからの移行

通常は、ユーザー アカウントではなくサービス アカウントに HMAC キーを関連付けることをおすすめします。特に本番ワークロードでは、このオプションを使用してください。

  • サービス アカウントを使用した方が、管理上の監視が強化されます。また、個々のユーザーが保持するアカウントのプライバシーとセキュリティに対する影響もありません。

  • サービス アカウントを使用すれば、ユーザー アカウントへの依存に伴うサービス停止(たとえば、ユーザーがプロジェクトから抜けたり退社したりして、そのユーザー アカウントが無効になった場合)のリスクを軽減します。

現在ユーザー アカウントに関連付けられている HMAC キーを使用していて、サービス アカウントに移行する場合は、次の点に注意してください。

  • プロジェクトにサービス アカウントが設定されていて、そのサービス アカウントに HMAC キーが関連付けられている必要があります。

  • そのサービス アカウントには、Cloud Storage でアクションを実行するために必要な権限が付与されている必要があります。

    Storage Object Admin 役割にはオブジェクトを操作するための包括的な権限が含まれていますが、実行するアクションごとに別々のサービス アカウントを使用することをおすすめします。たとえば、読み取りに使用するサービス アカウントには Storage Object Viewer の役割を付与し、書き込みに使用する別のサービス アカウントには Storage Object Creator の役割を付与することができます。

  • サービス アカウントをテストして正常に動作することを確認してから、更新を本番に push してください。

  • 本番の処理がサービス アカウントの HMAC キーに移行したら、auth_method_countStackdriver 指標 を調べて、ユーザー アカウントに関連付けられた HMAC キーが使用されなくなっていることを確認します。

  • ユーザー アカウントの HMAC キーが使用されなくなっていることを確認したら、それらの HMAC キーを削除してください。これにより、不適切なデータアクセスのリスクが軽減されます。

  • ユーザー アカウントが Cloud Storage リソースへのアクセスに使用されなくなった場合は、そのアカウントに付与された Cloud Storage へのアクセス権を取り消します。

次のステップ