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.
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.
Rubriques
- Méthodes d'octroi d'un accès intercompte dans AWS Glue
- Ajouter ou mettre à jour la politique de ressource du catalogue de données
- Créer un appel d'API intercompte
- Créez un appel ETL intercompte
- Journalisation entre comptes CloudTrail
- Propriété et facturation des ressources intercomptes
- Limitations des accès inter-comptes
Méthodes d'octroi d'un accès intercompte dans AWS Glue
Vous pouvez accorder l'accès à vos données à des AWS comptes externes en utilisant AWS Glue des méthodes ou en utilisant des AWS Lake Formation subventions entre comptes. Les AWS Glue méthodes utilisent des politiques AWS Identity and Access Management (IAM) pour obtenir un contrôle d'accès précis. 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.
Le principal de la politique de confiance peut également être un directeur de AWS service si vous souhaitez accorder à un AWS service l'autorisation d'assumer ce rôle.
-
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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetDatabase" ], "Principal": {"AWS": [ "arn:aws:iam::
account-B-id
:role/Dev" ]}, "Resource": [ "arn:aws:glue:us-east-1:account-A-id
:catalog", "arn:aws:glue:us-east-1:account-A-id
:database/db1" ] } ] }
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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetDatabase" ], "Resource": [ "arn:aws:glue:us-east-1:
account-A-id
:catalog", "arn:aws:glue:us-east-1:account-A-id
:database/db1" ] } ] }
Ajouter ou mettre à jour la politique de ressource du catalogue de données
Vous pouvez ajouter ou mettre à jour la politique de ressources du catalogue de AWS Glue données à l'aide de la console, de l'API ou 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, consultez la section Affichage de toutes les subventions entre comptes à l'aide du fonctionnement de l' GetResourcePolicies API dans le Guide du AWS Lake Formation développeur.
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)
glue:PutResourcePolicy
autorisé. -
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-hybrid
avec 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 AWS Glue PySpark et Scala ont un champ d'ID de catalogue. Si toutes les autorisations requises ont été accordées pour permettre l'accès entre comptes, une tâche ETL peut effectuer PySpark et Scala appeler des opérations d'API entre comptes en transmettant l'ID du AWS compte cible dans le champ ID du catalogue pour accéder aux ressources du catalogue de données d'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 PySpark les API compatiblescatalog_id
, voirGlueContext classe. Pour les API Scala qui prennent en charge catalogId
, consultez AWS GlueAPI Scala GlueContext .
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 catalog-id
le client qui exécute le travail et grantor-account-id
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.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "glue:GetConnection", "glue:GetDatabase", "glue:GetTable", "glue:GetPartition" ], "Principal": {"AWS": ["arn:aws:iam::
grantee-account-id
:root"]}, "Resource": [ "arn:aws:glue:us-east-1:grantor-account-id
:*" ] } ] }
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 entre comptes CloudTrail
Lorsqu'une tâche d'AWS Glueextraction, de transformation et de chargement (ETL) accède aux données sous-jacentes d'une table de catalogue de données partagée via des autorisations AWS Lake Formation entre comptes, il existe un comportement de AWS CloudTrail journalisation supplémentaire.
Aux fins de cette discussion, le AWS compte qui a partagé la table est le compte propriétaire, et le compte avec lequel la table a été partagée est le compte destinataire. Lorsqu'une tâche ETL du compte destinataire accède aux données de la table du compte propriétaire, l' CloudTrail événement d'accès aux données ajouté aux journaux du compte destinataire est copié dans les journaux du CloudTrail 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 CloudTrail événements n'incluent pas d'identifiant 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, consultez la section CloudTrailConnexion entre comptes dans le Guide du AWS Lake Formation développeur.
consultez aussi
Propriété et facturation des ressources intercomptes
Lorsqu'un utilisateur d'un AWS compte (compte A) crée une nouvelle ressource telle qu'une base de données dans un autre compte (compte B), cette ressource appartient alors au compte B, le compte sur 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 plus d'informations sur la AWS Glue facturation et la tarification, consultez la section Fonctionnement de la AWS tarification
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 plus d'informations sur la migration d'un catalogue Athena vers leAWS Glue, consultez la section Mise à niveau vers le AWS Glue Data Catalog step-by-step dans le guide de l'utilisateur d'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
DataCatalog
d'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.