View a markdown version of this page

Accès aux sites Amazon S3 - AWS Lake Formation

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 aux sites Amazon S3

AWS Lake Formation vous permet de lire et d'écrire les fichiers de données sous-jacents dans Amazon Simple Storage Service (Amazon S3) pour les tables enregistrées dans AWS Glue Data Catalog le (Data Catalog). Cela vous fournit un ensemble unique d'autorisations à la fois pour les requêtes SQL et pour l'accès direct aux fichiers en utilisant vos autorisations de table Lake Formation existantes. Lake Formation étend sa fonctionnalité de distribution automatique d'informations d'identification aux sites Amazon S3 enregistrés dans le catalogue de données. Lorsque votre application demande l'accès aux fichiers Amazon S3 sous-jacents à une table de catalogue de données, Lake Formation évalue les autorisations existantes de l'appelant au niveau de la table et, si elle est autorisée, renvoie des informations d'identification Amazon S3 de courte durée et étendues pour l'emplacement enregistré de cette table.

Permettre un accès direct aux sites Amazon S3

Pour activer cette fonctionnalité, vous devez suivre les étapes suivantes.

Conditions préalables

Remplissez les conditions préalables suivantes avant d'activer l'indicateur de fonctionnalité :

  • Enregistrer des sites Amazon S3 : cataloguez vos tables dans le catalogue de données de vos sites Amazon S3 et enregistrez-les auprès de Lake Formation en fournissant le compte propriétaire du compartiment Amazon S3. Lorsque vous enregistrez un emplacement, ce chemin Amazon S3 et tous les dossiers situés sous ce chemin sont enregistrés. Pour de plus amples informations, veuillez consulter Enregistrement d'un emplacement Amazon S3.

  • Autorisations de Lake Formation : accordez des autorisations Lake Formation SELECT (ouSUPER) sur des tables à vos data scientists et à vos applications à l'aide de la console Lake Formation ou des API. Si vous utilisez déjà Lake Formation pour accéder aux tables avec des services tels qu'Athena ou Amazon EMR, cela est déjà configuré.

  • Activer l'intégration des applications avec l'accès complet aux tables : activez l'intégration des applications avec l'accès complet aux tables pour permettre la vente d'informations d'identification à l'emplacement de table enregistré. Pour de plus amples informations, veuillez consulter Intégration des applications pour un accès complet aux tables.

Activer le drapeau de fonctionnalité

Activez le fs.s3a.lakeformation.access.grants.enabled drapeau sur les moteurs pris en charge :

fs.s3a.lakeformation.access.grants.enabled = true
  • Amazon EMR sur Amazon EC2 — EMR 7.13 ou version ultérieure

  • Amazon EMR sur EKS — EMR 7.13 ou version ultérieure

  • Amazon EMR Serverless — EMR 7.13 ou version ultérieure

Une fois configuré, vous pouvez immédiatement lire ou écrire des fichiers de données à partir d'EMR à l'aide d'API standard.

Pour plus d'informations sur l'intégration d'Amazon EMR, consultez la section Vente d'informations d'identification basée sur le chemin de Lake Formation dans le guide de gestion Amazon EMR.

Comment ça marche

L'accès à la localisation du lac Formation-based Amazon S3 suit le flux suivant :

  1. Un principal ou un rôle demande l'accès aux fichiers de données Amazon S3 via un service tel qu'une tâche Amazon EMR Spark ou un pipeline de traitement de données.

  2. Le plug-in AWS SDK intégré à EMR intercepte la demande Amazon S3 et appelle l'API Lake Formation. GetTemporaryDataLocationCredentials

  3. Lake Formation vérifie si le chemin Amazon S3 correspond à un emplacement enregistré et à une table cataloguée, et évalue les autorisations de l'appelant sur la table associée. AWS Glue

  4. Si l'appelant dispose SELECT d'SUPERautorisations sur la table correspondante avec un accès complet à la table, Lake Formation vend des informations d'identification temporaires limitées à cet emplacement Amazon S3. SELECTaccorde des informations d'identification READ ; SUPER accorde des informations d'identification READWRITE.

  5. Le plugin utilise ces informations d'identification pour terminer la demande Amazon S3, et Amazon S3 fournit les données à l'application.

  6. Toutes les opérations de vente d'informations d'identification sont enregistrées CloudTrail, ce qui fournit une piste d'audit pour l'accès aux données.

Ce processus est transparent pour vous et vous utiliserez simplement les autorisations existantes de Lake Formation avec des API standard basées sur des fichiers.

