Je souhaite résoudre les problèmes liés aux requêtes entre comptes Amazon Athena avec les ressources partagées AWS Glue Data Catalog et AWS Lake Formation.
Résolution
Suivez ces étapes de dépannage pour les ressources partagées entre comptes de votre catalogue de données ou de Lake Formation.
Ressources partagées entre comptes du catalogue de données
Si vous avez utilisé la fonction Catalogue de données entre comptes Athena pour accéder à un catalogue depuis un autre compte, des erreurs « Accès refusé » peuvent s'afficher. Par exemple, des erreurs « accès refusé » peuvent apparaître lors d'actions de l'API de catalogue de données telles que GetDatabases ou GetTable. Des erreurs « Accès refusé » peuvent également s’afficher si vous accordez à des utilisateurs d'un autre compte l'accès à un compartiment Amazon Simple Storage Service (Amazon S3).
En effet, les requêtes entre comptes requièrent l'accès au catalogue de données et au compartiment Amazon S3 depuis un compte autre que le vôtre.
Pour vérifier vos autorisations relatives à votre catalogue de données et à Amazon S3, procédez comme suit.
Autorisations relatives au catalogue de données
Pour accorder l’accès au catalogue de données au compte emprunteur à partir du propriétaire, procédez comme suit. Puis, accordez les autorisations de stratégie AWS Identity and Access Management (IAM) pour donner accès au rôle d'emprunteur pour les ressources du catalogue de données du compte propriétaire.
Pour plus d'informations, consultez la section Comment puis-je fournir un accès entre comptes aux ressources du catalogue de données AWS Glue ?
Autorisations Amazon S3
Pour utiliser une stratégie de compartiment S3 afin d'accorder un accès entre comptes aux utilisateurs pour exécuter des requêtes, procédez comme suit. Pour plus d'informations, consultez la section Comment puis-je fournir un accès entre comptes à des objets se trouvant dans des compartiments Amazon S3 ?
Pour les compartiments S3 chiffrés avec une clé AWS Key Management Service (AWS KMS) personnalisée, des autorisations supplémentaires peuvent être nécessaires. Pour accorder l'accès entre comptes à un compartiment chiffré à l'aide d'une clé AWS KMS personnalisée, procédez comme suit. Pour plus d'informations, consultez la section Pourquoi les utilisateurs entre comptes reçoivent-ils des erreurs d'accès refusé lorsqu'ils tentent d'accéder à des objets S3 chiffrés par une clé AWS KMS personnalisée ?
Ressources partagées entre comptes de Lake Formation
Pour résoudre le message d'erreur entre comptes de Lake Formation qui s’est affiché, procédez comme suit.
« Autorisations insuffisantes pour Lake Formation : Combinaison illégale »
Cette erreur s'est produite car un utilisateur a partagé une ressource du catalogue de données lorsque des autorisations Lake Formation ont été accordées au groupe IamAllowedPrincipals pour la ressource. Pour résoudre cette erreur, l'utilisateur doit révoquer toutes les autorisations Lake Formation accordées par IAMAllowedPrincipals avant que la ressource ne soit partagée.
« HIVE_METASTORE_ERROR : Le descripteur de stockage est manquant dans la table »
Cette erreur s'est produite car aucune autorisation n'a été accordée sur la table cible. Les autorisations accordées sur un lien de ressource ne s’appliquent pas pour la base de données liée ou la table cible. Pour accorder explicitement des autorisations sur la table cible, procédez comme suit.
- Ouvrez la console Lake Formation.
- Dans le volet de navigation, sélectionnez Tables.
- Dans Tables, choisissez votre lien vers la ressource.
- Sélectionnez Actions, puis Accorder sur la cible.
- Dans Accorder des autorisations sur le lac de données, accordez les autorisations SELECT et DESCRIBE, puis sélectionnez Accorder.
Pour plus d'informations, consultez la section Comment fonctionnent les liens vers les ressources dans Lake Formation.
« Autorisation refusée sur le chemin S3 »
Cette erreur peut se produire lorsqu'un rôle IAM n'est pas autorisé à lire des objets depuis le compartiment S3. Par exemple, si une clé AWS KMS est utilisée pour interroger des données chiffrées appartenant à un compte propriétaire. Dans ce scénario, l'erreur se produit si le rôle IAM n'est pas autorisé à déchiffrer les données d'un autre compte.
Si vous avez utilisé le rôle lié à un service AWSServiceRoleForLakeFormationDataAccess par défaut, créez un rôle IAM personnalisé. Assurez-vous que le rôle IAM dispose des autorisations de clé AWS KMS requises pour le partage avec un autre compte. Ajoutez la stratégie de clé au compte propriétaire. Puis, réenregistrez le compartiment dans Lake Formation avec le nouveau rôle IAM.
Pour plus d'informations, consultez la rubrique Résolution des problèmes liés à Lake Formation.
Informations connexes
Pourquoi ma requête MSCK REPAIR TABLE n'ajoute-t-elle pas de partitions au catalogue de données AWS Glue ?
Comment puis-je résoudre les problèmes d'autorisation de Lake Formation dans Athena ?
Interroger les catalogues de données AWS Glue entre comptes à l'aide d'Amazon Athena