チュートリアル: オンプレミスストレージから別の Amazon S3 にデータを転送するAWS アカウント - AWS DataSync

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

チュートリアル: オンプレミスストレージから別の Amazon S3 にデータを転送するAWS アカウント

メトリックを使用しますAWS DataSyncオンプレミスのストレージでは、通常、データをAWS同じストレージサービスに属するストレージサービスAWS アカウントとして DataSync エージェント。ただし、別のアカウントに関連付けられている Amazon S3 バケットにデータを転送する必要がある場合があります。

重要

をまたがるデータのコピーAWS アカウントこのチュートリアルのメソッドを使用することにより、Amazon S3 が DataSync ロケーション

概要

このチュートリアルでは、その方法を説明します。AWS Identity and Access Management(IAM) とAWS Command Line Interface(AWS CLI) の作成を手伝ってくれる DataSync オンプレミスストレージから別の S3 バケットにデータを転送するタスクAWS アカウント。

このようなシナリオは次のようになります。

  • アカウント A: -AWS アカウントネットワークリソースの管理に使用します。アクティブ化するエンドポイント DataSync とのエージェントもこのアカウントに属します。

    注記

    このチュートリアルの手順は、エンドポイントの種類を問わずでエージェントをアクティブ化することを確認します。

  • アカウント B: -AWS アカウントデータのコピー先となる S3 バケットの場合。

このシナリオを以下に図表で示します。


                例から始めることができます DataSync オンプレミスのストレージシステムからインターネットにAWS。データは 1 つに最初に転送されます。AWS アカウント(アカウント A)、最終的に別のバケットの Amazon S3 バケットにする前にAWS アカウント(アカウント B)。

前提条件

クロスアカウント転送を容易にするための IAM 作業を開始する前に、すでに実行している場合は、次の操作を行います。いない:

  1. ネットワークを設定するオンプレミスのストレージシステムがAWS。

  2. のデプロイとアクティベート DataSync エージェントアカウント A

  3. の作成 DataSync 送信元の場所データをコピーするオンプレミスストレージシステムのアカウント A を使用します。

  4. をセットアップするAWS CLIアカウント A では、AWS CLIアカウント B で S3 バケットの DataSync の送信先の場所を作成します。

ステップ 1: 用の IAM ロールを作成する DataSync アカウント A

提供する IAM ロールが必要です DataSync アカウント B で S3 バケットに書き込むアクセス許可。

バケットの場所を作成するときは、 DataSync は、そのバケットにアクセスするための適切な権限を持つロールを自動的に作成し、引き受けます。アカウント間で移行するため、このロールを手動で作成する必要があります。

詳細については、次を参照してください。向けのロールの作成AWS のサービス(コンソール)IAM ユーザーガイド

IAM ロールを作成します。

[] でロールを作成します。 DataSync 信頼されたエンティティとして。

IAM ロールを作成するには

  1. にログインするAWS Management Consoleアカウント A

  2. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  3. 左のナビゲーションペインの []アクセス管理で、ロールとし、選ぶ ロールの作成

  4. リポジトリの []信頼されたエンティティを選択するページ, 用信頼されたエンティティタイプで、AWS のサービス

  5. を使用する場合ユースケースで、DataSync[] ドロップダウンリストから [] を選択します。DataSync。[次へ] を選択します。

  6. [Add permissions] (アクセス許可を追加する) ページで Next (次へ) を選択します。

  7. ロールに名前を付けて、ロールの作成

IAM ロールにカスタムポリシーをアタッチします。

IAM ロールには、許可するポリシーが必要です DataSync アカウント B の S3 バケットに書き込みます。

