Amazon S3 データアクセスを含む で AWS Data Exchange のデータ許可の作成 - AWS Data Exchange ユーザーガイド

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

Amazon S3 データアクセスを含む で AWS Data Exchange のデータ許可の作成

AWS Data Exchange for Amazon S3 を使用すると、データ所有者は Amazon S3 バケットまたは特定のプレフィックスと Amazon S3 オブジェクトへの直接アクセスを共有できます。データ所有者は、 を使用して AWS Data Exchange 、データ許可を通じて権限を自動的に管理します。

データ所有者は、コピーを作成または管理しなくても、Amazon S3 バケット全体、または特定のプレフィックスと Amazon S3 オブジェクトへの直接アクセスを共有できます。これらの共有 Amazon S3 オブジェクトは、 (AWS KMS) または ( AWS マネージドキー SSE-S3) に保存 AWS Key Management Service されているカスタマーマネージドキーを使用してサーバー側で暗号化できます。KMS キーのモニタリングと暗号化コンテキストの理解の詳細については、「」を参照してくださいAmazon S3 データアクセスのキー管理。受信者がデータ製品へのアクセスを取得すると、 は Amazon S3 アクセスポイント AWS Data Exchange を自動的にプロビジョニングし、ユーザーに代わってリソースポリシーを更新して、受信者に読み取り専用アクセスを許可します。受取人は、Amazon S3 バケット名を使用して Amazon S3 のデータにアクセスする場所で、Amazon S3 アクセスポイントのエイリアスを使用できます。

サブスクリプションが終了すると、レシーバーの許可は取り消されます。

Amazon S3 データアクセスを含むデータ許可を作成する前に、以下の前提条件を満たす必要があります。

