

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

# データレイクへの Amazon S3 ロケーションの追加
<a name="register-data-lake"></a>

データロケーションをデータレイクのストレージとして追加するには、そのロケーション (**データレイクの場所) ***を登録*します AWS Lake Formation。その後、Lake Formation アクセス許可を使用して、この場所を指す AWS Glue Data Catalog オブジェクトと、その場所の基盤となるデータへのきめ細かなアクセスコントロールを行うことができます。

また、Lake Formation では、ハイブリッドアクセスモードでデータロケーションを登録でき、Data Catalog 内のデータベースとテーブルに対して Lake Formation 許可を選択的に有効にできる柔軟性があります。ハイブリッドアクセスモードでは、増分パスにより、他の既存のユーザーやワークロードのアクセス許可ポリシーを中断することなく、特定のユーザーのセットに Lake Formation アクセス許可を設定できます。

ハイブリッドアクセスモードアクセスの詳細については、「[ハイブリッドアクセスモード](hybrid-access-mode.md)」を参照してください。

ロケーションを登録すると、その Amazon S3 パスと、そのパスの下にあるすべてのフォルダが登録されます。

例えば、以下のような Amazon S3 パス組織があるとします。

`/mybucket/accounting/sales/`

`S3://mybucket/accounting` を登録すると、`sales` フォルダも登録され、Lake Formation の管理下に置かれます。

