View a markdown version of this page

ジョブ管理 API の使用 - AWS Snowball Edgeデベロッパーガイド

AWS Snowball Edgeは新規顧客には利用できなくなりました。新規のお客様は、オンライン転送AWS DataSync、安全な物理的な転送のためのAWSデータ転送ターミナル、またはAWSパートナーソリューションを検討する必要があります。エッジコンピューティングについては、AWS Outposts をご覧ください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ジョブ管理 API の使用

のジョブ管理 API AWS Snowball Edge は、HTTP (RFC 2616) に基づくネットワークプロトコルです。この RFC の詳細については、IETF ウェブサイトの「HTTP (RFC 2616)」を参照してください。ジョブ管理 API を呼び出すときは、ジョブを管理するAWS リージョンの、リージョン固有のジョブ管理 API エンドポイントに、HTTP リクエストを送信します。API は、HTTP リクエスト/応答本文に JSON (RFC 4627) ドキュメントを使用します。

注記

ジョブのリストまたはアドレスの説明のために米国リージョン内で作成された API コールは、そのアカウントに米国内のすべてのジョブまたはアドレスを返します。

Snowball Edge のジョブ管理 API は RPC モデルです。このモデルでは、オペレーションの固定のセットがあり、各オペレーションの構文は、事前に操作しなくてもクライアントに知られています。次では、理論上の RPC 表記で、オンライン上に表示されないオペレーション名を使用した、各 API オペレーションの説明をご覧いただけます。各オペレーションでは、トピックが HTTP リクエスト要素のマッピングを指定します。

リクエストのメソッド (GET、PUT、POST、DELETE) とリクエスト URI が一致するさまざまなパターンの組み合わせにより、所定のリクエストマップが定義されている、特定のジョブ管理オペレーション。オペレーションが PUT または POST の場合、Snowball Edge はリクエスト本文の Request-URI パスセグメント、クエリパラメータ、JSON オブジェクトから呼び出し引数を抽出します。

などのオペレーション名CreateJobはワイヤに表示されませんが、これらのオペレーション名はAWS Identity and Access Management(IAM) ポリシーで意味があります。オペレーション名は、コマンドラインツールおよびAWS SDK APIs の要素でコマンドに名前を付けるためにも使用されます。たとえば、AWS Command Line Interface(AWS CLI) コマンドは CreateJobオペレーションにcreate-jobマッピングされます。オペレーション名は、Snowball Edge API コールの CloudTrail ログにも表示されます。

AWS CLI呼び出し先のリージョンの指定などAWS CLI、 のインストールと設定の詳細については、AWS Command Line Interface「 ユーザーガイド」を参照してください。

注記

ジョブ管理 API は、AWS Snowball マネジメントコンソールで使用できるのと同じ機能、つまり Snowball Edge のジョブを作成および管理するためのプログラムインターフェイスを提供します。Snowball アプライアンスを使用してローカルにデータを転送するには、Snowball Edge クライアントまたは Snowball Edge 用 S3 SDK Adapter を使用します。詳細については、『AWS Snowball ユーザーガイド』の「Snowball を使ったデータ転送」を参照してください。

Snowball Edge を使用する場合は、Snowball Edge クライアントを使用してアプライアンスのロックを解除します。詳細については、『AWS Snowball 開発者ガイド』の「Snowball クライアントの使用」を参照してください。

API エンドポイント

API エンドポイントは、API コールのために HTTP URI でホストとして使用する Domain Name Service (DNS) 名です。これらの API エンドポイントはリージョン固有で、次の書式が使用されます。

snowball.aws-region.amazonaws.com

たとえば、米国西部 (オレゴン) リージョンの Snowball Edge API エンドポイントは次のとおりです。

snowball.us-west-2.amazonaws.com

Snowball Edge がサポートAWS リージョンする (ジョブを作成および管理できる) のリストについては、のAWS Import/Export「」を参照してくださいAWS 全般のリファレンス

リージョン固有の API エンドポイントは、API コールを行うときにアクセス可能な Snowball Edge リソースの範囲を定義します。たとえば、前述のエンドポイントを使用して ListJobs オペレーションを呼び出す際、アカウントで作成された米国西部 (オレゴン)リージョン内のジョブのリストを取得します。

API バージョン

コールに使用される API のバージョンは、リクエスト URI の最初のパスセグメントにより特定されます。この形式は ISO 8601 の日付になります。ドキュメントでは、API バージョン 2016-06-30 について説明されています。

API のアクセス許可ポリシーの参照

Snowball Edge のジョブ管理 API を使用してジョブを作成するには、次のポリシーが必要です。

ジョブを作成するためのロールの信頼ポリシー