前提条件
  • データをホストする Amazon S3 バケットが、Amazon S3 バケット所有者の強制設定がACLs無効な に設定されていることを確認します。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「オブジェクトの所有権の制御」と「バケットACLsの無効化」を参照してください。

  • 共有オブジェクトに受信者が正常にアクセスするには、共有オブジェクトが Amazon S3 Standard ストレージクラス内に存在するか、Amazon S3 Intelligent Tiering を使用して管理されている必要があります。共有オブジェクトが他のストレージクラス内に存在しているか、Intelligent Tiering を Deep Archive で有効にしている場合、レシーバーは RestoreObject への許可がないため、エラーが発生します。

  • データをホストする Amazon S3 バケットで暗号化が無効になっているか、Amazon S3 マネージドキー (SSE-S3) またはカスタマーマネージドキーが AWS Key Management Service (AWS ) に保存されていることを確認しますKMS。

  • カスタマー管理キーを使用している場合は、次のものが必要です。

    1. IAM KMSキーkms:CreateGrantに対する のアクセス許可。これらのアクセス許可には、キーポリシー、IAM認証情報、またはKMSキーの AWS KMS 許可を使用してアクセスできます。キー管理と AWS Data Exchange がAWSKMSグラントを使用する方法の詳細については、「」を参照してくださいAWS KMS 許可の作成

      アクセス権限を付与するには、ユーザー、グループ、またはロールにアクセス許可を追加します。

      ユーザーが の AWS 外部とやり取りする場合は、プログラムによるアクセスが必要です AWS Management Console。プログラムによるアクセスを許可する方法は、 にアクセスするユーザーのタイプによって異なります AWS。

      ユーザーにプログラマチックアクセス権を付与するには、以下のいずれかのオプションを選択します。

      プログラマチックアクセス権を必要とするユーザー 目的 方法

      ワークフォースアイデンティティ

      (IAMアイデンティティセンターで管理されるユーザー)

      一時的な認証情報を使用して AWS CLI、 AWS SDKs、または へのプログラムによるリクエストに署名します AWS APIs。

      使用するインターフェイス用の手引きに従ってください。

      IAM 一時的な認証情報を使用して AWS CLI、 AWS SDKs、または へのプログラムによるリクエストに署名します AWS APIs。 IAM 「 ユーザーガイド」の「 AWS リソースで一時的な認証情報を使用する」の手順に従います。
      IAM

      (非推奨)

      長期認証情報を使用して、 AWS CLI、 AWS SDKsまたは へのプログラムによるリクエストに署名します AWS APIs。

      使用するインターフェイス用の手引きに従ってください。

      KMS キーのキーJSONポリシーに を追加する方法を示すポリシーの例を次に示します。

      { "Sid": "AllowCreateGrantPermission", "Effect": "Allow", "Principal": { "AWS": "<IAM identity who will call Dataexchange API>" }, "Action": "kms:CreateGrant", "Resource": "*" }

      次のポリシーは、使用される IAM ID のポリシー追加の例を示しています。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "AllowCreateGrantPermission", "Action": [ "kms:CreateGrant ], "Resource": [ <Enter KMS Key ARNs in your account> ] } ] }
      注記

      クロスアカウントKMSキーは、前のステップでKMSキーに対するkms:CreateGrantアクセス許可を取得した場合にも許可されます。別のアカウントがキーを所有している場合は、上記の例で説明されているように、キーポリシーとIAM認証情報に対するアクセス許可が必要です。

    2. KMS キーを使用して、Amazon S3 バケットキー機能を使用して Amazon S3 バケット内の既存および新しいオブジェクトを暗号化してください。詳細については、Amazon Simple Storage Service ユーザーガイドの「S3 バケットキーの設定」を参照してください。

      • Amazon S3 バケットに追加された新しいオブジェクトについては、デフォルトで Amazon S3 バケットキー暗号化を設定できます。Amazon S3Bucket キー機能を使用せずに既存のオブジェクトを暗号化した場合、これらのオブジェクトは Amazon S3 バケットキーを使用して暗号化するように移行する必要があります。

        既存のオブジェクトの Amazon S3 バケットキーを有効にするには、copy オペレーションを使用します。詳細については、「バッチオペレーションを使用してオブジェクトレベルで Amazon S3 バケットキーを設定する」を参照してください。

      • AWS マネージドKMSキー または AWS 所有のキー はサポートされていません。サポートされていない暗号化スキームから現在サポートされている暗号化スキームに移行できます。詳細については、 AWS ストレージブログのAmazon S3暗号化の変更」を参照してください。

    3. データをホストする Amazon S3 バケットを信頼 AWS Data Exchange 所有アクセスポイントに設定します。これらの Amazon S3 バケットポリシーを更新してAmazon S3 アクセスポイントを作成し、ユーザーに代わってサブスクライバーのアクセスを許可または削除するための AWS Data Exchange アクセス許可を付与する必要があります。ポリシーステートメントがない場合は、バケットポリシーを編集して Amazon S3 ロケーションをデータセットに追加する必要があります。

      次にポリシーの例を示します。<Bucket ARN> を適切な値に置き換えてください。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "<Bucket ARN>", "<Bucket ARN>/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": [ "337040091392", "504002150500", "366362662752", "330489627928", "291973504423", "461002523379", "036905324694", "540564263739", "675969394711", "108584782536", "844053218156" ] } } } ] }

を通じて Amazon S3 バケット全体にデータ共有 AWS Data Exchange を委任できます。ただし、データセット内で共有したいバケットの特定のプレフィックスとオブジェクトに委任の範囲を委任することができます。以下に、スコープ付きポリシーの例を示します。<Bucket ARN>"mybucket/folder1/*" を自分の情報で置き換えます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DelegateToAdxGetObjectsInFolder1", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::mybucket/folder1/*" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": [ "337040091392", "504002150500", "366362662752", "330489627928", "291973504423", "461002523379", "036905324694", "540564263739", "675969394711", "108584782536", "844053218156" ] } } }, { "Sid": "DelegateToAdxListObjectsInFolder1", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::mybucket", "Condition": { "StringLike": { "s3:prefix": [ "folder1/*" ] }, "StringEquals": { "s3:DataAccessPointAccount": [ "337040091392", "504002150500", "366362662752", "330489627928", "291973504423", "461002523379", "036905324694", "540564263739", "675969394711", "108584782536", "844053218156" ] } } } ] }

