

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

# AWS アカウント間で暗号化された Amazon S3 の場所を登録する
<a name="register-cross-encrypted"></a>

AWS Lake Formation は [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) (AWS KMS) と統合されているため、Amazon Simple Storage Service (Amazon S3) ロケーションでデータを暗号化および復号するための他の統合サービスをより簡単にセットアップできます。

カスタマーマネージドキーと の両方 AWS マネージドキー がサポートされています。クライアント側の暗号化/復号化はサポートされていません。

**重要**  
**[Requester pays]** (リクエスタ支払い) が有効になっている Amazon S3 バケットの登録は避けてください。Lake Formation に登録されたバケットの場合、バケットの登録に使用されるロールは常にリクエスト元であると見なされます。バケットが別の AWS アカウントからアクセスされた場合、ロールがバケット所有者と同じアカウントに属している場合、バケット所有者はデータアクセスに対して課金されます。

このセクションでは、以下の状況で Amazon S3 ロケーションを登録する方法について説明します。
+ Amazon S3 内ロケーション内のデータが、 AWS KMSで作成された KMS キーで暗号化されている。
+ Amazon S3 の場所が と同じ AWS アカウント内にありません AWS Glue Data Catalog。
+ KMS キーは、 データカタログと同じ AWS アカウントにあるか、または存在しないかのいずれかです。

 AWS アカウント A の (IAM) ロールを使用して AWS アカウント B に AWS KMS暗号化された Amazon S3 バケットを登録するには、 AWS Identity and Access Management 次のアクセス許可が必要です。
+ アカウント A のロールが、アカウント B のバケットに対する許可を付与する必要があります。
+ アカウント B のバケットポリシーが、アカウント A のロールにアクセス許可を付与する必要があります。
+ KMS キーがアカウント B にある場合は、キーポリシーがアカウント A のロールにアクセス権を付与し、アカウント A のロールが KMS キーに対する許可を付与する必要があります。

次の手順では、データカタログを含む AWS アカウントにロールを作成します (前の説明のアカウント A)。次に、このロールを使用してロケーションを登録します。Lake Formation は、Amazon S3 内の基盤となるデータにアクセスするときに、このロールを引き受けます。引き受けたロールには、KMS キーに対する必要な許可があります。その結果、ETL ジョブや Amazon Athenaなどの統合サービスで基盤となるデータにアクセスするプリンシパルに、KMS キーに対する許可を付与する必要がなくなります。

**重要**  
Lake Formation サービスリンクロールを使用して、別のアカウントにあるロケーションを登録することはできません。その代わりに、ユーザー定義のロールを使用する必要があります。このロールは、「[ロケーションの登録に使用されるロールの要件](registration-role.md)」の要件を満たす必要があります。サービスリンクロールの詳細については、「[Lake Formation のサービスリンクロールの許可](service-linked-roles.md#service-linked-role-permissions)」を参照してください。

**開始する前に**  
「[ロケーションの登録に使用されるロールの要件](registration-role.md)」を確認してください。

**AWS アカウント間で暗号化された Amazon S3 の場所を登録するには**

1. データカタログと同じ AWS アカウントで、 にサインイン AWS マネジメントコンソール し、 で IAM コンソールを開きます[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 新しいロールを作成するか、「[ロケーションの登録に使用されるロールの要件](registration-role.md)」の要件を満たす既存のロールを表示します。そのロールに、ロケーションに対する Amazon S3 許可を付与するポリシーが含まれていることを確認します。

1. KMS キーが Data Catalog と同じアカウントにないという場合は、KMS キーに対する必要な許可を付与するインラインポリシーをロールに追加します。以下は、ポリシーの例です。リージョンとアカウント ID を、KMS キーのリージョンとアカウント番号に置き換えます。*<key-id>* は、キー ID に置き換えます。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
           "Effect": "Allow",
           "Action": [
               "kms:Encrypt",
               "kms:Decrypt",
               "kms:ReEncrypt*",
               "kms:GenerateDataKey*",
               "kms:DescribeKey"
            ],
           "Resource": "arn:aws:kms:us-east-1:111122223333:key/<key-id>"
           }
       ]
   }
   ```

------

1. Amazon S3 コンソールで、必要な Amazon S3 の許可をロールに付与するバケットポリシーを追加します。以下は、バケットポリシーの例です。アカウント ID をデータカタログの AWS アカウント番号に、*<role-name>* をロール名に、*<bucket-name>* をバケットの名前に置き換えてください。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect":"Allow",
               "Principal": {
                   "AWS":"arn:aws:iam::111122223333:role/<role-name>"
               },
               "Action":"s3:ListBucket",
               "Resource":"arn:aws:s3:::<bucket-name>"
           },
           {
               "Effect":"Allow",
               "Principal": {
                   "AWS":"arn:aws:iam::111122223333:role/<role-name>"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource":"arn:aws:s3:::<bucket-name>/*"
           }
       ]
   }
   ```

------

1. で AWS KMS、KMS キーのユーザーとしてロールを追加します。

   1. [https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) で AWS KMS コンソールを開きます。次に、管理者ユーザーとして、またはロケーションの暗号化に使用された KMS キーのキーポリシーを変更できるユーザーとしてサインインします。

   1. ナビゲーションペインで **[Customer managed keys]** (カスタマー管理型のキー) を選択してから、KMS キーの名前を選択します。

   1. KMS キーの詳細ページの **[Key policy]** (キーポリシー) タブにキーポリシーの JSON ビューが表示されていない場合は、**[Switch to policy view]** (ポリシービューへの切り替え) を選択します。

   1. **[Key policy]** (キーポリシー) セクションで **[Edit]** (編集) を選択し、以下の例にあるように、ロールの Amazon リソースネーム (ARN) を `Allow use of the key` オブジェクトに追加します。
**注記**  
そのオブジェクトが欠落している場合は、例にある許可と共に追加してください。

      ```
              ...
              {
                  "Sid": "Allow use of the key",
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": [
                          "arn:aws:iam::<catalog-account-id>:role/<role-name>"
                      ]
                  },
                  "Action": [
                      "kms:Encrypt",
                      "kms:Decrypt",
                      "kms:ReEncrypt*",
                      "kms:GenerateDataKey*",
                      "kms:DescribeKey"
                  ],
                  "Resource": "*"
              },
              ...
      ```

      詳細については、「*AWS Key Management Service デベロッパーガイド*」の「[他のアカウントのユーザーに KMS キーの使用を許可する](https://docs.amazonaws.cn/en_us/kms/latest/developerguide/key-policy-modifying-external-accounts.html)」を参照してください。

       

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) で AWS Lake Formation コンソールを開きます。データレイク管理者として Data Catalog AWS アカウントにサインインします。

1. ナビゲーションペインの **[管理]** で、**[データレイクのロケーション]** を選択します。

1. **[Register location]** (ロケーションを登録) を選択します。

1. **[Register location]** (ロケーションの登録) ページの **[Amazon S3 path]** (Amazon S3 パス) に、ロケーションのパスを **s3://*<bucket>*/*<prefix>*** として入力します。*<bucket>* はバケット名、*<prefix>* はロケーションのパスの残りの部分に置き換えてください。
**注記**  
クロスアカウントバケットは **[Browse]** (参照) を選択してもリストに表示されないため、パスを入力する必要があります。

1. **[IAM role]** (IAMロール) には、ステップ 2 からのロールを選択します。

1. **[Register location]** (ロケーションを登録) を選択します。