ジョブ管理 API を使用してジョブを作成するには、以下の信頼ポリシーが必要です。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "importexport.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "AWSIE" } } } ] }
注記

信頼ポリシーの詳細については、IAM ユーザーガイドの「ロールの修正」を参照してください。

インポートジョブを作成するためのロールポリシー

インポートジョブを作成するには、以下のロールポリシーが必要です。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketPolicy", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "snowball:*" ], "Resource": [ "*" ] } ] }

エクスポートジョブを作成するためのロールポリシー

エクスポートジョブを作成するには、以下のロールポリシーが必要です。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "snowball:*" ], "Resource": [ "*" ] } ] }

ジョブ作成のための Amazon S3 バケットポリシープリンシパル

Snowball Edge で使用する Amazon S3 バケットには、引き受けたロールのロールセッション名を一覧表示する必要があるバケットポリシーがある場合があります。AWSImportExport-Validation を特定するポリシーでプリンシパルを指定する必要があります。次の Amazon S3 バケットポリシーはその方法の例を示しています。

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "AllowAWSSnowballToCreateJobs", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:role/rolename", "arn:aws:sts::111122223333:assumed-role/rolename/AWSImportExport-Validation", "arn:aws:iam::111122223333:root" ] }, "Action": "S3:*", "Resource": ["arn:aws:s3:::examplebucket/*"] } }

このポリシーの例では、NotPrincipal エレメント内で指定されているプリンシパルを除くすべてのプリンシパルによるアクセスを拒否します。NotPrincipal の使用方法の詳細については、IAM ユーザーガイドの「NotPrincipal」を参照してください。

注記

のジョブの場合AWS GovCloud (US)、Snowball Edge は引き受けたロールのロールセッション名AWSIEJobとして を使用します。

Snowball Edge と Snowball Edge の IAM ロールの作成

IAM ロールポリシーは、Amazon S3 バケットに対する読み取り/書き込み権限を付与して作成する必要があります。IAM ロールには Snowball Edge との信頼関係も必要です。信頼関係を持つことは、データのインポートとエクスポートのどちらを行うかに応じて、 が Snowball と Amazon S3 バケットにデータを書き込むAWSことができることを意味します。

でジョブを作成するとAWS Snow ファミリーマネジメントコンソール、必要な IAM ロールの作成は、 アクセス許可セクションのステップ 4 で行われます。これは自動プロセスです。Snowball Edge が引き受けることを許可する IAM ロールは、転送されたデータを持つ Snowball が到着した場合にのみ、バケットにデータを書き込むために使用されますAWS。このプロセスを以下の手順で示します。

インポートジョブ用の IAM ロールを作成するには
  1. にサインインAWS マネジメントコンソールし、https://console.aws.amazon.com/importexport/ でAWS Snowball Edgeコンソールを開きます。

  2. [ジョブの作成] を選択します。

  3. 最初のステップで、Amazon S3 へのインポートジョブの詳細を入力してから、[Next (次へ)] を選択します。

  4. 2 番目のステップでは、[Permission] で、[Create/Select IAM Role] を選択します。

    IAM マネジメントコンソールが開き、指定した Amazon S3 バケットにオブジェクトをコピーするためにAWSで使用する IAM ロール が表示されます。

  5. このページで詳細を確認し、[許可] を選択します。

    に戻ります。ここでAWS Snow ファミリーマネジメントコンソール、選択した IAM ロール ARN には、先ほど作成した IAM ロールの Amazon リソースネーム (ARN) が含まれます。

  6. [Next] (次へ) を選択して、 ロールの作成を終了します。

前述の手順により、データをインポート先となる Amazon S3 バケットへの書き込み権限を持つ IAM ロールが作成されます。作成する IAM ロールは、インポートジョブ用であるか、エクスポートジョブ用であるかによって、次のいずれかの構造になります。

インポートジョブ用の IAM ロール

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucketMultipartUploads" ], "Resource": "arn:aws:s3:::*" }, { "Effect": "Allow", "Action": [ "s3:GetBucketPolicy", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::*" } ] }

AWS KMSマネージドキーによるサーバー側の暗号化 (SSE-KMS) を使用してインポートジョブに関連付けられた Amazon S3 バケットを暗号化する場合は、IAM ロールに次のステートメントも追加する必要があります。

{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" }

エクスポートジョブ用の IAM ロール

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListBucket" ], "Resource": "arn:aws:s3:::*" } ] }

AWS KMSマネージドキーによるサーバー側の暗号化を使用してエクスポートジョブに関連付けられた Amazon S3 バケットを暗号化する場合は、IAM ロールに次のステートメントも追加する必要があります。

{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:region:account-id:key/key-id" }