同様に、アクセス範囲を 1 つのファイルのみに限定する場合、データ所有者は次のポリシーを使用できます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DelegateToAdxGetMyFile", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::mybucket/folder1/myfile" ], "Condition": { "StringEquals": { "s3:DataAccessPointAccount": [ "337040091392", "504002150500", "366362662752", "330489627928", "291973504423", "461002523379", "036905324694", "540564263739", "675969394711", "108584782536", "844053218156" ] } } } ] }

以下のトピックでは、 AWS Data Exchange コンソールを使用して Amazon S3 データセットと Amazon S3 データセットでデータグラントを作成するプロセスについて説明します。このプロセスには以下のステップがあります。

ステップ 1: Amazon S3 データセットを作成する

Amazon S3 データセットを作成するには
  1. 左側のナビゲーションペインで、[マイデータ][所有データセット] を選択します。

  2. [所有データセット][データセットを作成] を選択し、[データセット作成のステップ] ウィザードを開きます。

  3. [データセットタイプを選択][Amazon S3 オブジェクト] を選択します。

  4. [データセットを定義] で、データセットの [名前][説明] を入力します。詳細については、「データセットのベストプラクティス」を参照してください。

  5. (オプション) [タグを追加 – オプション] でタグを追加します。

  6. [データセットを作成] を選択して、続行します。

ステップ 2: Amazon S3 データアクセスを設定する

受取人に提供する Amazon S3 バケットまたは Amazon S3 バケットロケーションを選択します。Amazon S3 バケット全体を選択することも、Amazon S3 バケット内で最大 5 つのプレフィックスまたはオブジェクトを指定することもできます。Amazon S3 バケットをさらに追加するには、別の Amazon S3 データ共有を作成する必要があります。

Amazon S3 データ共有アクセスを設定する
  1. Amazon S3 データアクセスの設定」ページで、「Amazon S3 ロケーションの選択」を選択します

  2. [Amazon S3 ロケーションの選択] で、検索バーに Amazon S3 バケット名を入力するか、Amazon S3 バケット、プレフィックス、または Amazon S3 ファイルを選択して [選択項目を追加] を選択します。次に、[アプリケーションを追加] を選択します。

    注記

    データ所有者がどのプレフィックスやオブジェクトを共有するかを再設定する必要がないように、大半のオブジェクトやプレフィックスが保存されている最上位のフォルダを選択することをお勧めします。

  3. 設定の詳細」で、リクエスタ支払い設定を選択します。2 つのオプションがあります。

    • リクエスタ支払いを有効にする (推奨) — リクエスタは Amazon S3 バケット内のすべてのリクエストと転送に対して支払いを行います。このオプションをお勧めするのは、レシーバーのリクエストや転送に伴う意図しないコストを防ぐのに役立つためです。

    • リクエスタ支払いを無効にする — Amazon S3 バケット内のレシーバーのリクエストと転送に対して支払います。

      リクエスタ支払いの詳細については、「Amazon Simple Storage Service デベロッパーガイド」の「リクエスタ支払いバケットのオブジェクト」を参照してください。

  4. ニーズに最適なバケットポリシーを選択してください。Amazon S3 バケット全体に 1 つのバケットポリシーを使用するには、[一般] を選択します。これは 1 回限りの設定で、future プレフィックスやオブジェクトを共有するために追加の設定を行う必要はありません。選択した Amazon S3 ロケーションに固有のバケットポリシーを使用するには、[特定] を選択します。共有 Amazon S3 バケットには、Amazon S3 データアクセスデータセットを正常に作成するためのバケットポリシーが必要であり、ACLs有効にすることはできません。

    1. を無効にするにはACLs、バケットのアクセス許可に移動し、オブジェクトの所有権バケット所有者の強制 に設定します。

    2. バケットポリシーを追加するには、バケットステートメントをクリップボードにコピーします。Amazon S3 コンソールの Amazon S3 権限タブのバケットポリシーセクションで、[編集] を選択し、バケットポリシーをステートメントに貼り付けて、変更を保存します。

  5. Amazon S3 バケットに AWS KMS カスタマーマネージドキーを使用して暗号化されたオブジェクトが含まれている場合は、そのようなすべてのKMSキーを と共有する必要があります AWS Data Exchange。KMS キーを使用して Amazon S3 バケット内のオブジェクトを暗号化するときに必要な前提条件については、「」を参照してくださいAmazon S3 データアクセスを含む での AWS Data Exchange 製品の公開。これらのKMSキーを と共有するには AWS Data Exchange、以下を実行します。

    1. Amazon S3 データアクセスの設定ページで、カスタマーマネージドKMSキー で、 から選択 AWS KMS keys または Enter AWS KMS key ARN を選択し、Amazon S3 共有ロケーションの暗号化にAWS KMS keys現在使用されているすべての を選択します。 は、これらのKMSキー AWS Data Exchange を使用して、受信者が共有ロケーションにアクセスするための許可を作成します。詳細については、「AWS KMSの許可」を参照してください。

    注記

    AWS KMS には、既存のグラントを含め、KMSキーごとに 50,000 個のグラントの制限があります。

  6. Amazon S3 の場所、選択したKMSキー、設定の詳細を確認し、保存して続行を選択します。

