Considérations et limites de l'utilisation d'Athena pour l'interrogation de données enregistrées dans Lake Formation - Amazon Athena

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.

Considérations et limites de l'utilisation d'Athena pour l'interrogation de données enregistrées dans Lake Formation

Tenez compte des points suivants lorsque vous utilisez Athena pour interroger des données enregistrées dans Lake Formation. Pour plus d'informations, consultez la rubrique Problèmes connus liés à AWS Lake Formation du Guide du développeur AWS Lake Formation .

Les métadonnées des colonnes sont visibles par les utilisateurs non autorisés dans certaines circonstances avec Avro et Custom SerDe

L'autorisation au niveau des colonnes de Lake Formation empêche les utilisateurs d'accéder aux données des colonnes pour lesquelles ils ne disposent pas d'autorisations Lake Formation. Toutefois, dans certaines situations, les utilisateurs peuvent accéder aux métadonnées décrivant toutes les colonnes de la table, y compris les colonnes pour lesquelles ils ne disposent pas d'autorisations pour les données.

Cela se produit lorsque les métadonnées des colonnes sont stockées dans les propriétés des tables en utilisant le format de stockage Apache Avro ou en utilisant un sérialiseur/désérialiseur (SerDe) personnalisé dans lequel le schéma de table est défini dans les propriétés de table avec la définition. SerDe Lorsque vous utilisez Athena avec Lake Formation, nous vous recommandons d'examiner le contenu des propriétés des tables que vous enregistrez dans Lake Formation et, dans la mesure du possible, de limiter les informations stockées dans les propriétés des tables pour éviter que les métadonnées sensibles ne soient visibles par les utilisateurs.

Utilisation des autorisations Lake Formation pour les vues

Pour les données enregistrées dans Lake Formation, un utilisateur Athena ne peut créer une VIEW que s'il dispose des autorisations Lake Formation pour les tables, les colonnes et les emplacements de données Simple Storage Service (Amazon S3) sources sur lesquels la VIEW est basée. Une fois qu'une VIEW est créée dans Athena, les autorisations Lake Formation peuvent être appliquées à la VIEW. Les autorisations au niveau des colonnes ne sont pas disponibles pour un VIEW. Les utilisateurs qui disposent d'autorisations Lake Formation pour une VIEW mais qui ne disposent pas d'autorisations pour la table et les colonnes sur lesquelles la vue est basée ne peuvent pas utiliser la VIEW pour interroger les données. Cependant, les utilisateurs disposant de cette combinaison d'autorisations peuvent utiliser des instructions telles que DESCRIBE VIEW, SHOW CREATE VIEW et SHOW COLUMNS pour afficher les métadonnées VIEW. Pour cette raison, veillez à aligner les autorisations de Lake Formation pour chaque VIEW sur les autorisations de la table sous-jacente. Les filtres de cellules définis sur une table ne s'appliquent pas à une VIEW pour cette table. Les noms des liens de ressource doivent avoir le même nom que la ressource dans le compte d'origine. Des limites supplémentaires s'appliquent à l'utilisation de vues dans une configuration intrecomptes. Pour de plus amples informations sur la configuration des autorisations pour les vues partagées entre comptes, consultez Accès inter-comptes au catalogue de données.

Contrôle d'accès précis de Lake Formation et groupes de travail Athena

Les utilisateurs du même groupe de travail Athena peuvent voir les données que le contrôle d'accès précis de Lake Formation a configurées pour être accessibles au groupe de travail. Pour plus d'informations sur l'utilisation du contrôle d'accès précis dans Lake Formation, voir Gérer le contrôle d'accès précis à l'aide de AWS Lake Formation sur le blog AWS Big Data.

Emplacement des résultats de la requête Athena dans Simple Storage Service (Amazon S3) non enregistré dans Lake Formation

