このページでは、Cloud Storage XML API に対するリクエストの認証に使用できる、ハッシュベースのメッセージ認証コード(HMAC)キーについて説明します。HMAC キーを使用すると、既存のコードを再利用して Cloud Storage にアクセスできるため、他のクラウド ストレージ プロバイダと Cloud Storage の間でデータを移動する場合に便利です。
概要
HMAC キーは、アカウント(通常はサービス アカウント)に関連付けられた認証情報の一種です。HMAC キーを使用し、HMAC-SHA256 署名アルゴリズムを使用して署名を作成します。作成した署名は、Cloud Storage XML API に対するリクエストに含まれます。署名は、指定されたリクエストが HMAC キーに関連付けられているアカウントによって承認されていることを示します。
HMAC キーはアクセス ID とシークレットの 2 つで構成されます。
アクセス ID: 特定のアカウントに関連付けられた英数字の文字列。
サービス アカウントに関連付けられている場合、この文字列の長さは 61 文字です。
アクセス ID の例を次に示します。
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
シークレット: 40 文字からなる Base-64 でエンコードされた文字列で、特定のアクセス ID に関連付けられています。シークレットは、自分と Cloud Storage だけが知っている事前共有キーです。シークレットを使用して、認証プロセスの一環として署名を作成します。シークレットの例は次のとおりです。
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
アクセス ID とシークレットの両方が HMAC キーを一意に識別しますが、署名の作成に使用されるため、シークレットのほうが遥かに機密性が高くなります。
リソースに対して restrictAuthTypes
制約を有効にして、HMAC キーで署名されたリクエストのアクセスを制限することもできます。
シークレットの保管
サービス アカウントに HMAC キーを作成すると、そのキーのシークレットが一度だけ提供されます。シークレットはそれに関連付けられているアクセス ID と一緒に安全に保管する必要があります。シークレットを紛失した場合、 Trusted Cloud by S3NSもそれを回収することはできません。したがって、リクエストの認証を続けるには、サービス アカウントの新しい HMAC キーを作成しなければなりません。
シークレットを保管するためのベスト プラクティス
HMAC キー シークレットを共有しないでください。HMAC キー シークレットは、アクセス認証情報と同様に扱う必要があります。
セキュリティ保護のため、鍵のローテーションの一環として定期的に鍵を保存する必要があります。
他の人が自分の HMAC キーを使用していると思われる場合は、当該の HMAC キーを直ちに削除して新しいキーを作成してください。
HMAC キーを変更する場合は、新しい HMAC キーでコードを更新してから、古いキーを削除してください。削除された HMAC キーはすぐに無効になり、復元できません。
制限事項
HMAC キーを使用できるのは、JSON API ではなく XML API に対してリクエストを送信する場合のみです。
サービス アカウントごとに設定できる HMAC キーは最大 10 個です。削除されたキーはこの上限に計上されません。
作成後、サービス アカウントの HMAC キーが使用可能になるまでに最大で 60 秒かかります。サービス アカウントを削除した後、それに属する HMAC キーは引き続き最大 5 分間機能します。逆に、HMAC キーを所有するサービス アカウントの削除を取り消すと、HMAC キーが再び使用可能になるまでに最大で 5 分かかることがあります。
リソースに
restrictAuthTypes
制約を有効にすると、そのリソース内の指定されたアカウント タイプに HMAC キーを作成または有効化できなくなります。