IAM ロールにカスタムポリシーをアタッチするには

  1. リポジトリの []ロール[IAM コンソール] ページで、先ほど作成したロールを検索し、名前を選択します。

  2. ロールの詳細ページで、アクセス許可[] タブ 選択アクセス許可を追加するそれからインラインポリシーの作成

  3. [JSON[] タブをクリックし、次の操作を行います。

    1. 次の JSON をポリシーエディタに貼り付けます。

      { "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket" }, { "Action": [ "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::account-b-bucket/*" } ] }
    2. 置換account-b-bucketアカウント B の S3 バケットの名前を使用します。

  4. [Review policy] (ポリシーの確認) を選択します。

  5. ポリシーに名前を付けて、ポリシーの作成

ステップ 2: アカウント B で S3 バケットの ACL を無効にする

S3 バケットにコピーするすべてのデータがアカウント B に属していることは重要です。アカウント B がデータの所有者であることを確認するには、バケットのアクセス制御リスト (ACL) を無効にします。詳細については、Simple Storage Service (Amazon S3) ユーザーガイドオブジェクトの所有権のコントロールとバケットに対する ACL の無効化を参照してください。

S3 バケットの ACL を無効にするには

  1. 左AWS Management Consoleで、アカウント B に切り替えます。

  2. https://console.aws.amazon.com/s3/ で Amazon S3 コンソールを開きます。

  3. 左側のナビゲーションペインで、[Buckets] (バケット) を選択します。

  4. バケットリストで、データの転送先となる S3 バケットを選択します。

  5. バケットの詳細ページで、アクセス許可[] タブ

  6. オブジェクトの所有者で [編集] を選択します。

  7. まだ選択されていない場合は、ACL 無効 (推奨)オプション。

  8. [Save changes] (変更の保存) を選択します。

ステップ 3: アカウント B で S3 バケットポリシーを更新します。

アカウント B で、S3 バケットポリシーを変更して、用に作成した IAM ロールへのアクセスを許可します。 DataSync アカウント A で

更新されたポリシー (次の手順で提供) には、2 つのプリンシパルが含まれます。

  • 最初のプリンシパルは、アカウント A で作成した IAM ロールを指定します。 DataSync S3 バケットに書き込みます。

  • 2 番目のプリンシパルは、アカウント A の IAM ユーザー名を指定します。これにより、 DataSync を使用して S3 バケットの宛先AWS CLI(この手順はステップ 4 で行います)。

    注記

    コンソールにログインし、AWS CLIIAM ロールを使用して、2 番目のプリンシパルのユーザー名の代わりにそのロールを指定します。

S3 バケットポリシーを更新するには

  1. S3 コンソールで、アカウント B を使用している間に、データをコピーする S3 バケットを選択します。

  2. バケットの詳細ページで、アクセス許可[] タブ

  3. []バケットポリシーで、編集そして、S3 バケットポリシーを変更するには、次の手順を実行します。

    1. エディタの内容を更新して、次のポリシーステートメントを含めます。

      { "Version": "2008-10-17", "Statement": [ { "Sid": "DataSyncCreateS3LocationAndTaskAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:role/name-of-role" }, "Action": [ "s3:GetBucketLocation", "s3:ListBucket", "s3:ListBucketMultipartUploads", "s3:AbortMultipartUpload", "s3:DeleteObject", "s3:GetObject", "s3:ListMultipartUploadParts", "s3:PutObject", "s3:GetObjectTagging", "s3:PutObjectTagging" ], "Resource": [ "arn:aws:s3:::account-b-bucket", "arn:aws:s3:::account-b-bucket/*" ] }, { "Sid": "DataSyncCreateS3Location", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-a-id:user/name-of-user" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::account-b-bucket" } ] }
    2. 置換account-a-idとAWS アカウントアカウント A の数

    3. 置換name-of-role用に作成した IAM ロールを使用して DataSync アカウント A (ステップ 1 に戻って)。

    4. 置換account-b-bucketアカウント B の S3 バケットの名前を使用します。

    5. 置換name-of-userコンソールへのログインに使用する IAM ユーザー名を使用してアカウント A。

      代わりに IAM ロールを指定する場合は、Amazon リソースネーム (ARN) の形式を更新します。

      "arn:aws:iam::account-a-id:role/name-of-role"

  4. [Save changes] (変更の保存) を選択します。