Les emplacements des résultats des requêtes dans Simple Storage Service (Amazon S3) pour Athena ne peuvent pas être enregistrés dans Lake Formation. Les autorisations de Lake Formation ne limitent pas l'accès à ces emplacements. À moins que vous ne limitiez l'accès, les utilisateurs d'Athena peuvent accéder aux fichiers de résultats de requêtes et aux métadonnées alors qu'ils ne disposent pas d'autorisations Lake Formation pour les données. Pour éviter cela, nous vous recommandons d'utiliser des groupes de travail pour spécifier l'emplacement des résultats des requêtes et d'aligner l'appartenance à un groupe de travail sur les autorisations de Lake Formation. Vous pouvez ensuite utiliser les politiques d'autorisation IAM pour limiter l'accès aux emplacements des résultats des requêtes. Pour plus d'informations sur les résultats des requêtes, voir Utilisation des résultats des requêtes, des requêtes récentes et des fichiers de sortie.

Utilisation des groupes de travail Athena pour limiter l'accès à l'historique des requêtes

L'historique des requêtes d'Athena présente une liste des requêtes enregistrées et des chaînes de requête complètes. À moins que vous n'utilisiez des groupes de travail pour séparer l'accès aux historiques de requêtes, les utilisateurs d'Athena qui ne sont pas autorisés à interroger les données dans Lake Formation peuvent visualiser les chaînes de requêtes exécutées sur ces données, y compris les noms de colonnes, les critères de sélection, etc. Nous vous recommandons d'utiliser des groupes de travail pour séparer les historiques de requêtes, et d'aligner l'appartenance à un groupe de travail Athena sur les autorisations de Lake Formation pour en limiter l'accès. Pour plus d’informations, consultez Utilisation des groupes de travail pour contrôler l'accès aux requêtes et les coûts.

Accès inter-comptes au catalogue de données

Pour accéder à un catalogue de données dans un autre compte, vous pouvez utiliser la fonction AWS Glue inter-comptes d'Athena ou configurer l'accès inter-comptes dans Lake Formation.

Accès au catalogue de données Athena inter-comptes

Vous pouvez utiliser la fonction de AWS Glue catalogue multi-comptes d'Athena pour enregistrer le catalogue dans votre compte. Cette fonctionnalité n'est disponible que dans la version 2 du moteur Athena et les versions ultérieures, et est limitée à l'utilisation de la même région entre les comptes. Pour plus d’informations, consultez Enregistrer un compte AWS Glue Data Catalog depuis un autre compte.

