Amazon で Lake Formation を有効にする EMR - Amazon EMR

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

Amazon で Lake Formation を有効にする EMR

Amazon EMR6.15.0 以降では、 AWS Glue Data Catalog のデータにアクセスするEC2クラスターEMRで Amazon で Spark ジョブを実行すると、 AWS Lake Formation を使用して Hudi、Iceberg、または Delta Lake ベースのテーブルにテーブル、行、列、およびセルレベルのアクセス許可を適用できます。

このセクションでは、セキュリティ設定を作成し、Amazon と連携するように Lake Formation を設定する方法について説明しますEMR。Lake Formation 用に作成したセキュリティ設定を使用してクラスターを起動する方法についても説明します。

ステップ 1: EMRクラスターのランタイムロールを設定する

EMR クラスターにランタイムロールを使用するには、セキュリティ設定を作成する必要があります。セキュリティ設定により、クラスター全体で一貫したセキュリティ、承認、認証のオプションを適用できます。

  1. 次のセキュリティ設定で lf-runtime-roles-sec-cfg.json というファイルを作成します。

    { "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
  2. 次に、セッションタグが Lake Formation を承認できるようにするために、LakeFormationConfiguration/AuthorizedSessionTagValue プロパティを Amazon EMR に設定します。

  3. 次のコマンドを使用して、Amazon EMR セキュリティ設定を作成します。

    aws emr create-security-configuration \ --name 'iamconfig-with-iam-lf' \ --security-configuration file://lf-runtime-roles-sec-cfg.json

    または、Amazon EMRコンソールを使用して、カスタム設定でセキュリティ設定を作成することもできます。

ステップ 2: Amazon EMRクラスターを起動する

これで、前のステップで作成したセキュリティ設定で EMRクラスターを起動する準備が整いました。セキュリティ設定の詳細については、「セキュリティ設定を使用してクラスターセキュリティをセットアップする」および「Amazon ステップのランタイムロール EMR 」を参照してください。

ステップ 3a: Amazon EMRランタイムロールを使用して Lake Formation ベースのテーブルレベルのアクセス許可を設定する

列、行、またはセルレベルでの細粒度なアクセス制御が必要ない場合は、Glue Data Catalog を使用してテーブルレベルの権限を設定できます。テーブルレベルのアクセスを有効にするには、 AWS Lake Formation コンソールに移動し、サイドバーの管理セクションからアプリケーション統合設定オプションを選択します。次に、以下のオプションを有効にして [保存] を選択します。

[部エンジンに、Amazon S3 ロケーション内のデータに対するフルアクセス許可を付与する]

Lake Formation の外部データフィルタリング

ステップ 3b: Amazon EMRランタイムロールを使用して Lake Formation ベースの列、行、またはセルレベルのアクセス許可を設定する

Lake Formation でテーブルレベルおよび列レベルのアクセス許可を適用するには、データレイク管理者がセッションタグ設定 AuthorizedSessionTagValue の値として Amazon EMR を設定する必要があります。Lake Formation は、このセッションタグを使用して発信者を承認し、データレイクへのアクセス権限を付与します。このセッションタグは、Lake Formation コンソールの [外部データフィルタリング] セクションで設定できます。置換 123456789012 自分の AWS アカウント ID で。

Lake Formation の外部データフィルタリング

ステップ 4: Amazon EMRランタイムロールの AWS Glue および Lake Formation 許可を設定する

Amazon EMRランタイムロールを使用した Lake Formation ベースのアクセスコントロールの設定を続行するには、Amazon EMRランタイムロールの AWS Glue および Lake Formation 許可を設定する必要があります。IAM ランタイムロールが Lake Formation とやり取りできるようにするには、 lakeformation:GetDataAccessおよび へのアクセス権を付与しますglue:Get*

Lake Formation のアクセス許可は、 AWS Glue Data Catalog リソース、Amazon S3 ロケーション、およびそれらのロケーションの基盤となるデータへのアクセスを制御します。IAM アクセス許可は、Lake Formation と AWS Glue APIsおよび リソースへのアクセスを制御します。データカタログ (SELECT) 内のテーブルにアクセスする Lake Formation 許可を持っている可能性がありますが、 glue:Get* に対するIAM許可がない場合、オペレーションは失敗しますAPI。Lake Formation のアクセスコントロールの詳細については、「Lake Formation アクセスコントロールの概要」を参照してください。

  1. 次の内容で emr-runtime-roles-lake-formation-policy.json ファイルを作成します。

    { "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
  2. 関連するIAMポリシーを作成します。

    aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
  3. このポリシーをIAMランタイムロールに割り当てるには、「アクセスAWS Lake Formation 許可の管理」のステップに従います。

ランタイムロールと Lake Formation を使用して、テーブルレベルと列レベルのアクセス許可を適用できるようになりました。ソース ID を使用して、 でアクションを制御し、オペレーションをモニタリングすることもできます AWS CloudTrail。詳細な end-to-end 例については、「Amazon ステップのランタイムロールの紹介EMR」を参照してください。