ステップ 3: データセットを確認して完成する

新しく作成したデータセットを確認して完成させます。別の Amazon S3 データアクセスを作成して追加し、追加の Amazon S3 バケット、プレフィックス、オブジェクトへのアクセスを共有する場合は、[別の Amazon S3 データアクセスを追加] を選択します。

注記

これは、最初の Amazon S3 データアクセスで選択した Amazon S3 バケットとは別の Amazon S3 バケットでホストされているデータへのアクセスを共有する必要がある場合にお勧めします。

公開前に変更を加える場合は、[下書きを保存] を選択してデータセットをドラフトとして保存できます。次に、[データセットを確定] を選択してデータ許可に追加します。

ステップ 4: 新しいデータ許可を作成する

少なくとも 1 つのデータセットを作成し、アセットを含むリビジョンを確定すると、そのデータセットをデータ許可の一部として使用する準備が整います。

新しいデータ許可を作成するには
  1. AWS Data Exchange コンソールの左側のナビゲーションペインで、[交換されたデータ許可][送信されたデータ許可] を選択します。

  2. [送信されたデータ許可] から [データ許可を作成] を選択し、[データ許可を定義] ウィザードを開きます。

  3. [所有しているデータセットを選択] セクションで、追加するデータセットの横にあるチェックボックスをオンにします。

    注記

    選択したデータセットには、最終リビジョンが必要です。最終リビジョンのないデータセットは、データ許可に追加できません。

    で共有されるデータ製品に含まれるデータセットとは異なり AWS Marketplace、データ権限に追加されたデータセットにはリビジョンアクセスルールはありません。つまり、データ権限が承認されると、データ権限の受信者は、特定のデータセットのすべての確定されたリビジョン (データ権限の作成前に確定された過去のリビジョンを含む) にアクセスできます。

  4. [許可の概要] セクションに、データ許可名データ許可の説明など、データ許可に関して受取人に表示する情報を入力します。

  5. [Next (次へ)] を選択します。

    詳細については、「での製品のベストプラクティス AWS Data Exchange」を参照してください。

  6. 「受信者アクセス情報」セクションの AWS アカウント ID の下に、データ許可を受け取る受信者アカウントの AWS アカウント ID を入力します。

  7. [アクセスの終了日] で、データ許可の有効期限が切れる特定の終了日を選択するか、許可を永続的にする場合は [終了日なし] を選択します。

  8. [Next (次へ)] を選択します。

  9. [確認して送信] セクションで、データ許可情報を確認します。

  10. データ許可を作成して、選択した受取人に送信することを確定する場合は、[データ許可を作成して送信] を選択します。

これで、データ許可を手動で作成する部分が完了しました。データグラントは、送信済みデータグラントページの送信済みデータグラントタブに表示され、受信者アカウントが承諾するまで、ステータスが承諾保留中と表示されます。