データカタログを外部データソースに接続するための前提条件 - AWS Lake Formation

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

データカタログを外部データソースに接続するための前提条件

AWS Glue Data Catalog を外部データソースに接続し、接続を Lake Formation に登録して、フェデレーティッドカタログを設定するには、次の要件を満たす必要があります。

注記

Lake Formation データレイク管理者は、外部データソースに接続するための AWS Glue 接続を作成し、フェデレーティッドカタログを作成することをお勧めします。

  1. IAM ロールを作成します。
    • 外部データソースへの接続の作成に必要なリソース (Lambda 関数、Amazon S3 スピルバケット、IAM ロール、および AWS Glue 接続) をデプロイするために必要なアクセス許可を持つロールを作成します。

    • AWS Glue 接続プロパティ (Lambda 関数と Amazon S3 スピルバケット) にアクセスするために必要な最小限のアクセス許可を持つロールを作成します。これは、Lake Formation に接続を登録するときに含めるロールです。

      Lake Formation を使用してデータレイク内のデータを管理および保護するには、 AWS Glue 接続を Lake Formation に登録する必要があります。これにより、Lake Formation はフェデレーティッドデータソースをクエリするために Amazon Athena に認証情報を提供できます。

      ロールには、Amazon S3 バケットと Lambda 関数に対する Select または Describe アクセス許可が必要です。

      • s3:ListBucket

      • s3:GetObject

      • lambda:InvokeFunction

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/object/*", "arn:aws:s3:::amzn-s3-demo-bucket1/object" ] }, { "Sid": "lambdainvoke", "Effect": "Allow", "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:123456789012:function:example-lambda-function" }, { "Sid": "gluepolicy", "Effect": "Allow", "Action": "glue:*", "Resource": "*" } ] }
    • 接続の登録に使用される IAM ロールに次の信頼ポリシーを追加します。

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "lakeformation.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    • 場所を登録するデータレイク管理者は、ロールに対する 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/example-role-name>" ] } ] }
    • データカタログでフェデレーティッドカタログを作成するには、データレイク設定 (aws lakeformation get-data-lake-settings) をチェックして、使用している IAM ロールが Lake Formation データレイク管理者であることを確認します。

      データレイク管理者でない場合は、カタログを作成するための Lake Formation CREATE_CATALOG アクセス許可が必要です。次の例は、カタログ作成に必要なアクセス許可を付与する方法を示しています。

      aws lakeformation grant-permissions \ --cli-input-json \ '{ "Principal": { "DataLakePrincipalIdentifier":"arn:aws:iam::123456789012:role/non-admin" }, "Resource": { "Catalog": { } }, "Permissions": [ "CREATE_CATALOG", "DESCRIBE" ] }'
  2. データソース内のデータを暗号化するためにカスタマーマネージドキーを使用している場合 AWS KMS は、次のキーポリシーをキーに追加します。アカウント番号を有効な AWS アカウント番号に置き換え、ロール名を指定します。データはデフォルトで KMS キーを使用して暗号化されます。Lake Formation には、暗号化用のカスタム 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:123456789012:key/key-1" } ] }