HMAC 資格情報の使用
HMAC 資格情報は、認証を必要とする S3-compatible のツールおよびライブラリーで使用するためのアクセス・キーと秘密鍵のペアで構成されます。
HMAC 資格情報が定義されました
IBM Cloud® Object Storage API は、オブジェクトを読み書きするための REST ベースの API です。 認証と許可のために IBM Cloud® Identity and Access Management が使用され、アプリケーションを IBM Cloud に簡単にマイグレーションできるように S3 API のサブセットがサポートされています。
コンソールでの HMAC 資格情報の作成
ユーザーは、コンソールで資格情報を作成するときに Include HMAC Credential
を On
に切り替えることにより、 サービス資格情報 の一部として HMAC 資格情報のセットを作成できます。 図 1 は、「拡張オプション」を選択して
HMAC パラメーターを設定するオプションを示しています。

サービス資格情報が作成されると、HMAC 鍵が cos_hmac_keys
フィールドに組み込まれます。 その後、これらの HMAC 鍵はサービス ID と関連付けられ、サービス ID の役割に従って許可されるリソースまたは操作にアクセスするために使用できるようになります。
サービス資格情報の作成時に、役割に値 None
を指定することができます。 これにより、意図しない、または不要な IAM アクセス・ポリシーが作成されなくなります。 関連付けられたサービス ID のアクセス・ポリシーは、IAM コンソールまたは API を使用して管理する必要があります。
CLI を使用した HMAC 資格情報の作成
IBM Cloud® Object Storage CLI を使用して資格情報を作成することもできます。 この例を使用するには、事前に IBM Cloud Platform コマンド・ラインの指示 をインストールしておく必要があります。
ibmcloud resource service-key-create <key-name-without-spaces> Writer --instance-name "<instance name--use quotes if your instance name has spaces>" --parameters '{"HMAC":true}'
HMAC認証情報の例
生成されたキーの結果を保管したい場合は、例の最後に > file.skey
を付加します。 この命令セットの場合、cos_hmac_keys
ヘッダーと子キー、access_key_id
および secret_access_key
の存在が確認できれば十分です。
cos_hmac_keys:
access_key_id: 7exampledonotusea6440da12685eee02
secret_access_key: 8not8ed850cddbece407exampledonotuse43r2d2586
環境変数としての HMAC 資格情報の設定
資格情報を作成したら、それらを環境変数 (関係するオペレーティング・システムに固有の説明) として設定できます。 例えば、例 3 では、.bash_profile
スクリプトに、シェルの開始時にエクスポートされ、開発で使用される COS_HMAC_ACCESS_KEY_ID
と COS_HMAC_SECRET_ACCESS_KEY
が含まれています。
export COS_HMAC_ACCESS_KEY_ID="7exampledonotusea6440da12685eee02"
export COS_HMAC_SECRET_ACCESS_KEY="8not8ed850cddbece407exampledonotuse43r2d2586"
次のステップ
直接の REST API 呼び出しで使用する署名を作成するために HMAC 資格情報を使用する場合は、以下のように追加のヘッダーが必要な点に注意してください。
- すべての要求に、
x-amz-date
形式の日付が設定された%Y%m%dT%H%M%SZ
ヘッダーが必要です。 - ペイロードを持つリクエスト(オブジェクトのアップロード、複数のオブジェ クトの削除など)はすべて、ペイロード内容のSHA256ハッシュを持つ'
x-amz-content-sha256
ヘッダーを提供しなければならない。 - ACL (
public-read
以外) はサポートされません。
現在、S3 対応のすべてのツールがサポートされているわけではありません。 一部のツールは、バケット作成時に public-read
以外の ACL を設定しようとします。 これらのツールによるバケット作成は失敗する。 PUT bucket
リクエストがサポートされていない ACL エラーで失敗した場合、まず、IBM Cloud Object Storageで getting started に示したようにコンソールを使ってバケットを作成し、そのバケットにオブジェクトを読み書きするようにツールを設定する。 オブジェクト書き込みに対する ACL を設定するツールは、現在サポートされていません。