Activez la Lake Formation avec Amazon EMR - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Activez la Lake Formation avec Amazon EMR

Avec Amazon EMR 6.15.0 et versions ultérieures, lorsque vous exécutez des tâches Spark EMR sur Amazon sur des EC2 clusters qui accèdent aux données du AWS Glue Data Catalog, vous pouvez utiliser AWS Lake Formation pour appliquer des autorisations au niveau des tables, des lignes, des colonnes et des cellules aux tables basées sur Hudi, Iceberg ou Delta Lake.

Dans cette section, nous expliquons comment créer une configuration de sécurité et configurer Lake Formation pour qu'il fonctionne avec AmazonEMR. Nous expliquons également comment lancer un cluster avec la configuration de sécurité que vous avez créée pour Lake Formation.

Étape 1 : configurer un rôle d'exécution pour votre EMR cluster

Pour utiliser un rôle d'exécution pour votre EMR cluster, vous devez créer une configuration de sécurité. Avec une configuration de sécurité, vous pouvez appliquer des options de sécurité, d'autorisation et d'authentification cohérentes sur l'ensemble de vos clusters.

  1. Créez un fichier appelé lf-runtime-roles-sec-cfg.json avec la configuration de sécurité suivante.

    { "AuthorizationConfiguration": { "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } }, "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": {<certificate-configuration>} } } }
  2. Ensuite, pour vous assurer que le tag de session peut autoriser Lake Formation, définissez la propriété LakeFormationConfiguration/AuthorizedSessionTagValue sur Amazon EMR.

  3. Utilisez la commande suivante pour créer la configuration EMR de sécurité Amazon.

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

    Vous pouvez également utiliser la EMRconsole Amazon pour créer une configuration de sécurité avec des paramètres personnalisés.

Étape 2 : Lancer un EMR cluster Amazon

Vous êtes maintenant prêt à lancer un EMR cluster avec la configuration de sécurité que vous avez créée à l'étape précédente. Pour plus d'informations sur les configurations de sécurité, consultez Utilisation de configurations de sécurité pour configurer la sécurité du cluster et Rôles d'exécution pour Amazon EMR Steps.

Étape 3a : configurer les autorisations au niveau des tables basées sur Lake Formation avec les rôles d'exécution Amazon EMR

Si vous n’avez pas besoin d’un contrôle d’accès précis au niveau des colonnes, des lignes ou des cellules, vous pouvez configurer des autorisations au niveau des tables avec le catalogue de données Glue. Pour activer l'accès au niveau des tables, accédez au AWS Lake Formation console et sélectionnez l'option Paramètres d'intégration des applications dans la section Administration de la barre latérale. Activez ensuite l’option suivante et choisissez Enregistrer :

Autoriser les moteurs externes à accéder aux données dans les emplacements Amazon S3 avec un accès complet aux tables

Filtrage des données externes de Lake Formation

Étape 3b : configurer des autorisations au niveau des colonnes, des lignes ou des cellules basées sur Lake Formation avec les rôles d'exécution Amazon EMR

Pour appliquer des autorisations au niveau des tables et des colonnes avec Lake Formation, l’administrateur du lac de données de Lake Formation doit définir Amazon EMR comme valeur pour la configuration des balises de session, AuthorizedSessionTagValue. Lake Formation utilise cette balise de session pour autoriser les appelants et fournir l'accès au lac de données. Vous pouvez définir cette balise de session dans la section Filtrage des données externes de la console Lake Formation. Remplacez 123456789012 avec le vôtre Compte AWS IDENTIFIANT.

Filtrage des données externes de Lake Formation

Étape 4 : Configuration AWS Subventions Glue and Lake Formation pour les rôles EMR d'exécution Amazon

Pour poursuivre la configuration du contrôle d'accès basé sur Lake Formation avec les rôles EMR d'exécution Amazon, vous devez configurer AWS Subventions Glue and Lake Formation pour les rôles EMR d'exécution Amazon. Pour permettre à vos rôles IAM d'exécution d'interagir avec Lake Formation, accordez-leur l'accès avec lakeformation:GetDataAccess etglue:Get*.

Les autorisations de Lake Formation contrôlent l'accès à AWS Glue les ressources du catalogue de données, les sites Amazon S3 et les données sous-jacentes présentes sur ces sites. IAMles autorisations contrôlent l'accès à la Lake Formation et AWS Glue APIs et ressources. Bien que vous ayez l'autorisation Lake Formation d'accéder à une table du catalogue de données (SELECT), votre opération échoue si vous n'avez pas l'IAMautorisation sur le glue:Get*API. Pour plus de détails sur le contrôle d'accès à Lake Formation, consultez Présentation du contrôle d'accès à Lake Formation.

  1. Créez le fichier emr-runtime-roles-lake-formation-policy.json avec le contenu suivant.

    { "Version": "2012-10-17", "Statement": { "Sid": "LakeFormationManagedAccess", "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:Get*", "glue:Create*", "glue:Update*" ], "Resource": "*" } }
  2. Créez la IAM politique correspondante.

    aws iam create-policy \ --policy-name emr-runtime-roles-lake-formation-policy \ --policy-document file://emr-runtime-roles-lake-formation-policy.json
  3. Pour attribuer cette politique à vos rôles IAM d'exécution, suivez les étapes décrites dans Gestion AWS Lake Formation autorisations.

Vous pouvez désormais utiliser les rôles d'exécution et Lake Formation pour appliquer des autorisations au niveau des tables et des colonnes. Vous pouvez également utiliser une identité source pour contrôler les actions et surveiller les opérations avec AWS CloudTrail. Pour un end-to-end exemple détaillé, consultez la section Présentation des rôles d'exécution pour Amazon EMR Steps.