ロケーションの登録に関する詳細については、「[Underlying data access control](access-control-underlying-data.md#underlying-data-access-control)」を参照してください。

**注記**  
Lake Formation 許可は、構造化データ (行と列がある表にまとめられたデータ) が推奨されます。データにオブジェクトベースの非構造化データが含まれている場合は、Amazon S3 Access Grants を使用してデータアクセスを管理することを検討してください。

**Topics**
+ [ロケーションの登録に使用されるロールの要件](registration-role.md)
+ [Amazon S3 ロケーションの登録](register-location.md)
+ [暗号化された Amazon S3 ロケーションの登録](register-encrypted.md)
+ [別の AWS アカウントでの Amazon S3 ロケーションの登録](register-cross-account.md)
+ [AWS アカウント間で暗号化された Amazon S3 の場所を登録する](register-cross-encrypted.md)
+ [Amazon S3 ロケーションの登録解除](unregister-location.md)

# ロケーションの登録に使用されるロールの要件
<a name="registration-role"></a>

Amazon Simple Storage Service AWS Identity and Access Management (Amazon S3) の場所を登録するときは、 (IAM) ロールを指定する必要があります。 はその場所のデータにアクセスするときにそのロールを AWS Lake Formation 引き受けます。

ロケーションは、以下のロールタイプのいずれかを使用して登録できます。
+ Lake Formation サービスリンクロール。このロールは、ロケーションに対する必要な許可を付与します。このロールの使用は、ロケーションを登録する最もシンプルな方法です。詳細については、「[Lake Formation のサービスリンクロールの使用](service-linked-roles.md)」および「[サービスにリンクされたロールの制限](service-linked-role-limitations.md)」を参照してください。
+ ユーザー定義のロール。ユーザー定義のロールは、サービスリンクロールが提供する許可よりも多くの許可を付与する必要があるときに使用します。

  以下の状況では、ユーザー定義のロールを使用する必要があります。
  + 別のアカウントにあるロケーションを登録する場合。

    詳細については、「[別の AWS アカウントでの Amazon S3 ロケーションの登録](register-cross-account.md)」および「[AWS アカウント間で暗号化された Amazon S3 の場所を登録する](register-cross-encrypted.md)」を参照してください。
  +  AWS マネージド CMK (`aws/s3`) を使用して Amazon S3 の場所を暗号化した場合。

    詳細については、「[暗号化された Amazon S3 ロケーションの登録](register-encrypted.md)」を参照してください。
  + Amazon EMR を使用してロケーションにアクセスする予定の場合。

    サービスリンクロールを使用してロケーションをすでに登録しており、Amazon EMR を使用したロケーションへのアクセスを開始したいという場合は、ロケーションの登録を解除してから、ユーザー定義のロールを使用して再度登録する必要があります。詳細については、「[Amazon S3 ロケーションの登録解除](unregister-location.md)」を参照してください。

# Lake Formation のサービスリンクロールの使用
<a name="service-linked-roles"></a>

AWS Lake Formation は AWS Identity and Access Management (IAM) *サービスにリンクされたロール*を使用します。サービスリンクロールは、Lake Formation に直接リンクされた特殊なタイプの IAM ロールです。サービスにリンクされたロールは Lake Formation によって事前定義されており、サービスがユーザーに代わって他の AWS サービスを呼び出すために必要なすべてのアクセス許可が含まれています。

ロールを作成して必要な許可を手動で追加する必要がないため、サービスリンクロールは Lake Formation のセットアップを容易にします。サービスリンクロールの許可は Lake Formation が定義し、別途定義されている場合を除いて、Lake Formation のみがそのロールを引き受けることができます。定義された許可には信頼ポリシーと許可ポリシーが含まれ、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

このサービスリンクロールは、ロールの引き受けについて以下のサービスを信頼します。
+ `lakeformation.amazonaws.com`

アカウント A のサービスリンクロールを使用して、アカウント B が所有する Amazon S3 ロケーションを登録する場合は、アカウント B の Amazon S3 バケットポリシー (リソースベースのポリシー) で、アカウント A のサービスリンクロールにアクセス許可を付与する必要があります。

サービスリンクロールを使用してデータの場所を登録する方法については、「[サービスにリンクされたロールの制限](service-linked-role-limitations.md)」を参照してください。

**注記**  
サービスリンクロールは、サービスコントロールポリシー (SCP) の影響を受けません。  
詳細については、「*AWS Organizations ユーザーガイド*」の「[サービスコントロールポリシー (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)」を参照してください。

## Lake Formation のサービスリンクロールの許可
<a name="service-linked-role-permissions"></a>

Lake Formation は、`AWSServiceRoleForLakeFormationDataAccess` という名前のサービスリンクロールを使用します。このロールは、Lake Formation 統合サービス ( など) が登録済みロケーションにアクセスできるようにする Amazon Simple Storage Service (Amazon S3 Amazon Athena) アクセス許可のセットを提供します。データレイクロケーションを登録するときは、そのロケーションに対する必要な Amazon S3 読み取り/書き込み許可を持つロールを指定する必要があります。ユーザーは、必要な Amazon S3 許可を持つロールを作成する代わりに、このサービスリンクロールを使用することができます。

パスを登録するためのロールとしてサービスリンクロールを初めて指定すると、ユーザーに代わってサービスリンクロールと新しい IAM ポリシーが作成されます。Lake Formation がインラインポリシーにそのパスを追加し、ポリシーをサービスリンクロールにアタッチします。サービスリンクロールに後続のパスを登録すると、Lake Formation がそのパスを既存のポリシーに追加します。

データレイク管理者としてサインインしているときに、データレイクロケーションを登録します。次に、IAM コンソールで `AWSServiceRoleForLakeFormationDataAccess` ロールを検索し、アタッチされたポリシーを確認します。

例えば、`s3://my-kinesis-test/logs` のロケーションを登録すると、Lake Formation が以下のインラインポリシーを作成し、`AWSServiceRoleForLakeFormationDataAccess` にアタッチします。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "LakeFormationDataAccessPermissionsForS3",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject",
                "s3:AbortMultipartUpload",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::my-kinesis-test/logs/*"
            ]
        },
        {
            "Sid": "LakeFormationDataAccessPermissionsForS3ListBucket",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads"
            ],
            "Resource": [
                "arn:aws:s3:::my-kinesis-test"
            ]
        }
    ]
}
```

------

## Lake Formation のサービスリンクロールの作成
<a name="create-slr"></a>

サービスリンクロールを手動で作成する必要はありません。Amazon S3 ロケーションを AWS マネジメントコンソール、、 AWS CLIまたは AWS API で Lake Formation に登録すると、Lake Formation によってサービスにリンクされたロールが作成されます。

**重要**  
このサービスリンクロールは、このロールでサポートされている機能を使用する別のサービスでアクションが完了した場合にアカウントに表示されます。詳細については、[IAM アカウントに新しいロールが表示される](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)を参照してください。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ手順でアカウントにロールを再作成できます。Amazon S3 ロケーションを Lake Formation に登録すると、Lake Formation によってサービスリンクロールが再度作成されます。

IAM コンソールを使用して、**Lake Formation** ユースケースでサービスリンクロールを作成することもできます。 AWS CLI または AWS API で、サービス名を使用して`lakeformation.amazonaws.com`サービスにリンクされたロールを作成します。詳細については、*IAM ユーザーガイド*の「[サービスリンクロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)」を参照してください。このサービスリンクロールを削除しても、同じ方法でロールを再作成できます。

## Lake Formation のサービスリンクロールの編集
<a name="edit-slr"></a>

Lake Formation では、`AWSServiceRoleForLakeFormationDataAccess` サービスリンクロールを編集することはできません。サービスリンクロールの作成後は、さまざまなエンティティがロールを参照する可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

## Lake Formation のサービスリンクロールの削除
<a name="delete-slr"></a>

サービスリンクロールを必要とする機能やサービスが不要になった場合は、ロールを削除することをお勧めします。そうすることで、積極的にモニタリングまたは保守されていない未使用のエンティティを排除できます。ただし、手動で削除する前に、サービスリンクロールのリソースをクリーンアップする必要があります。

**注記**  
リソースを削除しようとしたときに Lake Formation サービスでロールが使用されていると、削除に失敗することがあります。失敗した場合は数分待ってから操作を再試行してください。

**Lake Formation で使用されている Lake Formation リソースを削除するには**
+ サービスリンクロールを使用して Amazon S3 ロケーションを Lake Formation に登録した場合は、サービスリンクロールを削除する前に、そのロケーションを登録解除し、カスタムロールを使用して再登録する必要があります。

**サービスリンクロールを IAM で手動削除するには**

IAM コンソール、 AWS CLI、または AWS API を使用して、`AWSServiceRoleForLakeFormationDataAccess`サービスにリンクされたロールを削除します。詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)」を参照してください。

以下は、ユーザー定義のロールの要件です。
+ 新しいロールを作成するときは、IAM コンソールの **[ロールの作成]** ページで **[AWS のサービス]** を選択してから、**[ユースケースの選択]** で **[Lake Formation]** を選択します。

  別のパスを使用してロールを作成する場合は、そのロールに `lakeformation.amazonaws.com` との信頼関係があることを確認します。詳細については、「[ロール信頼ポリシーの更新 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html)」を参照してください。
+ ロールには、ロケーションに対する Amazon S3 の読み取り/書き込み許可を付与するインラインポリシーが必要です。以下は典型的なポリシーです。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::awsexamplebucket/*"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::awsexamplebucket"
              ]
          }
      ]
  }
  ```

------
+ Lake Formation サービスでロールを引き受け、統合された分析エンジンに一時的な認証情報を提供できるようにするには、IAM ロールに次の信頼ポリシーを追加します。

  CloudTrail ログに IAM アイデンティティセンターのユーザーコンテキストを含めるには、信頼ポリシーに `sts:SetContext` アクションのアクセス許可が必要です。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "DataCatalogViewDefinerAssumeRole1",
              "Effect": "Allow",
              "Principal": {
                 "Service": [                    
                      "lakeformation.amazonaws.com"
                   ]
              },
              "Action": [
                  "sts:AssumeRole",
                  "sts:SetContext"
              ]
          }
      ]
  }
  ```

------
+ ロケーションを登録するデータレイク管理者は、ロールに対する `iam:PassRole` 許可を持っている必要があります。

  以下は、この許可を付与するインラインポリシーです。*<account-id>* を有効な AWS アカウント番号に置き換え、*<role-name>* をロールの名前に置き換えます。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "PassRolePermissions",
              "Effect": "Allow",
              "Action": [
                  "iam:PassRole"
              ],
              "Resource": [
                  "arn:aws:iam::111122223333:role/<role-name>"
              ]
          }
      ]
  }
  ```

------
+ Lake Formation が CloudWatch Logs にログを追加し、メトリクスを発行できるようにするには、以下のインラインポリシーを追加します。
**注記**  
CloudWatch Logs への書き込みには料金が発生します。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Sid1",
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:CreateLogGroup",
                  "logs:PutLogEvents"
              ],
              "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws-lakeformation-acceleration/*",
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws-lakeformation-acceleration/*:log-stream:*"
              ]
          }
      ]
  }
  ```

------

# Amazon S3 ロケーションの登録
<a name="register-location"></a>

Amazon Simple Storage Service AWS Identity and Access Management (Amazon S3) ロケーションを登録するときは、(IAM) ロールを指定する必要があります。Lake Formation は、その場所のデータにアクセスする統合 AWS サービスに一時的な認証情報を付与するときに、そのロールを引き受けます。

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

 AWS Lake Formation コンソール、Lake Formation API、または AWS Command Line Interface (AWS CLI) を使用して Amazon S3 の場所を登録できます。

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

**ロケーションを登録する (コンソール)**
**重要**  
次の手順では、Amazon S3 の場所がデータカタログと同じ AWS アカウントにあり、その場所のデータが暗号化されていないことを前提としています。クロスアカウント登録と暗号化されたロケーションの登録については、本章の他のセクションで説明されています。

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) で AWS Lake Formation コンソールを開きます。データレイク管理者、または `lakeformation:RegisterResource` IAM 許可を持つユーザーとしてサインインします。

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

1. **[Register location]** (ロケーションを登録) を選択してから、**[Browse]**(参照) を選択して Amazon Simple Storage Service (Amazon S3) パスを選択します。

1. (強く推奨されるオプション) **[ロケーションのアクセス許可のレビュー]** を選択して、選択した Amazon S3 ロケーションにあるすべての既存のリソースおよびアクセス許可のリストを確認します。

   選択されたロケーションの登録により、Lake Formation ユーザーがそのロケーションにすでに存在するデータにアクセスできるようになる可能性があります。このリストの確認は、既存のデータのセキュリティが確保されていることを確実にするために役立ちます。

1. **[IAM role]** (IAMロール) には、`AWSServiceRoleForLakeFormationDataAccess` サービスリンクロール (デフォルト)、または「[ロケーションの登録に使用されるロールの要件](registration-role.md)」の要件を満たすカスタム IAM ロールを選択します。

   登録したロケーションやその他の詳細を更新できるのは、カスタム IAM ロールを使用して登録した場合のみです。サービスにリンクされたロールを使用して登録したロケーションを編集するには、ロケーションの登録を解除して再度登録する必要があります。

1. **データカタログフェデレーションを有効にする**オプションを選択して、Lake Formation がロールを引き受け、統合 AWS サービスに一時的な認証情報を提供してフェデレーションデータベースのテーブルにアクセスできるようにします。ロケーションが Lake Formation に登録されていて、フェデレーションデータベースのテーブルにも同じロケーションを使用する場合は、同じロケーションを **[Data Catalog フェデレーションを有効にする]** オプションで登録する必要があります。

1. Lake Formation 許可をデフォルトで有効にしない場合は、**[ハイブリッドアクセスモード]** を選択します。Amazon S3 ロケーションをハイブリッドアクセスモードで登録すると、そのロケーションにあるデータベースとテーブルのプリンシパルをオプトインすることで、Lake Formation 許可を有効にできます。 

   ハイブリッドアクセスモードアクセスの設定の詳細については、「[ハイブリッドアクセスモード](hybrid-access-mode.md)」を参照してください。

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

**ロケーションを登録するには (AWS CLI)**

1. 

**新しいロケーションを Lake Formation に登録します。**

   この例では、サービスにリンクされたロールを使用してロケーションを登録します。その代わりに `--role-arn` 引数を使用して、独自のロールを提供することができます。

   *<s3-path>* を有効な Amazon S3 パスに、アカウント番号を有効な AWS アカウントに置き換え、*<s3-access-role>* をデータロケーションを登録する権限を持つ IAM ロールに置き換えます。
**注記**  
ロケーションの登録にサービスにリンクされたロールを使用した場合、登録したロケーションのプロパティは編集できません。

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --use-service-linked-role
   ```

   次の例では、カスタムロールを使用してロケーションを登録します。

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role>
   ```

1. 

**Lake Formation に登録したロケーションを更新するには**

   登録したロケーションは、カスタム IAM ロールを使用して登録している場合にのみ編集できます。サービスにリンクされたロールに登録されているロケーションについては、ロケーションの登録を解除してから再度登録する必要があります。詳細については、「[Amazon S3 ロケーションの登録解除](unregister-location.md)」を参照してください。

   ```
   aws lakeformation update-resource \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role>\
    --resource-arn arn:aws:s3:::<s3-path>
   ```

   ```
   aws lakeformation update-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --use-service-linked-role
   ```

1. 

**ハイブリッドアクセスモードでデータロケーションをフェデレーションに登録します。**

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role> \
    --hybrid-access-enabled
   ```

   ```
   aws lakeformation register-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role> \
    --with-federation
   ```

   ```
   aws lakeformation update-resource \
    --resource-arn arn:aws:s3:::<s3-path> \
    --role-arn arn:aws:iam::<123456789012>:role/<s3-access-role> \
    --hybrid-access-enabled
   ```

詳細については、「[RegisterResource](https://docs.aws.amazon.com/lake-formation/latest/APIReference/API_RegisterResource.html)」を参照してください。

**注記**  
Amazon S3 ロケーションを登録すると、そのロケーション (またはその子ロケーション) を指す AWS Glue テーブルは、`GetTable`呼び出し`true`のように `IsRegisteredWithLakeFormation`パラメータの値を返します。`GetTables` および `SearchTables` などの Data Catalog API 操作が `IsRegisteredWithLakeFormation` パラメータの値を更新せず、デフォルト値の false を返すという既知の制限があります。`IsRegisteredWithLakeFormation` パラメータの正しい値を表示するには、`GetTable` API を使用することが推奨されます。

# 暗号化された Amazon S3 ロケーションの登録
<a name="register-encrypted"></a>

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 KMS keys と の両方 AWS マネージドキー がサポートされています。現在、クライアント側の暗号化/復号は Athena でのみサポートされています。

Amazon S3 ロケーションを登録するときは、 AWS Identity and Access Management (IAM) ロールを指定する必要があります。 Amazon S3 暗号化された Amazon S3 の場所の場合、ロールには を使用してデータを暗号化および復号するアクセス許可が必要です。または AWS KMS key、KMS キーポリシーはキーに対するアクセス許可をロールに付与する必要があります。

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

Lake Formation は、サービスにリンクされたロールを使用してデータの場所を登録します。ただし、このロールにはいくつかの[制約](service-linked-role-limitations.md)があります。こうした制約があるため、柔軟性と制御性を高めるために、代わりにカスタム IAM ロールを作成して使用することをお勧めします。場所を登録するために作成するカスタムロールは、[ロケーションの登録に使用されるロールの要件](registration-role.md) で指定された要件を満たしている必要があります。

**重要**  
を使用して Amazon S3 の場所を AWS マネージドキー 暗号化した場合、Lake Formation サービスにリンクされたロールを使用することはできません。カスタムロールを使用して、キーに対する IAM 許可をロールに追加する必要があります。詳細については、このセクションで後ほど説明します。

以下の手順では、カスタマーマネージドキー、または AWS マネージドキーで暗号化された Amazon S3 ロケーションを登録する方法を説明します。
+ [カスタマーマネージドキーで暗号化されたロケーションの登録](#proc-register-cust-cmk)
+ [で暗号化された場所の登録 AWS マネージドキー](#proc-register-aws-cmk)

**開始する前に**  
「[ロケーションの登録に使用されるロールの要件](registration-role.md)」を確認してください。<a name="proc-register-cust-cmk"></a>

**カスタマーマネージドキーで暗号化された Amazon S3 ロケーションを登録する**
**注記**  
KMS キーまたは Amazon S3 の場所がデータカタログと同じ AWS アカウントにない場合は、[AWS アカウント間で暗号化された Amazon S3 の場所を登録する](register-cross-encrypted.md)代わりに「」の手順に従います。

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

1. ナビゲーションペインで **[カスタマーマネージドキー]** を選択してから、目的の KMS キーの名前を選択します。

1. KMS キーの詳細ページで **[キーポリシー]** タブを選択してから、以下のいずれかを行って、カスタムロールまたは Lake Formation サービスリンクロールを KMS キーユーザーとして追加します。
   + **デフォルトビューが表示されている場合** (**キー管理者**、**キー削除**、**キーユーザー**、**その他の AWS アカウント**セクションを使用) – **キーユーザー**セクションで、カスタムロール または Lake Formation サービスにリンクされたロール を追加します`AWSServiceRoleForLakeFormationDataAccess`。
   + **キーポリシー (JSON) が表示されている場合** – 以下の例にあるように、ポリシーを編集して、「Allow use of the key」オブジェクトにカスタムロールまたは Lake Formation サービスリンクロール (`AWSServiceRoleForLakeFormationDataAccess`) を追加します。
**注記**  
そのオブジェクトが欠落している場合は、例にある許可と共に追加してください。この例は、サービスリンクロールを使用しています。

     ```
             ...
             {
                 "Sid": "Allow use of the key",
                 "Effect": "Allow",
                 "Principal": {
                     "AWS": [
                         "arn:aws:iam::111122223333:role/aws-service-role/lakeformation.amazonaws.com/AWSServiceRoleForLakeFormationDataAccess",
                         "arn:aws:iam::111122223333:user/keyuser"
                     ]
                 },
                 "Action": [
                     "kms:Encrypt",
                     "kms:Decrypt",
                     "kms:ReEncrypt*",
                     "kms:GenerateDataKey*",
                     "kms:DescribeKey"
                 ],
                 "Resource": "*"
             },
             ...
     ```

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) で AWS Lake Formation コンソールを開きます。データレイク管理者、または `lakeformation:RegisterResource` IAM 許可を持つユーザーとしてサインインします。

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

1. **[Register location]** (ロケーションを登録) を選択してから、**[Browse]**(参照) を選択して Amazon Simple Storage Service (Amazon S3) パスを選択します。

1. (強く推奨されるオプション) **[Review location permissions]** (ロケーションの許可のレビュー) を選択して、選択された Amazon S3 ロケーションにあるすべての既存のリソースとそれらの許可のリストを確認します。

   選択されたロケーションの登録により、Lake Formation ユーザーがそのロケーションにすでに存在するデータにアクセスできるようになる可能性があります。このリストの確認は、既存のデータのセキュリティが確保されていることを確実にするために役立ちます。

1. **[IAM role]** (IAMロール) には、`AWSServiceRoleForLakeFormationDataAccess` サービスリンクロール (デフォルト)、または「[ロケーションの登録に使用されるロールの要件](registration-role.md)」に適合するカスタム IAM ロールを選択します。

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

サービスリンクロールの詳細については、「[Lake Formation のサービスリンクロールの許可](service-linked-roles.md#service-linked-role-permissions)」を参照してください。<a name="proc-register-aws-cmk"></a>

**で暗号化された Amazon S3 の場所を登録するには AWS マネージドキー**
**重要**  
Amazon S3 の場所がデータカタログと同じ AWS アカウントにない場合は、[AWS アカウント間で暗号化された Amazon S3 の場所を登録する](register-cross-encrypted.md)代わりに「」の手順に従います。

1. ロケーションの登録に使用する IAM ロールを作成します。ロールが「[ロケーションの登録に使用されるロールの要件](registration-role.md)」に記載されている条件を満たすことを確認してください。

1. 以下のインラインポリシーをロールに追加します。これは、キーに対する許可をロールに付与します。`Resource` の仕様は、 AWS マネージドキーの Amazon リソースネーム (ARN) を指定する必要があります。ARN は AWS KMS コンソールから取得できます。正しい ARN を取得するには、場所の暗号化に AWS マネージドキー 使用された と同じ AWS アカウントとリージョンで AWS KMS コンソールにログインしてください。

------
#### [ 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/1234abcd-12ab-34cd-56ef-1234567890ab"
       }
     ]
   }
   ```

------

   キー ID の代わりに KMS キーエイリアスを使用できます - `arn:aws:kms:region:account-id:key/alias/your-key-alias`

   詳細については、「 AWS Key Management Service デベロッパーガイド[」の「 セクションのエイリア AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/kms-alias.html)ス」を参照してください。

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) で AWS Lake Formation コンソールを開きます。データレイク管理者、または `lakeformation:RegisterResource` IAM 許可を持つユーザーとしてサインインします。

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

1. **[Register location]** (ロケーションを登録) を選択してから、**[Browse]**(参照) を選択して Amazon S3 パスを選択します。

1. (強く推奨されるオプション) **[Review location permissions]** (ロケーションの許可のレビュー) を選択して、選択された Amazon S3 ロケーションにあるすべての既存のリソースとそれらの許可のリストを確認します。

   選択されたロケーションの登録により、Lake Formation ユーザーがそのロケーションにすでに存在するデータにアクセスできるようになる可能性があります。このリストの確認は、既存のデータのセキュリティが確保されていることを確実にするために役立ちます。

1. **[IAM role]** (IAM ロール) には、ステップ 1 で作成したロールを選択します。

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

# 別の AWS アカウントでの Amazon S3 ロケーションの登録
<a name="register-cross-account"></a>

AWS Lake Formation では、 AWS アカウント間で Amazon Simple Storage Service (Amazon S3) ロケーションを登録できます。たとえば、 AWS Glue Data Catalog がアカウント A にある場合、アカウント A のユーザーはアカウント B に Amazon S3 バケットを登録できます。

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

**重要**  
**[Requester pays]** (リクエスタ支払い) が有効になっている Amazon S3 バケットの登録は避けてください。Lake Formation に登録されたバケットの場合、バケットの登録に使用されるロールは常にリクエスト元であると見なされます。バケットが別の AWS アカウントからアクセスされた場合、ロールがバケット所有者と同じアカウントに属している場合、バケット所有者はデータアクセスに対して課金されます。  
Lake Formation サービスリンクロールを使用して、別のアカウントにあるロケーションを登録することはできません。その代わりに、ユーザー定義のロールを使用する必要があります。このロールは、「[ロケーションの登録に使用されるロールの要件](registration-role.md)」の要件を満たす必要があります。サービスリンクロールの詳細については、「[Lake Formation のサービスリンクロールの許可](service-linked-roles.md#service-linked-role-permissions)」を参照してください。

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

**別の AWS アカウントでロケーションを登録するには**
**注記**  
ロケーションが暗号化されている場合は、代わりに「[AWS アカウント間で暗号化された Amazon S3 の場所を登録する](register-cross-encrypted.md)」の手順を実行してください。

以下の手順は、Data Catalog が含まれるアカウント 1111-2222-3333 のプリンシパルが、アカウント 1234-5678-9012 にある Amazon S3 バケット `awsexamplebucket1` を登録したいという状況を前提としています。

1. アカウント 1111-2222-3333 で、 にサインイン AWS マネジメントコンソール し、 で IAM コンソールを開きます[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

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

1. Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。アカウント 1234-5678-9012 でサインインします。

1. **[Bucket name]** (バケット名) リストで、`awsexamplebucket1` というバケット名を選択します。

1. **[Permissions]** (アクセス許可) を選択します。

1. **[Permissions]** (アクセス許可) ページで、**[Bucket Policy]** (バケットポリシー) を選択します。

1. **[Bucket policy editor]** (バケットポリシーエディタ) に、以下のポリシーを貼り付けます。*<role-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:::awsexamplebucket1"
           },
           {
               "Effect":"Allow",
               "Principal": {
                   "AWS":"arn:aws:iam::111122223333:role/<role-name>"
               },
               "Action": [
                   "s3:DeleteObject",
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource":"arn:aws:s3:::awsexamplebucket1/*"
           }
       ]
   }
   ```

------

1. **[保存]** を選択します。

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) で AWS Lake Formation コンソールを開きます。データレイク管理者として、またはロケーションを登録するために十分な許可を持つユーザーとして、アカウント 1111-2222-3333 にサインインします。

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

1. **[データレイクのロケーション]** ページで、**[ロケーションを登録]** を選択します。

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

1. **[IAM role]** (IAM ロール) でロールを選択します。

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

# 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]** (ロケーションを登録) を選択します。

# Amazon S3 ロケーションの登録解除
<a name="unregister-location"></a>

Amazon Simple Storage Service (Amazon S3) ロケーションを Lake Formation で管理する必要がなくなった場合は、このロケーションの登録を解除できます。ロケーションの登録を解除しても、そのロケーションに対して付与されている Lake Formation データロケーション許可には影響しません。登録を解除したロケーションは再登録でき、データロケーション許可は引き続き有効になります。ロケーションは、別のロールを使用して再登録できます。

**ロケーションの登録を解除する (コンソール)**

1. [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) で AWS Lake Formation コンソールを開きます。データレイク管理者、または `lakeformation:RegisterResource` IAM 許可を持つユーザーとしてサインインします。

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

1. ロケーションを選択し、**[Actions]** (アクション) メニューで **[Remove]** (削除) を選択します。

1. 確認を求めるプロンプトが表示されたら、**[Remove]** (削除) を選択します。