Octroi d'un accès intercompte
L'octroi d'un accès intercompte aux ressources du catalogue de données permet à vos tâches Extract-transform-load (ETL) d'interroger et de joindre des données provenant de comptes différents.
Méthodes d'octroi d'un accès intercompte dans AWS Glue
Vous pouvez octroyer l'accès à vos données aux comptes AWS externes à l'aide des méthodes AWS Glue ou des octrois intercomptes AWS Lake Formation. Les méthodes AWS Glue utilisent des politiques AWS Identity and Access Management (IAM) pour obtenir un contrôle précis des accès. Lake Formation utilise un modèle d'autorisations GRANT/REVOKE plus simple similaire aux commandes GRANT/REVOKE dans un système de base de données relationnelle.
Cette section décrit l'utilisation des méthodes AWS Glue. Pour de plus amples informations sur l'utilisation des autorisations intercomptes Lake Formation, consultez Octroi des autorisations Lake Formation dans le Guide du développeur AWS Lake Formation.
Il existe deux méthodes AWS Glue pour accorder un accès intercompte à une ressource :
-
Utilisation d'une politique de ressources de catalogue de données
-
Utilisation d'un rôle IAM
Octroi d'un accès intercompte à l'aide d'une politique de ressource
Voici les étapes générales d'octroi d'un accès intercompte à l'aide d'une politique de ressource de catalogue de données :
-
Un administrateur (ou toute autre identité autorisée) d'un compte A attache une politique de ressource au catalogue de données dans le compte A. Cette politique accorde au compte B des autorisations intercomptes spécifiques pour effectuer des opérations sur une ressource dans le catalogue du compte A.
-
Un administrateur du compte B attache une politique IAM à une identité IAM dans le compte B qui délègue les autorisations reçues du compte A.
L'identité du compte B a désormais accès à la ressource spécifiée dans le compte A.
L'identité a besoin d'une autorisation accordée à la fois par le propriétaire de la ressource (compte A) et son compte parent (compte B) afin d'être en mesure d'accéder à la ressource.
Octroi d'un accès intercompte avec un rôle IAM
Voici les étapes générales d'octroi d'un accès intercompte à l'aide d'un rôle IAM :
-
Un administrateur (ou toute autre identité autorisée) dans le compte qui possède la ressource (compte A) crée un rôle IAM.
-
L'administrateur du Compte A attache une politique au rôle qui accorde des autorisations intercomptes pour l'accès à la ressource en question.
-
L'administrateur du compte A attache une politique d'approbation au rôle qui identifie une identité IAM dans un compte différent (compte B) comme principal pouvant assumer le rôle.
Si vous souhaitez accorder des autorisations à un service AWS pour assumer le rôle, le principal de la politique d'approbation peut également être un principal du service AWS.
-
Un administrateur dans le compte B délègue désormais des autorisations à une ou plusieurs identités IAM du compte B afin qu'elle puisse assumer ce rôle. Cela donne à ces identités du compte B l'accès à la ressource du compte A.
Pour plus d'informations sur l'utilisation d'IAM pour déléguer des autorisations, veuillez consulter la section Access management (français non garanti) dans le Guide de l'utilisateur IAM. Pour plus d’informations sur les utilisateurs, les groupes, les rôles et les autorisations, consultez Identités (utilisateurs, groupes et rôles) dans le Guide de l’utilisateur IAM.
Pour une comparaison entre ces deux approches, veuillez consulter la rubrique Différence entre les rôles IAM et les politiques basées sur les ressources dans le Guide de l'utilisateur IAM. AWS Glue prend en charge les deux options, avec la restriction qu'une politique de ressources peut uniquement accorder l'accès aux ressources du catalogue de données.
Par exemple, pour accorder au rôle Dev du compte B l'accès à la base de données db1 du compte A, attachez la politique de ressources suivante au catalogue du compte A.
En outre, le compte B devrait attacher la politique IAM suivante au rôle Dev avant d'obtenir l'accès à db1 sur le compte A.
Ajouter ou mettre à jour la politique de ressource du catalogue de données
Vous pouvez ajouter ou mettre à jour la politique de ressource du catalogue de données AWS Glue à l'aide de la console, de l'API ou de AWS Command Line Interface (AWS CLI).
Important
Si vous avez déjà accordé des autorisations intercomptes à partir de votre compte avec AWS Lake Formation, l'ajout ou la mise à jour de la politique de ressource du catalogue de données nécessite une étape supplémentaire. Pour en savoir plus, veuillez consulter la rubrique Gestion des autorisations intercomptes avec AWS Glue et Lake Formation dans le Guide du développeur AWS Lake Formation.
Pour déterminer s'il existe des octrois intercomptes Lake Formation, utilisez l'opération d'API glue:GetResourcePolicies ou l'AWS CLI. Si glue:GetResourcePolicies renvoie des politiques autres qu'une politique de catalogue de données existante, les octrois Lake Formation existent. Pour plus d'informations, veuillez consulter la rubrique Affichage de tous les octrois intercomptes à l'aide de l'opération d'API GetResourcePolicies dans le Guide du développeur AWS Lake Formation.
Pour ajouter ou mettre à jour la politique de ressource du catalogue de données (console)
-
Ouvrez la console AWS Glue, à l'adresse https://console.aws.amazon.com/glue/
. Connectez-vous en tant qu'utilisateur administratif AWS Identity and Access Management (IAM) disposant de l'autorisation
glue:PutResourcePolicy. -
Dans le panneau de navigation, sélectionnez Settings (Paramètres).
-
Dans la page Paramètres du catalogue de données, sous Permissions (Autorisations), collez une politique de ressource dans la zone de texte. Ensuite, choisissez Save (Enregistrer).
Si la console affiche une alerte indiquant que les autorisations de la politique s'ajouteront aux autorisations accordées à l'aide de Lake Formation, sélectionnez Proceed (Continuer).
Pour ajouter ou mettre à jour la politique de ressource du catalogue de données (AWS CLI)
-
Soumettez une commande
aws glue put-resource-policy. Si des autorisations Lake Formation existent déjà, assurez-vous d'inclure l'option--enable-hybridavec la valeur'TRUE'.Pour obtenir des exemples d'utilisation de cette commande, veuillez consulter Exemples de politiques basées sur les ressources pour AWS Glue.
Créer un appel d'API intercompte
Toutes les opérations AWS Glue Data Catalog ont un champ CatalogId. Si les autorisations requises ont été accordées pour activer l'accès intercompte, un utilisateur peut créer des appels d'API du catalogue de données intercompte. L'appelant effectue cette opération en transmettant l'ID de compte AWS cible dans CatalogId afin d'accéder à la ressource de ce compte de destination.
Si aucune valeur CatalogId n'est fournie, AWS Glue utilise l'ID de compte de l'appelant par défaut, et l'appel n'est pas intercompte.
Créez un appel ETL intercompte
Certaines API PySpark et Scala AWS Glue ont un champ ID de catalogue. Si toutes les autorisations requises ont été accordées pour activer l'accès intercompte, une tâche ETL peut effectuer des appels PySpark et Scala vers des opérations d'API intercomptes en transmettant l'ID de compte AWS cible dans le champ ID de catalogue afin d'accéder aux ressources du catalogue de données dans un compte cible.
Si aucun ID de catalogue n'est fourni, AWS Glue utilise l'ID de compte de l'appelant par défaut, et l'appel n'est pas intercompte.
Pour les API PySpark qui prennent en charge catalog_id, consultez Classe GlueContext. Pour les API Scala qui prennent en charge catalogId, consultez Liste des API GlueContext Scala AWS Glue.
L'exemple suivant montre les autorisations requises par le bénéficiaire pour exécuter une tâche ETL. Dans cet exemple, grantee-account-id est l'catalog-id du client qui exécute la tâche et grantor-account-id est le propriétaire de la ressource. Cet exemple accorde l'autorisation à toutes les ressources de catalogue dans le compte du concédant. Pour limiter la portée des ressources accordées, vous pouvez fournir des ARN spécifique pour le catalogue, la base de données, la table et la connexion.
Note
Si la table dans le compte du concédant pointe vers un emplacement Amazon S3, qui est également dans le compte du concédant, le rôle IAM utilisé pour exécuter une tâche ETL dans le compte du concédant doit avoir l'autorisation de répertorier et d'obtenir les objets à partir du compte du concédant.
Étant donné que le client du Compte A est déjà autorisé à créer et exécuter des tâches ETL, les étapes élémentaires de configuration d'une tâche ETL pour l'accès intercompte sont les suivantes :
-
Autorisez l'accès intercompte aux données (ignorez cette étape si l'accès intercompte Amazon S3 est déjà configuré).
-
Mettez à jour la politique de compartiment Amazon S3 du compte B pour autoriser un accès intercompte à partir du compte A.
-
Mettez à jour la politique IAM du compte A pour autoriser l'accès au compartiment du Compte B.
-
-
Autoriser l'accès intercompte aux catalogues de données.
-
Créez ou mettez à jour la politique de ressource attachée au catalogue de données dans le compte B pour autoriser l'accès depuis le compte A.
-
Mettez à jour la politique IAM du compte A pour autoriser l'accès au catalogue de données dans le compte B.
-
Journalisation inter-compte CloudTrail
Si une tâche d'extraction, transformation et chargement (ETL) AWS Glue accède aux données sous-jacentes d'une table de catalogue de données partagée via des autorisations intercomptes AWS Lake Formation, il existe d'autres comportements de journalisation AWS CloudTrail.
Aux fins de la présente discussion, le compte AWS qui a partagé la table est le compte propriétaire et le compte avec lequel la table a été partagée est le compte de destinataire. Lorsqu'une tâche ETL dans le compte destinataire accède aux données de la table du compte propriétaire, l'événement CloudTrail d'accès aux données qui est ajouté aux journaux du compte destinataire est copié dans les journaux CloudTrail du compte propriétaire. Cela permet aux comptes propriétaires de suivre les accès aux données par les différents comptes destinataires. Par défaut, les événements CloudTrail n'incluent pas d'identificateur du principal lisible par l'homme (ARN principal). Un administrateur du compte destinataire peut choisir d'inclure l'ARN du principal dans les journaux.
Pour plus d'informations, veuillez consulter la rubrique Journalisation intercompte CloudTrail dans le Guide du développeur AWS Lake Formation.
consultez aussi
Propriété et facturation des ressources intercomptes
Lorsqu'un utilisateur dans un compte AWS (compte A) crée une ressource comme une base de données dans un compte différent (compte B), cette ressource est ensuite détenue par le compte B, le compte dans lequel elle a été créée. L'administrateur du Compte B obtient automatiquement des autorisations complètes pour accéder à la nouvelle ressource, y compris la lecture, l'écriture et l'octroi d'autorisations d'accès à un compte tiers. L'utilisateur du Compte A peut accéder à la ressource qu'il vient de créer uniquement s'il dispose des autorisations appropriées accordées par le Compte B.
Les coûts de stockage et les autres coûts directement liés à la nouvelle ressource sont facturés au Compte B, le propriétaire de la ressource. Le coût des demandes de l'utilisateur qui a créé la ressource est facturé au compte du demandeur, le Compte A.
Pour en savoir plus sur la facturation et la tarification de AWS Glue, consultez Fonctionnement de la tarification AWS
Limitations des accès inter-comptes
AWS GlueL'accès intercompte à a les limitations suivantes :
-
Permettre l'accès entre comptes à AWS Glue n'est pas autorisé si vous avez créé des bases de données et des tables à l'aide d'Amazon Athena ou d'Amazon Redshift Spectrum avant la prise en charge d'une région pour AWS Glue et le propriétaire de la ressource compte n'a pas migré le catalogue de données Amazon Athena vers AWS Glue. Vous pouvez trouver l'état actuel de la migration à l'aide de GetCatalogImportStatus (get_catalog_import_status). Pour en savoir plus sur la migration d'un catalogue Athena vers AWS Glue, veuillez consulter la rubrique Mise à niveau vers l'AWS Glue Data Catalog étape par étape dans le Guide de l'utilisateur Amazon Athena.
-
L'accès intercompte est uniquement pris en charge pour les ressources du catalogue de données, y compris les bases de données, les tables, les fonctions définies par l'utilisateur et les connexions.
-
L'accès entre comptes au catalogue de données depuis Athena nécessite que vous enregistrez le catalogue en tant que ressource
DataCatalogd'Athena. Pour obtenir des instructions, veuillez consulter la rubrique Enregistrement d'un AWS Glue Data Catalog à partir d'un autre compte dans le Guide de l'utilisateur Amazon Athena.