翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Storage Gateway の API リファレンス
コンソールの使用に加えて、AWS Storage Gateway API を使用してゲートウェイをプログラミングで設定し、管理できます。このセクションでは、AWS Storage Gateway のオペレーション、認証のための署名要求、エラー処理について説明します。Storage Gateway で使用可能なリージョンとエンドポイントの詳細については、「」を参照してください。AWS Storage GatewayエンドポイントとクォータのAWS全般のリファレンス。
注記
また、 を使用することもできますAWSStorage Gateway でアプリケーションを開発するときの SDK。-AWSSDK for Java、.NET、PHP は、基盤となるStorage Gateway API をラップして、プログラミング作業を簡素化します。SDK ライブラリのダウンロードについては、「サンプルコードライブラリ
AWS Storage Gateway必須リクエストヘッダー
このセクションでは、すべての POST リクエストで送信する必要がある必須のヘッダーについて説明します。AWS Storage Gateway。HTTP ヘッダーでは、呼び出すオペレーション、リクエストの日付、リクエストの送信者として認可されていることを示す情報など、リクエストに関する重要な情報を特定します。ヘッダーは大文字と小文字を区別されず、ヘッダーの順序は重要ではありません。
次の例では、ActivateGateway オペレーションで使用されるヘッダーを示します。
POST / HTTP/1.1 Host: storagegateway.us-east-2.amazonaws.com Content-Type: application/x-amz-json-1.1 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120425/us-east-2/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=9cd5a3584d1d67d57e61f120f35102d6b3649066abdd4bf4bbcf05bd9f2f8fe2 x-amz-date: 20120912T120000Z x-amz-target: StorageGateway_20120630.ActivateGateway
次に示すのは、に対する POST リクエストに含める必要があるヘッダーです。AWS Storage Gateway。次に示す「x-amz」で始まるヘッダーは次のとおりです。AWS固有ヘッダー。それ以外のヘッダーはすべて、HTTP トランザクションで使用される共通のヘッダーです。
ヘッダー | 説明 |
---|---|
Authorization |
認証ヘッダーには、有効にするリクエストに関するいくつかの情報が含まれています。AWS Storage Gatewayを使用して、リクエストがリクエスタに対して有効なアクションかどうかを判別します。このヘッダーの形式は次のとおりです (改行は読みやすくするために追加されています)。
この構文では、YourAccessKey、年、月、日 (yyyymmdd)、リージョン、および CalculatedSignature が指定されています。認証ヘッダーの形式は、AWSV4 署名プロセス。署名の詳細については、トピック リクエストへの署名 を参照してください。 |
Content-Type |
を使用する
|
Host |
ホストヘッダーを使用して、AWS Storage Gatewayリクエストを送信するエンドポイント。たとえば、
|
x-amz-date |
HTTP
|
x-amz-target |
このヘッダーでは、API のバージョンおよびリクエストするオペレーションを指定します。ターゲットヘッダーの値を作成するには、API のバージョンと API の名前を次のような形式で連結します。
-operationName値 (例:「ActivateGateway」など) は、API リストにあります。Storage Gateway の API リファレンス。 |
リクエストへの署名
Storage Gateway では、リクエストに署名することで、送信するすべてのリクエストを認証する必要があります。リクエストに署名するには、暗号化ハッシュ関数を使用してデジタル署名を計算します。暗号化ハッシュは、入力データから一意のハッシュ値生成して返す関数です。ハッシュ関数に渡される入力データとしては、リクエストのテキスト、およびシークレットアクセスキーが該当します。ハッシュ関数から返されるハッシュ値をリクエストに署名として含めます。署名は、リクエストの Authorization
ヘッダーの一部です。
Storage Gateway は、リクエストを受け取ると、リクエストの署名に使用されたものと同じハッシュ関数と入力を使用して署名を再計算します。再計算された署名とリクエスト内の署名が一致した場合、Storage Gateway はリクエストを処理します。それ以外の場合、リクエストは拒否されます。
Storage Gateway は認証をサポートしていますAWS署名バージョン 4。署名の計算プロセスは 3 つのタスクに分けることができます。
-
HTTP リクエストを正規形式に変換します。正規形式を使用する必要がある理由は、送信した署名と比較するために署名を再計算するときに正規形式が使用されるので、Storage Gateway で同じ正規形式を使用する必要があります。
-
暗号化ハッシュ関数への入力値の 1 つとして使用する文字列を作成します。署名文字列と呼ばれる文字列は、ハッシュアルゴリズムの名前、要求日付、認証情報スコープの文字列、および前のタスクで正規化されたリクエストを結合したものです。認証情報スコープの文字列自体は、日付、リージョン、およびサービス情報を結合したものです。
-
2 つの入力文字列 (署名文字列と派生キー) を受け付ける暗号化ハッシュ関数を使用して、リクエストの署名を作成します。シークレットアクセスキーから開始し、認証情報スコープの文字列を使用して一連のハッシュベースのメッセージ認証コード (HMAC) を作成することで、派生キーが計算されます。
署名の計算例
次の例で、ListGateways の署名を作成する詳細な手順を示します。実際の署名計算方法を確認するときに、この例を参考にしてください。その他の参考計算例については、アマゾン ウェブ サービス用語集の「Signature Version 4 Test Suite」を参照してください。
例では、次のように想定しています。
-
リクエストのタイムスタンプは「Mon, 10 Sep 2012 00:00:00" GMT」です。
-
エンドポイントは、米国東部 (オハイオ) リージョンです。
リクエストの一般的な構文 (JSON の本体を含む) は次のとおりです。
POST / HTTP/1.1 Host: storagegateway.us-east-2.amazonaws.com x-amz-Date: 20120910T000000Z Authorization:
SignatureToBeCalculated
Content-type: application/x-amz-json-1.1 x-amz-target: StorageGateway_20120630.ListGateways {}
POST / content-type:application/x-amz-json-1.1 host:storagegateway.us-east-2.amazonaws.com x-amz-date:20120910T000000Z x-amz-target:StorageGateway_20120630.ListGateways content-type;host;x-amz-date;x-amz-target 44136fa355b3678a1146ad16f7e8649e94fb4fc21fe77e8310c060f61caaff8a
正規リクエストの最後の行はリクエストボディのハッシュです。また、正規リクエストの 3 行目が空であることに注意してください。これは、この API(またはStorage Gateway API)のクエリパラメータがないためです。
AWS4-HMAC-SHA256 20120910T000000Z 20120910/us-east-2/storagegateway/aws4_request 92c0effa6f9224ac752ca179a04cecbede3038b0959666a8160ab452c9e51b3e
署名する文字列の最初の行はアルゴリズム、2 行目はタイムスタンプ、3 行目は認証情報スコープ、最後の行はタスク 1 で作成した正規リクエストのハッシュです。
derived key = HMAC(HMAC(HMAC(HMAC("AWS4" + YourSecretAccessKey,"20120910"),"us-east-2"),"storagegateway"),"aws4_request")
シークレットアクセスキー wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY が使用されている場合、計算された署名は次のようになります。
6d4c40b8f2257534dbdca9f326f147a0a7a419b63aff349d9d9c737c9a0f4c81
最後のステップは、Authorization
ヘッダーの構築です。デモンストレーションのアクセスキー AKAKIAIOSFODNN7EXAMPLE AMPLE の場合、ヘッダーは次のとおりです (読みやすいように改行しています)。
Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120910/us-east-2/storagegateway/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-target, Signature=6d4c40b8f2257534dbdca9f326f147a0a7a419b63aff349d9d9c737c9a0f4c81
エラーレスポンス
このセクションでは、AWS Storage Gateway エラーに関するリファレンス情報を提供します。これらのエラーは、エラー例外とオペレーションエラーコードを表しています。例えば、エラー例外 InvalidSignatureException
は、リクエスト署名に問題がある場合に、API レスポンスによって返されます。ただし、オペレーションエラーコード ActivationKeyInvalid
は、ActivateGateway API に対してのみ返されます。
エラーの種類に応じて、Storage Gateway は例外だけを返すことも、例外とオペレーションエラーコードの両方を返すこともあります。エラーレスポンスの例を エラーレスポンス に示します。
例外
次の表は、AWS Storage Gateway API の例外を表示しています。AWS Storage Gateway オペレーションがエラーレスポンスを返す場合、レスポンス本文には、次の例外のいずれかが含まれます。InternalServerError
と InvalidGatewayRequestException
は、特定のオペレーションエラーコードを表示するオペレーションエラーコード オペレーションエラーコード メッセージの 1 つを返します。
Exception | メッセージ | HTTP ステータスコード |
---|---|---|
IncompleteSignatureException |
指定された署名は不完全です。 | 400 Bad Request |
InternalFailure |
リクエストの処理は、不明なエラー、例外、または失敗により実行できませんでした。 | 500 Internal Server Error |
InternalServerError |
オペレーションエラーコードメッセージの 1 つ オペレーションエラーコード. | 500 Internal Server Error |
InvalidAction |
要求されたアクションまたはオペレーションは無効です。 | 400 Bad Request |
InvalidClientTokenId |
X.509 証明書AWS指定されたアクセスキー ID は、レコードに存在しません。 | 403 Forbidden |
InvalidGatewayRequestException |
オペレーションエラーコードのオペレーションエラーコードメッセージの 1 つ。 | 400 Bad Request |
InvalidSignatureException |
計算したリクエスト署名が、指定された署名と一致しません。確認方法AWSアクセスキーと署名方法。 | 400 Bad Request |
MissingAction |
リクエストに、アクションまたはオペレーションのパラメータが含まれていません。 | 400 Bad Request |
MissingAuthenticationToken |
リクエストには、有効な (登録された) いずれか一方が含まれている必要があります。AWSアクセスキー ID または X.509 証明書。 | 403 Forbidden |
RequestExpired |
リクエストの有効時間、またはリクエスト時間が過ぎています (どちらも 15 分間のパディング)。もしくは、リクエスト時間の発生が 15 分以上先です。 | 400 Bad Request |
SerializationException |
シリアル化の実行中にエラーが発生しました。JSON ペイロードが正しく形成されていることを確認してください。 | 400 Bad Request |
ServiceUnavailable |
リクエストは、サーバーの一時的障害のために実行に失敗しました。 | 503 Service Unavailable |
SubscriptionRequiredException |
-AWSサービスを利用するためには、アクセスキー ID を取得する必要があります。 | 400 Bad Request |
ThrottlingException |
速度を超過しました。 | 400 Bad Request |
UnknownOperationException |
不明のオペレーションが指定されました。有効なオペレーションの一覧を Storage Gateway での操作 に示します。 | 400 Bad Request |
UnrecognizedClientException |
リクエストに含まれているセキュリティトークンが無効です。 | 400 Bad Request |
ValidationException |
入力パラメータの値が正しくないか、範囲外です。 | 400 Bad Request |
オペレーションエラーコード
次のテーブルに、AWS Storage Gateway オペレーションエラーコードと、そのコードを返す API の対応を示します。すべての操作エラーコードは、2 つの一般的な例外のいずれかとともに返されます。InternalServerError
そしてInvalidGatewayRequestException
—で説明しています。例外。
オペレーションエラーコード | メッセージ | このエラーコードを返すオペレーション |
---|---|---|
ActivationKeyExpired |
指定されたアクティベーションキーの有効期限が切れました。 | ActivateGateway |
ActivationKeyInvalid |
指定されたアクティベーションキーは無効です。 | ActivateGateway |
ActivationKeyNotFound |
指定されたアクティベーションキーは見つかりませんでした。 | ActivateGateway |
BandwidthThrottleScheduleNotFound |
指定された帯域幅スロットルは見つかりませんでした。 | DeleteBandwidthRateLimit |
CannotExportSnapshot |
指定されたスナップショットはエクスポートできません。 | |
InitiatorNotFound |
指定されたイニシエータは見つかりませんでした。 | DeleteChapCredentials |
DiskAlreadyAllocated |
指定されたディスクは、既に割り当てられています。 | |
DiskDoesNotExist |
指定されたディスクは存在しません。 | |
DiskSizeNotGigAligned |
指定されたディスクは、ギガバイトに対応していません。 | |
DiskSizeGreaterThanVolumeMaxSize |
指定されたディスクサイズは、最大ボリュームサイズを超えています。 | CreateStorediSCSIVolume |
DiskSizeLessThanVolumeSize |
指定されたディスクサイズは、ボリュームサイズ未満です。 | CreateStorediSCSIVolume |
DuplicateCertificateInfo |
指定された証明書情報が重複しています。 | ActivateGateway |
ファイルシステムの関連付けエンドポイント構成の競合 |
既存のファイルシステムの関連付けエンドポイント構成は、指定された構成と競合しています。 |
ファイルシステムを関連付ける |
ファイルシステムの関連付けエンドポイント IP アドレスはすでに使用中です |
指定されたエンドポイント IP アドレスはすでに使用されています。 |
ファイルシステムを関連付ける |
ファイルシステムの関連付けエンドポイントヒントアドレスがありません |
ファイルシステムの関連付けエンドポイント IP アドレスがありません。 |
ファイルシステムを関連付ける |
ファイルシステムの関連付けが見つかりません |
指定されたファイルシステムの関連付けは、見つかりませんでした。 |
|
ファイルシステムが見つかりません |
指定されたファイルシステムは、見つかりませんでした。 |
ファイルシステムを関連付ける |
GatewayInternalError |
ゲートウェイ内部エラーが発生しました。 | |
GatewayNotConnected |
指定されたゲートウェイは、接続されていません。 | |
GatewayNotFound |
指定されたゲートウェイは、見つかりませんでした。 | |
GatewayProxyNetworkConnectionBusy |
指定されたゲートウェイプロキシネットワーク接続はビジーです。 | |
InternalError |
内部エラーが発生しました。 | |
InvalidParameters |
指定されたリクエストに、無効なパラメータが含まれています。 | |
LocalStorageLimitExceeded |
ローカルストレージの上限を超えました。 | |
LunInvalid |
指定された LUN は無効です。 | CreateStorediSCSIVolume |
MaximumVolumeCountExceeded |
最大ボリューム数を超えました。 | |
NetworkConfigurationChanged |
ゲートウェイのネットワーク構成が変更されました。 | |
NotSupported |
指定されたオペレーションは、サポートされていません。 | |
OutdatedGateway |
指定されたゲートウェイは、最新のものではありません。 | ActivateGateway |
SnapshotInProgressException |
指定されたスナップショットは処理中です。 | DeleteVolume |
SnapshotIdInvalid |
指定されたスナップショットは無効です。 | |
StagingAreaFull |
ステージングエリアが満杯です。 | |
TargetAlreadyExists |
指定されたターゲットは、既に存在しています。 | |
TargetInvalid |
指定されたターゲットは無効です。 | |
TargetNotFound |
指定されたターゲットは、見つかりませんでした。 | |
UnsupportedOperationForGatewayType |
指定されたオペレーションは、ゲートウェイタイプに対して有効ではありません。 | |
VolumeAlreadyExists |
指定されたボリュームは、既に存在しています。 | |
VolumeIdInvalid |
指定されたボリュームは無効です。 | DeleteVolume |
VolumeInUse |
指定されたボリュームは、既に使われています。 | DeleteVolume |
VolumeNotFound |
指定されたボリュームは、見つかりませんでした。 | |
VolumeNotReady |
指定されたボリュームは、準備できていません。 |
エラーレスポンス
エラーが発生した場合、レスポンスヘッダー情報には、以下の項目が含まれています。
-
コンテンツタイプ: application/x-amz-json-1.1
-
適切な
4xx
または5xx
HTTP ステータスコード
エラーレスポンスの本文には、発生したエラーに関する情報が含まれています。次のサンプルエラーは、すべてのエラーレスポンスに共通する、レスポンスエレメントの出力構文を示します。
{ "__type": "String", "message": "String", "error": { "errorCode": "String", "errorDetails": "String" } }
次の表では、前述の構文で表示される JSON エラーレスポンスフィールドを説明します。
- __type
-
例外 からの例外の 1 つ。
Type: 文字列
- error
-
API 固有のエラー詳細が含まれています。特定の API に固有ではない一般的なエラーの場合、このようなエラー情報は表示されません。
Type: Collection
- errorCode
-
オペレーションエラーコードの 1 つ。
Type: 文字列
- errorDetails
-
このフィールドは、API の現在のバージョンでは使われていません。
Type: 文字列
- メッセージ
-
オペレーションエラーコードメッセージの 1 つ .
Type: 文字列
エラーレスポンスの例
DescribeStorediSCSIVolumes API を使用して、存在しないゲートウェイ ARN リクエスト入力を指定した場合、次の JSON 本文が返されます。
{ "__type": "InvalidGatewayRequestException", "message": "The specified volume was not found.", "error": { "errorCode": "VolumeNotFound" } }
次に示す JSON 本文は、Storage Gateway がリクエストで送信された署名と一致しない場合、返されます。
{ "__type": "InvalidSignatureException", "message": "The request signature we calculated does not match the signature you provided." }
Storage Gateway での操作
Storage Gateway オペレーションのリストについては、「」を参照してください。アクションのAWS Storage GatewayAPI リファレンス。