このページでは、プロジェクトのサービス アカウントに関連付けられたハッシュベースのメッセージ認証コード(HMAC)キーを作成、無効化、削除する方法を説明します。
始める前に
この機能を Cloud Storage で使用する前に、次の要件を満たす必要があります。
選択したプロジェクト内の HMAC キーを操作するための十分な権限が付与されている必要があります。
該当するプロジェクトを所有している場合は、必要な権限が付与されているはずです。
プロジェクトの
storage.hmacKeys
でプレフィックスが付けられた IAM 権限を付与されている必要があります。これらの権限を持つロール(Storage HMAC キー管理者など)を取得する手順については、IAM 権限の使用をご覧ください。
プロジェクトに、HMAC キーを作成する対象のサービス アカウントが作成されている必要があります。まだ作成されていない場合は、サービス アカウントの作成をご覧ください。
HMAC キー認証で
restrictAuthTypes
制約が無効になっている必要があります。制約を確認して無効にする方法については、組織のポリシーの作成と管理をご覧ください。
HMAC キーを作成する
サービス アカウントの HMAC キーを作成するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [設定] ページに移動します。
[相互運用性] タブを選択します。
[add_box サービス アカウント用にキーを作成] をクリックします。
HMAC キーを関連付けるサービス アカウントを選択します。
[鍵を作成] をクリックします。
失敗した Cloud Storage オペレーションの詳細なエラー情報を Google Cloud コンソールで確認する方法については、トラブルシューティングをご覧ください。
コマンドライン
hmac create
コマンドを使用します。
gcloud storage hmac create SERVICE_ACCOUNT_EMAIL
ここで、SERVICE_ACCOUNT_EMAIL
はサービス アカウントに関連付けられたメールアドレスです。例: service-7550275089395@my-pet-project.iam.gserviceaccount.com
成功した場合、レスポンスには accessId
と secret
の値を含む HMAC キーリソースが含まれます。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Terraform
Terraform リソースを使用して HMAC キーを作成できます。このサンプルには、サービス アカウントを作成するためのリソースも含まれています。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、POST
hmacKeys リクエストで JSON API を呼び出します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys?serviceAccountEmail=SERVICE_ACCOUNT_EMAIL"
ここで
PROJECT_IDENTIFIER
は、作成するキーに関連付けられたプロジェクトの ID または番号です。例:my-pet-project
SERVICE_ACCOUNT_EMAIL
は、サービス アカウントに関連付けられたメールアドレスです。例:service-7550275089395@my-pet-project.iam.gserviceaccount.com
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、POST
HMAC キーリクエストで XML API を呼び出します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=CreateAccessKey&UserName=SERVICE_ACCOUNT_EMAIL"
ここで、
SERVICE_ACCOUNT_EMAIL
はサービス アカウントに関連付けられたメールアドレスです。例:service-7550275089395@my-pet-project.iam.gserviceaccount.com
HMAC キーの情報を取得する
プロジェクトの HMAC キーを一覧表示し、キーに関する情報を取得するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [設定] ページに移動します。
[相互運用性] タブを選択します。
HMAC キーが関連付けられているサービス アカウントは、[サービス アカウントの HMAC] セクションの [サービス アカウントのアクセスキー] サブセクションに表示されます。
特定のサービス アカウントの名前をクリックすると、そのサービス アカウントに関連付けられた HMAC キーと、それらのキーのステータスが表示されます。
コマンドライン
hmac list
コマンドを使用して、プロジェクトの HMAC キーを一覧表示します。gcloud storage hmac list
成功した場合、コマンドは HMAC キーのアクセス ID のリストと各キーの状態、各キーに関連付けられているサービス アカウントを返します。
hmac describe
コマンドを使用して、特定のキーのメタデータを取得します。gcloud storage hmac describe KEY_ACCESS_ID
KEY_ACCESS_ID
は、目的のキーのアクセス ID です。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、プロジェクトに関連付けられている HMAC キーのリストを取得します。
次のサンプルは、特定の HMAC キーの情報を取得します。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、LIST
hmacKeys リクエストで JSON API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys"
ここで、
PROJECT_IDENTIFIER
は一覧を取得するキーに関連付けられたプロジェクトの ID または番号です。例:my-pet-project
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、GET
HMAC キーリクエストで XML API を呼び出します。curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=ListAccessKeys&UserName=SERVICE_ACCOUNT_EMAIL"
ここで、
SERVICE_ACCOUNT_EMAIL
はサービス アカウントに関連付けられたメールアドレスです。例:service-7550275089395@my-pet-project.iam.gserviceaccount.com
HMAC キーの状態を更新する
HMAC キーの状態をアクティブと非アクティブの間で切り替えるには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [設定] ページに移動します。
[相互運用性] タブを選択します。
[サービス アカウントのアクセスキー] サブセクションで、ステータスを更新する HMAC キーに関連付けられているサービス アカウントの名前をクリックします。
更新する鍵のステータスをクリックします。
キーの状態を「無効」から「有効」に変更する場合は、表示されたウィンドウで [無効にする] をクリックします。
キーの状態を「有効」から「無効」に変更する場合、追加の手順は必要ありません。
コマンドライン
hmac update
コマンドを使用します。
gcloud storage hmac update ACCESS_KEY_ID STATE
ここで
ACCESS_KEY_ID
は、更新する鍵に関連付けられたアクセス ID です。STATE
は--activate
か--deactivate
のどちらかです。
成功すると、更新された HMAC キーのメタデータが返されます。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
次のサンプルは、HMAC キーを無効にします。
次のサンプルは、HMAC キーを有効にします。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。次の情報が含まれる JSON ファイルを作成します。
{"state": "STATE"}
ここで、
STATE
は鍵の望ましい状態です。例:INACTIVE
cURL
を使用してPUT
hmacKeys リクエストで JSON API を呼び出します。curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
ここで
JSON_FILE_NAME
は、手順 2 で作成したファイルのパスです。PROJECT_IDENTIFIER
は、更新するキーに関連付けられたプロジェクトの ID または番号です。例:my-pet-project
ACCESS_KEY_ID
は、更新するキーに関連付けられたアクセス ID です。
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、POST
HMAC キーリクエストで XML API を呼び出します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=UpdateAccessKey&AccessKeyId=ACCESS_KEY_ID&Status=STATUS"
ここで
ACCESS_KEY_ID
は、更新するキーに関連付けられたアクセス ID です。STATUS
は、目的の鍵のステータスです。例:Inactive
HMAC キーの状態を変更すると、状態の変化が Cloud Storage システムを通じて反映されるまで最大で 3 分かかります。このため、HMAC キーを非アクティブにしてからキーを削除するまで、少なくとも 3 分待つ必要があります。
HMAC キーを削除する
HMAC キーを削除するには、キーが非アクティブ状態になっている必要があります。非アクティブな HMAC キーを削除するには:
コンソール
- Google Cloud コンソールで、Cloud Storage の [設定] ページに移動します。
[相互運用性] タブを選択します。
[サービス アカウントのアクセスキー] サブセクションで、削除する HMAC キーに関連付けられているサービス アカウントの名前をクリックします。
削除するキーに対応するゴミ箱アイコンをクリックします。
表示されたダイアログで、ウィンドウに表示されているアクセスキー ID の最初の 10 文字を入力します。
[削除] をクリックします。
コマンドライン
hmac delete
コマンドを使用します。
gcloud storage hmac delete ACCESS_KEY_ID
ここで、ACCESS_KEY_ID
は、削除する鍵に関連付けられたアクセス ID です。
成功すると、コマンドはレスポンスを返しません。
クライアント ライブラリ
C++
詳細については、Cloud Storage C++ API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
詳細については、Cloud Storage C# API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
詳細については、Cloud Storage Go API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
詳細については、Cloud Storage Java API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
詳細については、Cloud Storage Node.js API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
詳細については、Cloud Storage PHP API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
詳細については、Cloud Storage Python API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
Ruby
詳細については、Cloud Storage Ruby API のリファレンス ドキュメントをご覧ください。
Cloud Storage に対する認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。
REST API
JSON API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、DELETE
hmacKeys リクエストで JSON API を呼び出します。curl -X DELETE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/projects/PROJECT_IDENTIFIER/hmacKeys/ACCESS_KEY_ID"
ここで
PROJECT_IDENTIFIER
は、削除するキーに関連付けられたプロジェクトの ID または番号です。例:my-pet-project
ACCESS_KEY_ID
は、削除するキーに関連付けられたアクセス ID です。
XML API
gcloud CLI のインストールと初期化を行います。これにより、
Authorization
ヘッダーのアクセス トークンを生成できます。cURL
を使用して、POST
HMAC キーリクエストで XML API を呼び出します。curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/?Action=DeleteAccessKey&AccessKeyId=ACCESS_KEY_ID"
ここで、
ACCESS_KEY_ID
は、削除するキーに関連付けられたアクセス ID です。
次のステップ
- ユーザー アカウントの HMAC キーからサービス アカウントの HMAC キーへの移行ガイドラインに従う。
- 認証済みリクエストで HMAC キーを使用する。