Examinez les autorisations IAM nécessaires pour les tâches ETL
Lorsque vous créez une tâche à l'aide de AWS Glue Studio, la tâche dispose des autorisations du rôle IAM que vous spécifiez quand vous la créez. Ce rôle IAM doit avoir l'autorisation d'extraire des données de votre source de données, d'écrire des données sur votre cible et d'accéder aux ressources AWS Glue.
Le nom du rôle que vous créez pour la tâche doit démarrer par la chaîne AWSGlueServiceRole pour être utilisé correctement par AWS Glue Studio. Par exemple, vous pouvez nommer votre rôle AWSGlueServiceRole-FlightDataJob.
Autorisations de source et de cible de données
Une tâche AWS Glue Studio doit avoir accès à l'intégralité des sources, cibles, scripts et répertoires temporaires Amazon S3 que vous utilisez pour celle-ci. Vous pouvez créer une politique pour fournir un accès détaillé à des ressources Amazon S3 spécifiques.
-
Les sources de données nécessitent les autorisations
s3:ListBucketets3:GetObject. -
Les sources de données nécessitent les autorisations
s3:ListBucket,s3:PutObjectets3:DeleteObject.
Note
Votre politique IAM doit autoriser s3:GetObject pour les compartiments spécifiques utilisés pour héberger des transformations AWS Glue.
Les compartiments suivants appartiennent au compte de service AWS et sont lisibles dans le monde entier. Ces compartiments servent de référentiel pour le code source correspondant à un sous-ensemble de transformations accessibles via l’éditeur visuel AWS Glue Studio. Les autorisations sur le compartiment sont configurées pour refuser toute autre action d’API sur le compartiment. Tout le monde peut lire les scripts que nous fournissons pour les transformations, mais personne en dehors de notre équipe de service ne peut y « placer » quoi que ce soit. Lorsque votre tâche AWS Glue s’exécute, ce fichier est extrait sous forme d’importation locale afin qu’il soit téléchargé dans le conteneur local. Après cela, il n’y a plus de communication avec ce compte.
Région : nom du compartiment
-
af-south-1 : aws-glue-studio-transforms-762339736633-prod-af-south-1
-
ap-east-1 : aws-glue-studio-transforms-125979764932-prod-ap-east-1
-
ap-northeast-2 : aws-glue-studio-transforms-673535381443-prod-ap-northeast-2
-
ap-northeast-3 : aws-glue-studio-transforms-149976050262-prod-ap-northeast-3
-
ap-south-1 : aws-glue-studio-transforms-584702181950-prod-ap-south-1
-
ap-south-2 : aws-glue-studio-transforms-380279651983-prod-ap-south-2
-
ap-southeast-1 : aws-glue-studio-transforms-737106620487-prod-ap-southeast-1
-
ap-southeast-2 : aws-glue-studio-transforms-234881715811-prod-ap-southeast-2
-
ap-southeast-3 : aws-glue-studio-transforms-151265630221-prod-ap-southeast-3
-
ap-southeast-4 : aws-glue-studio-transforms-052235663858-prod-ap-southeast-4
-
ca-central-1 : aws-glue-studio-transforms-622716468547-prod-ca-central-1
-
ca-west-1 : aws-glue-studio-transforms-915795495192-prod-ca-west-1
-
eu-central-1 : aws-glue-studio-transforms-560373232017-prod-eu-central-1
-
eu-central-2 : aws-glue-studio-transforms-907358657121-prod-eu-central-2
-
eu-north-1 : aws-glue-studio-transforms-312557305497-prod-eu-north-1
-
eu-south-1 : aws-glue-studio-transforms-939684186351-prod-eu-south-1
-
eu-south-2 : aws-glue-studio-transforms-239737454084-prod-eu-south-2
-
eu-west-1 : aws-glue-studio-transforms-244479516193-prod-eu-west-1
-
eu-west-2 : aws-glue-studio-transforms-804222392271-prod-eu-west-2
-
eu-west-3 : aws-glue-studio-transforms-371299348807-prod-eu-west-3
-
il-central-1 : aws-glue-studio-transforms-806964611811-prod-il-central-1
-
me-central-1 : aws-glue-studio-transforms-733304270342-prod-me-central-1
-
me-south-1 : aws-glue-studio-transforms-112120182341-prod-me-south-1
-
sa-east-1 : aws-glue-studio-transforms-881619130292-prod-sa-east-1
-
us-east-1 : aws-glue-studio-transforms-510798373988-prod-us-east-1
-
us-east-2 : aws-glue-studio-transforms-251189692203-prod-us-east-2
-
us-west-1 : aws-glue-studio-transforms-593230150239-prod-us-west-1
-
us-west-2 : aws-glue-studio-transforms-818035625594-prod-us-west-2
-
ap-northeast-1 : aws-glue-studio-transforms-200493242866-prod-ap-northeast-1
-
cn-north-1 : aws-glue-studio-transforms-071033555442-prod-cn-north-1
-
cn-northwest-1 : aws-glue-studio-transforms-070947029561-prod-cn-northwest-1
-
us-gov-west-1 : aws-glue-studio-transforms-227493901923-prod-us-gov-west-1-2604
Si vous choisissez Amazon Redshift en tant que source de données, vous pouvez fournir un rôle pour les autorisations de cluster. Les tâches qui s'exécutent sur un cluster Amazon Redshift émettent des commandes qui accèdent à Amazon S3 pour un stockage temporaire en utilisant des informations d'identification temporaires. Si votre tâche s'exécute pendant plus d'une heure, ces informations d'identification expirent, ce qui entraîne l'échec de la tâche. Pour éviter ce problème, vous pouvez attribuer un rôle au cluster Amazon Redshift lui-même qui accorde les autorisations nécessaires aux tâches utilisant des informations d'identification temporaires. Pour de plus amples informations, veuillez consulter la rubrique Déplacement de données vers et depuis Amazon Redshift dans le Guide du développeur AWS Glue.
Si la tâche utilise des sources ou des cibles de données autres qu'Amazon S3, vous devez attacher les autorisations nécessaires au rôle IAM utilisé par la tâche pour accéder à ces sources et cibles de données. Pour de plus amples informations, veuillez consulter Configuration de votre environnement pour accéder aux magasins de données dans le Guide du développeur AWS Glue.
Si vous utilisez des connecteurs et des connexions pour votre magasin de données, vous avez besoin d'autorisations supplémentaires, comme décrit dans Autorisations requises pour l'utilisation de connecteurs.
Autorisations requises pour supprimer des tâches
Dans AWS Glue Studio, vous pouvez sélectionner plusieurs tâches à supprimer dans la console. Pour effectuer cette action, vous devez disposer de l'autorisation glue:BatchDeleteJob. Ceci est différent de la console AWS Glue, qui nécessite une autorisation glue:DeleteJob pour supprimer des tâches.
Autorisations AWS Key Management Service
Si vous prévoyez d'accéder aux sources et cibles Amazon S3 qui utilisent le chiffrement côté serveur avec AWS Key Management Service (AWS KMS), attachez une politique au rôle AWS Glue Studio utilisé par la tâche pour l’autoriser à déchiffrer les données. Le rôle de la tâche nécessite les autorisations kms:ReEncrypt, kms:GenerateDataKey et kms:DescribeKey. En outre, le rôle de la tâche nécessite l'autorisation kms:Decrypt pour télécharger un objet Amazon S3 chiffré avec une clé maître client (CMK) AWS KMS.
Il y a des frais supplémentaires pour l'utilisation des clés CMK AWS KMS. Pour plus d'informations, veuillez consulter les rubriques Concepts AWS Key Management Service — Clés principales client (CMK) et Tarification AWS Key Management Service
Autorisations requises pour l'utilisation de connecteurs
Si vous utilisez un connecteur personnalisé AWS Glue et une connexion pour accéder à un magasin de données, le rôle utilisé pour exécuter la tâche ETL AWS Glue nécessite l'attribution d'autorisations supplémentaires :
-
La politique
AmazonEC2ContainerRegistryReadOnlygérée par AWS pour accéder aux connecteurs achetés sur AWS Marketplace. -
Les autorisations
glue:GetJobetglue:GetJobs. -
Les autorisations AWS Secrets Manager pour accéder aux secrets qui sont utilisés avec les connexions. Consultez Example: Permission to retrieve secret values (Exemple : Autorisation pour récupérer des valeurs secrètes) pour obtenir des exemples de politiques IAM.
Si votre tâche ETL AWS Glue s'exécute dans un VPC exécutant Amazon VPC, alors le VPC doit être configuré comme décrit dans Configuration d'un VPC pour votre tâche ETL.