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