View a markdown version of this page

Accès basé sur des chemins S3 à l'aide de Lake Formation pour Amazon EMR Spark - 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.

Accès basé sur des chemins S3 à l'aide de Lake Formation pour Amazon EMR Spark

Avec les versions 7.13.0 et supérieures d'Amazon EMR, vous pouvez utiliser le plug-in AWS Lake Formation Access Grants pour obtenir des informations d'identification temporaires pour les chemins S3 enregistrés auprès de Lake Formation. Cela permet aux requêtes Spark qui font directement référence à des chemins S3 d'utiliser les Formation-vended informations d'identification Lake, en plus de la vente d'informations d'identification basée sur le nom de table existante fournie par Full Table Access (FTA). Pour plus de détails, consultez la section Accès aux sites Amazon S3.

Le plugin Lake Formation Access Grants s'intègre au système de fichiers S3A de Spark. Lorsque cette option est activée, S3A utilise le plug-in pour appeler l'GetTemporaryDataLocationCredentialsAPI Lake Formation afin d'obtenir des informations d'identification temporaires pour les chemins S3 appartenant aux Formation-registered tables Lake.

Ce plugin est utile lorsque vos jobs Spark lisent ou écrivent des données en référençant directement des chemins S3 (par exemplespark.read.parquet("s3a://my-bucket/my-table/")) plutôt qu'en utilisant des noms de tables. Le plug-in prend également en charge le retour facultatif aux autorisations d'accès S3 ou aux informations d'identification du rôle IAM lorsque l'accès à Lake Formation est refusé.

Relation avec l'accès complet aux tables (FTA)

La fonctionnalité d'accès complet aux tables existante utilise l'GetTemporaryGlueTableCredentialsAPI, qui transmet des informations d'identification en fonction des noms de tables. Le plugin Lake Formation Access Grants utilise l'GetTemporaryDataLocationCredentialsAPI, qui transmet des informations d'identification sur la base de chemins S3.

Vous pouvez utiliser les deux fonctionnalités en même temps. Lorsque les deux sont activés, les informations d'identification FTA sont prioritaires pour les requêtes de nom de table, tandis que le plug-in gère les requêtes de chemin S3 directes.

Conditions préalables

Avant d'utiliser le plugin Lake Formation Access Grants, procédez comme suit :

  • Configurez l'accès complet aux tables (FTA) pour votre environnement Amazon EMR. Pour obtenir des instructions, voir Configuration de l'accès complet à la table Lake Formation.

  • Dans la console Lake Formation, enregistrez le chemin S3 avec le compte du propriétaire :

    1. Accédez aux emplacements des lacs de données.

    2. Sélectionnez l'emplacement et activez Enregistrer le chemin S3 avec le compte propriétaire.

  • Accordez au rôle d'exécution les autorisations Lake Formation appropriées sur la table :

    • Pour lire les données d'une table, accordez au rôle d'exécution SELECT l'autorisation complète sur la table.

    • Pour modifier les données d'une table, accordez l'SUPERautorisation au rôle d'exécution sur la table.

Activez le plugin Lake Formation Access Grants

Pour activer le plug-in, définissez les propriétés de configuration S3A suivantes dans votre session Spark :

Propriétés de configuration du plugin Lake Formation Access Grants
Propriété Par défaut Description
fs.s3a.lakeformation.access.grants.enabled FALSE Active le plugin Lake Formation Access Grants.
fs.s3a.lakeformation.access.grants.fallback.to.iam FALSE Permet de revenir aux autorisations d'accès S3 ou aux informations d'identification du rôle IAM si Lake Formation refuse l'accès.

Comportement de repli

Lorsqu'il fs.s3a.lakeformation.access.grants.fallback.to.iam est défini surtrue, le plugin utilise une chaîne de secours si Lake Formation refuse l'accès. Cela est utile dans les scénarios où certains chemins S3 sont enregistrés auprès de Lake Formation et d'autres sont gérés via S3 Access Grants ou des politiques IAM.

Lorsque le repli est activé, le plug-in tente d'obtenir les informations d'identification dans l'ordre suivant :

  1. Lake Formation — Le plugin appelle GetTemporaryDataLocationCredentials. Si Lake Formation autorise l'accès, le plugin renvoie ces informations d'identification.

  2. S3 Access Grants — Si Lake Formation refuse l'accès, le plugin vérifie si S3 Access Grants peut fournir des informations d'identification pour le chemin demandé. Si une instance S3 Access Grants couvre le chemin et que l'appelant dispose d'une autorisation correspondante, le plug-in utilise ces informations d'identification.

  3. Rôle IAM  : si Lake Formation et S3 Access Grants refusent l'accès, le plug-in revient aux informations d'identification du rôle IAM associées à la tâche.

Considérations et restrictions

  • Le plugin prend en charge les formats de table Apache Hive, Apache Hudi et Delta Lake. Apache Iceberg n'est pas pris en charge pour le moment.

  • Le plug-in n'est actuellement pas pris en charge avec le mode Amazon EMR Spark Fine-Grained Access Control (FGAC).

  • Path-based la vente d'informations d'identification nécessite un mappage 1:1 entre une table et son emplacement S3 dans le catalogue de données AWS Glue.