# Read raw data (Lake Formation-based S3 Location access) raw_df = spark.read.json("s3://finance-datalake/raw/transactions/dt=2024-03-21/") # Read governed data (Lake Formation-based S3 Location access) transactions_df = spark.read.parquet("s3://data-lake/transactions/year=2026/") # Write processed data (Lake Formation-based S3 Location access) processed_df.write \ .mode("append") \ .partitionBy("transaction_date") \ .parquet("s3://finance-datalake/processed/transactions/") print("ETL complete. Records written:", processed_df.count())
Conditions d'autorisation

La fonctionnalité ne fournit actuellement des informations d'identification que lorsque l'appelant a un accès complet à la table, c'est-à-dire à toutes SELECT les colonnes sans filtres de ligne ou de colonne. Si des filtres au niveau des lignes ou des colonnes sont appliqués à une table, les appelants doivent continuer à utiliser des moteurs fiables tels qu'Athena, Amazon EMR AWS Glue ou Amazon Redshift qui peuvent appliquer ces filtres. Cela garantit que les limites de sécurité restent cohérentes.

Cross-account accès

L'accès simplifié de Lake Formation aux sites Amazon S3 fonctionne avec des fonctionnalités de partage entre comptes. Lorsque vous partagez une table avec un autre AWS compte via Lake Formation, les destinataires peuvent accéder aux fichiers de données Amazon S3 sous-jacents à l'aide de leurs autorisations Lake Formation, sous réserve des mêmes exigences d'accès à la table complète.

Cette fonctionnalité prend en charge le mécanisme de liaison des ressources de Lake Formation pour l'accès entre comptes. Lorsqu'un compte client dispose d'autorisations sur une table partagée, Lake Formation transmet des informations d'identification limitées à l'emplacement Amazon S3 du compte enregistré, permettant ainsi un accès fluide aux données entre comptes sans nécessiter de politiques de compartiment Amazon S3 ou de rôles IAM entre comptes distincts.

Emplacements Amazon S3 imbriqués

Lorsque plusieurs tables pointent vers des emplacements imbriqués dans le même bucket, Lake Formation applique le comportement suivant :

  • Lors de l'accèss3://bucket, vous recevez des autorisations correspondant à la table enregistrée au niveau du bucket.

  • Lors de l'accèss3://bucket/folder1, vous recevez des autorisations correspondant à la table enregistrée sur ce chemin spécifique.

  • Pour accéder aux dossiers sans table enregistrée (par exemple,s3://bucket/folder2), vous recevez les autorisations de l'emplacement enregistré du parent le plus proche.

  • Si plusieurs tables sont enregistrées au même endroit, Lake Formation renvoie une erreur en raison de conflits d'autorisations.

Audit et conformité

Toutes les opérations de vente d'informations d'identification sont enregistrées CloudTrail, ce qui fournit une piste d'audit pour l'accès aux données. Lorsque Lake Formation vend des informations d'identification via l'GetTemporaryDataLocationCredentialsAPI, elle CloudTrail enregistre :

  • Le principal (utilisateur ou rôle)

  • Horodatage

  • Emplacement Amazon S3

  • AWS GlueTable associée

Les appels d'API Amazon S3 ultérieurs effectués avec ces informations d'identification sont également enregistrés CloudTrail en tant qu'événements de données Amazon S3, le contexte les reliant à l'autorisation accordée à Lake Formation. Les auditeurs disposent ainsi d'une visibilité complète sur qui a accédé à quelles données, quand et par quel chemin d'autorisation, le tout dans un seul flux de CloudTrail journal.

Pris en charge AWS services

L'accès simplifié de Lake Formation aux sites Amazon S3 fonctionne avec :

  • Amazon EMR sur Amazon EC2 (EMR 7.13 ou version ultérieure)

  • Amazon EMR sur EKS (EMR 7.13 ou version ultérieure)

  • Amazon EMR Serverless (EMR 7.13 ou version ultérieure)

Plug-in open source pour les services tiers

Vous pouvez également intégrer vos Trino applications Apache Spark ou vos applications à l'aide d'API ou via un plugin open source fourni par AWS. Pour plus d'informations, consultez aws-lakeformation-accessgrants-plugin-java-v2 sur. GitHub

Considérations

Tenez compte des considérations suivantes lors de l'utilisation de la vente automatique d'informations d'identification pour les sites Amazon S3 :

  • La vente d'informations d'identification pour les sites Amazon S3 n'est pas prise en charge entre les régions.

  • La vente d'informations d'identification est prise en charge pour les sites Amazon S3 inclus comme emplacement principal de la table.