Si une politique de ressources est configurée dans le catalogue de données à partager AWS Glue, elle doit être mise à jour pour autoriser l'accès au catalogue de données du compte B AWS Resource Access Manager et autoriser celui-ci à utiliser le catalogue de données du compte A, comme dans l'exemple suivant.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "ram.amazonaws.com" }, "Action": "glue:ShareResource", "Resource": [ "arn:aws:glue:<REGION>:<ACCOUNT-A>:table/*/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:database/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:catalog" ] }, { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<ACCOUNT-B>:root" }, "Action": "glue:*", "Resource": [ "arn:aws:glue:<REGION>:<ACCOUNT-A>:table/*/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:database/*", "arn:aws:glue:<REGION>:<ACCOUNT-A>:catalog" ] } ] }

Pour plus d’informations, consultez Accès entre comptes aux catalogues de données AWS Glue.

Configuration de l'accès inter-comptes dans Lake Formation

AWS Lake Formation vous permet d'utiliser un seul compte pour gérer un catalogue de données central. Vous pouvez utiliser cette fonction pour implémenter l'accès entre comptes aux métadonnées du catalogue de données et aux données sous-jacentes. Par exemple, un compte propriétaire peut accorder à un autre compte (destinataire) une autorisation SELECT sur une table.

Pour qu'une base de données ou une table partagée apparaisse dans l'éditeur de requête Athena, vous devez créer un lien de ressource dans Lake Formation vers la base de données ou la table partagée. Lorsque le compte du destinataire dans Lake Formation interroge la table du propriétaire, il CloudTrailajoute l'événement d'accès aux données aux journaux du compte du destinataire et du compte du propriétaire.

Pour les vues partagées, gardez à l'esprit les points suivants :

  • Les requêtes sont exécutées sur des liens de ressources cibles, et non sur la table ou la vue source, puis la sortie est partagée avec le compte cible.

  • Il ne suffit pas de partager uniquement le point de vue. Toutes les tables impliquées dans la création de la vue doivent faire partie du partage entre comptes.

  • Le nom du lien de la ressource créé sur les ressources partagées doit correspondre au nom de la ressource dans le compte du propriétaire. Si le nom ne correspond pas, un message d'erreur tel que Failed analysis stored view 'awsdatacatalog 's'affiche. my-lf-resource-link. my-lf-view': ligne 3:3 : Le schéma schema_name n'existe pas apparaît.

Pour de plus amples informations sur l'accès inter-comptes dans Lake Formation, consultez les ressources suivantes dans le Guide du développeur AWS Lake Formation  :

Permettre l'accès entre comptes

Mode de fonctionnement des liens des ressources dans Lake Formation

Journalisation entre comptes CloudTrail

Emplacements Amazon S3 chiffrés par CSE-KMS enregistrés auprès de Lake Formation

Les tables OTF (Open Table Format) telles qu'Apache Iceberg qui présentent les caractéristiques suivantes ne peuvent pas être interrogées avec Athena :

  • Les tables sont basées sur les emplacements de données Amazon S3 enregistrés auprès de Lake Formation.

  • Les objets d'Amazon S3 sont chiffrés à l'aide du chiffrement côté client (CSE).

  • Le chiffrement utilise des clés AWS KMS gérées par le client ()CSE_KMS.

Pour interroger des tables non OTF (chiffrées à l'aide d'une CSE_KMS clé), ajoutez le bloc suivant à la politique de la AWS KMS clé que vous utilisez pour le chiffrement CSE. <KMS_KEY_ARN>est l'ARN de la AWS KMS clé qui chiffre les données. <IAM-ROLE-ARN>est l'ARN du rôle IAM qui enregistre la position Amazon S3 dans Lake Formation.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:Decrypt", "Resource": "<KMS-KEY-ARN>", "Condition": { "ArnLike": { "aws:PrincipalArn": "<IAM-ROLE-ARN>" } } }

Les emplacements des données enregistrées dans Lake Formation doivent se trouver dans des sous-répertoires de table

Les tables partitionnées enregistrées dans Lake Formation doivent avoir des données partitionnées dans des répertoires qui sont des sous-répertoires de la table dans Simple Storage Service (Amazon S3). Par exemple, une table avec l'emplacement s3://DOC-EXAMPLE-BUCKET/mytable et les partitions s3://DOC-EXAMPLE-BUCKET/mytable/dt=2019-07-11, s3://DOC-EXAMPLE-BUCKET/mytable/dt=2019-07-12, etc. peut être enregistrée dans Lake Formation et interrogée à l'aide d'Athena. D'autre part, une table dont l'emplacement s3://DOC-EXAMPLE-BUCKET/mytable et les partitions se trouvent à s3://DOC-EXAMPLE-BUCKET/dt=2019-07-11, s3://DOC-EXAMPLE-BUCKET/dt=2019-07-12, etc., ne peut pas être enregistrée dans Lake Formation. Comme ces partitions ne sont pas des sous-répertoires de s3://DOC-EXAMPLE-BUCKET/mytable, elles ne peuvent pas non plus être lues par Athena.

Les requêtes de type CTAS (Create Table As Select) nécessitent des autorisations d'écriture sur Simple Storage Service (Amazon S3)

Les instructions CTAS (Create Table As Statements) nécessitent un accès en écriture à l'emplacement Simple Storage Service (Amazon S3) des tables. Pour exécuter des requêtes CTAS sur des données enregistrées dans Lake Formation, les utilisateurs d'Athena doivent disposer d'autorisations IAM leur permettant d'écrire dans la table des emplacements Simple Storage Service (Amazon S3), en plus des autorisations Lake Formation appropriées leur permettant de lire les emplacements des données. Pour plus d’informations, consultez Création d'une table à partir des résultats des requêtes (CTAS).

L'autorisation DESCRIBE est requise pour la base de données par défaut

L'autorisation DESCRIBE de Lake Formation est requise pour la base de données default. L'exemple de AWS CLI commande suivant accorde l'DESCRIBEautorisation d'accéder à la default base de données à l'utilisateur datalake_user1 titulaire du AWS compte111122223333.

aws lakeformation grant-permissions --principal DataLakePrincipalIdentifier=arn:aws:iam::111122223333:user/datalake_user1 --permissions "DESCRIBE" --resource '{ "Database": {"Name":"default"}}

Pour plus d'informations, consultez la rubrique Référence des autorisations de Lake Formation du Guide du développeur AWS Lake Formation .