ステップ 4: の作成 DataSync S3 バケットのデスティネーションロケーション

S3 バケットの場所を作成した後、 DataSync タスク。ただし、DataSync コンソールは、異なるアカウントでのロケーションの作成をサポートしていません。ロケーションを作成する場合は、AWS CLIタスクを実行する前に。

を作成するには DataSync CLI を使用した場所

  1. ターミナルを開きます。

  2. CLI プロファイルがアカウント A を使用するように設定されていることを確認してください。

  3. 次のコマンドをコピーします。

    aws datasync create-location-s3 --s3-bucket-arn arn:aws:s3:::account-b-bucket --s3-config '{"BucketAccessRoleArn":"arn:aws:iam::account-a-id:role/name-of-role"}'
  4. 置換account-b-bucketアカウント B の S3 バケットの名前を使用します。

  5. 置換account-a-idとAWS アカウントアカウント A の数

  6. 置換name-of-role用に作成した IAM ロールを使用して DataSync アカウント A (ステップ 1 に戻って)。

  7. コマンドを実行します。

    コマンドが [] を返した場合 DataSync ロケーション ARN これと同様に、ロケーションを正常に作成しました。

    { "LocationArn": "arn:aws:datasync:us-east-2:123456789012:location/loc-abcdef01234567890" }
  8. で、アカウント A に戻ります。AWS Management Console。

  9. を開く DataSync コンソールでhttps://console.aws.amazon.com/datasync/

  10. 左のナビゲーションペインで、[] を選択します。Locations

    CLI で作成したアカウント B の S3 バケットの場所を確認できます。

ステップ 5: 作成して開始する DataSync 仕事

データを移動する前に、これまでに行ったことを要約しましょう。

  • をデプロイしてアクティブ化しました DataSync アカウントAのエージェント。エージェントが自己管理ストレージシステムから読み取り、AWS。

  • アカウント A に IAM ロールを作成し、 DataSync アカウント B の S3 バケットにデータを書き込むことができます。

  • アカウント B で S3 バケットを設定して、 DataSync タスクは動作します。

  • 作成した DataSync アカウント A の送信元と送信先ロケーション

[] を作成し、起動するには DataSync 仕事

  1. まだ使用中 DataSync アカウント A のコンソールで、タスク左のナビゲーションペインで、タスクの作成

    注記

    ステップ 3 で S3 バケットポリシーで指定したアカウント A の同じ IAM ユーザー名 (またはロール) を使用してコンソールにログインする必要があります。

  2. リポジトリの []送信元の場所を設定する[] ページで [] を選択します既存の場所を選択する。データをコピーする元の場所 (オンプレミスストレージ) を選択し、

  3. リポジトリの []送信先の場所を設定する[] ページで [] を選択します既存の場所を選択する。データをコピーするコピー先の場所 (アカウント B の S3 バケット) を選択し、

  4. リポジトリの []設定の構成[] ページで、タスクに名前を付けます。必要に応じて、Amazon の指定などの追加設定を構成します。 CloudWatch ロググループ。[次へ] を選択します。

  5. リポジトリの []確認[] ページで、設定を確認し、[] を選択します。タスクの作成

  6. タスクの詳細ページで、[] を選択します。スタート[] を選択し、以下のいずれかのオプションを選択します。

    • 変更せずにタスクを実行するには、デフォルトから始める

    • タスクを実行する前に変更するには、オプションを上書きすることから始める

タスクが完了すると、S3 バケットにオンプレミスストレージのデータが表示されます。アカウント B からバケットデータにアクセスできるようになりました。

関連リソース

このチュートリアルで行った内容の詳細については、次のトピックを参照してください。