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 formation de Lake 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 catalogue de données AWS Glue, vous pouvez les 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.
-
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>} } } }
-
Ensuite, pour vous assurer que le tag de session peut autoriser Lake Formation, définissez la propriété
LakeFormationConfiguration/AuthorizedSessionTagValue
surAmazon EMR
. -
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 Utiliser les configurations de sécurité pour configurer la sécurité EMR du cluster Amazon 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 de la table, accédez à la 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
É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 votre propre Compte AWS
identifiant.
Étape 4 : Configuration des AWS autorisations Glue et 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 les subventions AWS Glue et 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 aux ressources du catalogue de données AWS Glue, aux sites Amazon S3 et aux données sous-jacentes de ces sites. IAMles autorisations contrôlent l'accès à la Lake Formation and AWS Glue APIs et aux 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.
-
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": "*" } }
-
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
-
Pour attribuer cette politique à vos rôles IAM d'exécution, suivez les étapes de la section Gestion des 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