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.
Configurer l'accès entre comptes à un catalogue de données AWS Glue partagé à l'aide d'Amazon Athena
Créée par Denis Avdonin () AWS
Environnement : Production | Technologies : DataLakes ; Analyses ; Big data | Charge de travail : toutes les autres charges de travail |
AWSservices : Amazon Athena ; Glue AWS |
Récapitulatif
Ce modèle fournit des step-by-step instructions, notamment des exemples de politique AWS Identity and Access Management (IAM), pour configurer le partage entre comptes d'un ensemble de données stocké dans un bucket Amazon Simple Storage Service (Amazon S3) à l'aide du AWS Glue Data Catalog. Vous pouvez stocker l'ensemble de données dans un compartiment S3. Les métadonnées sont collectées par un robot d'exploration AWS Glue et placées dans le catalogue de données AWS Glue. Le compartiment S3 et le catalogue de données AWS Glue se trouvent dans un AWS compte appelé compte de données. Vous pouvez donner accès IAM aux principaux sur un autre AWS compte appelé compte consommateur. Les utilisateurs peuvent interroger les données du compte client à l'aide du moteur de requête sans serveur Amazon Athena.
Conditions préalables et limitations
Prérequis
Deux AWScomptes actifs
Un compartiment S3 dans l'un des AWS comptes
AWSInterface de ligne de commande (AWSCLI), installée et configurée (ou AWS CloudShell
pour exécuter AWS CLI des commandes)
Versions du produit
Ce modèle fonctionne uniquement avec la version 2 du moteur Athena et la version 3 du moteur Athena. Nous vous recommandons de passer à la version 3 du moteur Athena. Si vous ne parvenez pas à passer de la version 1 du moteur Athena à la version 3 du moteur Athena, suivez l'approche décrite dans l'accès au catalogue de données AWS Glue entre comptes avec Amazon Athena
Architecture
Pile technologique cible
Amazon Athena
Amazon Simple Storage Service (Amazon S3)
Glue AWS
AWSIdentity and Access Management (IAM)
AWSService de gestion des clés (AWSKMS)
Le schéma suivant montre une architecture qui utilise des IAM autorisations pour partager les données d'un compartiment S3 d'un AWS compte (compte de données) avec un autre AWS compte (compte consommateur) via le AWS Glue Data Catalog.
Le schéma suivant illustre le flux de travail suivant :
La politique du compartiment S3 appliquée au compte de données accorde des autorisations à un IAM rôle dans le compte consommateur et au rôle de service AWS Glue Crawler dans le compte de données.
La politique AWS KMS clé du compte de données accorde des autorisations au IAM rôle dans le compte client et au rôle de service AWS Glue Crawler dans le compte de données.
Le robot AWS Glue du compte de données découvre le schéma des données stockées dans le compartiment S3.
La politique de ressources du AWS Glue Data Catalog dans le compte de données autorise l'accès au IAM rôle dans le compte client.
Un utilisateur crée une référence de catalogue nommée dans le compte client à l'aide d'une AWS CLI commande.
Une IAM politique accorde à un IAM rôle dans le compte consommateur l'accès aux ressources du compte de données. La politique de confiance du IAM rôle permet aux utilisateurs du compte client d'assumer le IAM rôle.
Un utilisateur du compte consommateur assume le IAM rôle et accède aux objets du catalogue de données à l'aide de SQL requêtes.
Le moteur sans serveur Athena exécute les requêtes. SQL
Remarque : les IAM meilleures pratiques recommandent d'accorder des autorisations à un IAM rôle et d'utiliser la fédération d'identité
Outils
Amazon Athena est un service de requête interactif qui vous permet d'analyser les données directement dans Amazon S3 en utilisant la norme. SQL
Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.
AWSGlue est un service d'extraction, de transformation et de chargement (ETL) entièrement géré. Il vous aide à classer, nettoyer, enrichir et déplacer les données de manière fiable entre les magasins de données et les flux de données.
AWSIdentity and Access Management (IAM) vous aide à gérer en toute sécurité l'accès à vos AWS ressources en contrôlant qui est authentifié et autorisé à les utiliser.
AWSLe service de gestion des clés (AWSKMS) vous aide à créer et à contrôler des clés cryptographiques pour protéger vos données.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Accordez l'accès aux données du compartiment S3. | Créez une politique de compartiment S3 basée sur le modèle suivant et assignez la politique au compartiment dans lequel les données sont stockées.
La politique du bucket accorde des autorisations au IAM rôle dans le compte client et au rôle de service AWS Glue Crawler dans le compte de données. | Administrateur du cloud |
(Si nécessaire) Accordez l'accès à la clé de chiffrement des données. | Si le compartiment S3 est chiffré par une AWS KMS clé, accordez l' Mettez à jour la politique clé avec la déclaration suivante :
| Administrateur du cloud |
Accordez au robot d'exploration l'accès aux données. | Associez la IAM politique suivante au rôle de service du robot d'exploration :
| Administrateur du cloud |
(Si nécessaire) Accordez au robot d'exploration l'accès à la clé de chiffrement des données. | Si le compartiment S3 est chiffré par une AWS KMS clé, accordez l'
| Administrateur du cloud |
Accordez au IAM rôle dans le compte client et au robot d'exploration l'accès au catalogue de données. |
Cette politique autorise toutes les actions AWS Glue sur toutes les bases de données et tables du compte de données. Vous pouvez personnaliser la politique pour n'accorder que les autorisations requises aux principaux consommateurs. Par exemple, vous pouvez fournir un accès en lecture seule à des tables ou à des vues spécifiques d'une base de données. | Administrateur du cloud |
Tâche | Description | Compétences requises |
---|---|---|
Créez une référence nommée pour le catalogue de données. | Pour créer une référence de catalogue de données nommée, utilisez CloudShellou une installation locale AWS CLI pour exécuter la commande suivante :
| Administrateur du cloud |
Accordez au IAM rôle associé au compte client l'accès aux données. | Associez la politique suivante au IAM rôle dans le compte client pour accorder au rôle un accès multicompte aux données :
Ensuite, utilisez le modèle suivant pour spécifier quels utilisateurs peuvent accepter le IAM rôle dans sa politique de confiance :
Enfin, accordez aux utilisateurs les autorisations nécessaires pour assumer le IAM rôle en attachant la même politique au groupe d'utilisateurs auquel ils appartiennent. | Administrateur du cloud |
(Si nécessaire) Accordez au IAM rôle du compte client l'accès à la clé de chiffrement des données. | Si le compartiment S3 est chiffré par une AWS KMS clé, accordez l'
| Administrateur du cloud |
Passez au IAM rôle dans le compte client pour accéder aux données. | En tant que consommateur de données, passez au IAM rôle permettant d'accéder aux données du compte de données. | Consommateur de données |
Accédez aux données. | Interrogez des données à l'aide d'Athena. Par exemple, ouvrez l'éditeur de requêtes Athena et exécutez la requête suivante :
Au lieu d'utiliser une référence de catalogue nommée, vous pouvez également faire référence au catalogue par son Amazon Resource Name (ARN). Remarque : Si vous utilisez une référence de catalogue dynamique dans une requête ou une vue, entourez-la de guillemets doubles évasifs (\ »). Par exemple :
Pour plus d'informations, consultez la section Accès entre comptes aux catalogues de données AWS Glue dans le guide de l'utilisateur Amazon Athena. | Consommateur de données |
Ressources connexes
Accès entre comptes aux catalogues de données AWS Glue (documentation Athena)
(AWSCLI) create-data-catalog (Référence AWS CLI de commande)
Accès au catalogue de données AWS Glue entre comptes avec Amazon Athena
AWS (Big Data Blog) Bonnes pratiques en matière de sécurité dans IAM (IAMdocumentation)
Informations supplémentaires
Utiliser Lake Formation comme alternative au partage entre comptes
Vous pouvez également utiliser AWS Lake Formation pour partager l'accès aux objets du catalogue AWS Glue entre différents comptes. Lake Formation fournit un contrôle d'accès précis au niveau des colonnes et des lignes, un contrôle d'accès basé sur des balises, des tables gouvernées pour les ACID transactions et d'autres fonctionnalités. Bien que Lake Formation soit bien intégrée à Athéna, elle nécessite une configuration supplémentaire par rapport à l'approche basée uniquement sur ce modèleIAM. Nous vous recommandons d'envisager la décision d'utiliser Lake Formation ou des contrôles d'accès IAM uniquement dans le contexte plus large de l'architecture globale de votre solution. Les considérations incluent les autres services concernés et la manière dont ils s'intègrent aux deux approches.