Global outage event
If you’re experiencing issues with your AWS services, then please refer to the AWS Health Dashboard. You can find the overall status of ongoing outages, the health of AWS services, and the latest updates from AWS engineers.
Pourquoi ma tâche AWS Glue renvoie-t-elle l'erreur « 403 Access Denied » ?
Ma tâche AWS Glue renvoie l'erreur « 403 Access Denied » lorsqu’elle tente de lire ou d'écrire dans un compartiment Amazon Simple Storage Service (Amazon S3).
Brève description
Les exemples suivants indiquent les raisons courantes pour lesquelles vous pouvez obtenir une erreur « Access Denied » :
- Le rôle Gestion des identités et des accès AWS (AWS IAM) ne dispose pas des autorisations requises pour accéder au compartiment.
- Les politiques de compartiment Amazon S3 n'autorisent pas les autorisations requises pour le rôle IAM.
- Le propriétaire du compartiment S3 est différent du propriétaire de l’objet.
- La politique de point de terminaison Amazon Virtual Private Cloud (Amazon VPC) n'inclut pas les autorisations requises pour accéder au compartiment S3.
- L’objet est chiffré par AWS Key Management Service (AWS KMS). La politique AWS KMS n'accorde pas les autorisations minimum requises au rôle IAM pour utiliser la clé.
- L'option Paiement par le demandeur est activée pour le compartiment S3.
- Les politiques de contrôle des services d'AWS Organizations limitent l'accès au compartiment S3.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.
Mettre à jour les autorisations de rôle IAM pour accéder au compartiment S3
Le rôle IAM qui exécute la tâche AWS Glue nécessite un accès au compartiment S3. Pour accorder les autorisations requises au rôle IAM, attachez une politique IAM au rôle IAM. Il est également recommandé d'attacher la politique gérée AWSGlueServiceRole au rôle IAM afin de confirmer que les autorisations de base relatives à la tâche AWS Glue sont fournies. En outre, créez et attachez une politique gérée par le client pour les autorisations permettant de placer des objets S3 lors de l'écriture.
Pour mettre à jour les autorisations du rôle IAM afin d’accéder au compartiment, procédez comme suit :
- Ouvrez la console IAM.
- Ouvrez le rôle IAM associé à la tâche AWS Glue et nécessitant l'accès au compartiment.
- Dans l’onglet Autorisations de l’utilisateur ou du rôle IAM, développez chaque politique pour consulter son document de politique JSON.
- Dans les documents de politique JSON, recherchez les politiques portant le nom du compartiment. Puis, vérifiez que ces politiques autorisent les actions S3 correctes sur le compartiment. Si le rôle IAM n’autorise pas l’accès requis au compartiment, ajoutez une politique qui accorde les autorisations appropriées. Par exemple, la politique IAM suivante accorde au rôle IAM l'accès pour placer des objets (s3:PutObject) dans le compartiment S3 DOC-EXAMPLE-BUCKET :
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ExampleStmt", "Action": "s3:PutObject", "Effect": "Allow", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }
Remarque : Remplacez DOC-EXAMPLE-BUCKET dans la politique par le nom de votre compartiment S3.
Mettre à jour la politique de compartiment pour accorder les autorisations requises au rôle IAM
Examinez la politique de compartiment pour les configurations suivantes :
- Toutes les instructions qui interdisent explicitement l'accès du rôle IAM au compartiment
- Toutes les autorisations et conditions manquantes susceptibles de restreindre l'accès du rôle IAM
Pour consulter et modifier la politique de compartiment afin d'accorder l'accès requis au rôle IAM, procédez comme suit :
- Ouvrez la console Amazon S3.
- Dans le volet de navigation, choisissez Compartiments.
- Sélectionnez le compartiment S3.
- Sur la page Autorisations, sous Politique de compartiment, examinez la politique de compartiment pour détecter toute instruction refusant l'accès du rôle au compartiment.
- Modifiez la politique de compartiment pour modifier ou supprimer toutes les instructions qui interdisent l'accès du rôle IAM au compartiment.
Pour des exemples de politiques de compartiment, consultez la section Exemples de politiques de compartiment Amazon S3.
Mettre à jour le propriétaire d'un objet
Par défaut, le compte AWS qui charge un objet est propriétaire de l'objet S3. Ce paramètre est vrai même si le compartiment appartient à un autre compte. Si d'autres comptes peuvent charger des objets dans votre compartiment, identifiez le compte propriétaire des objets auxquels votre identité IAM ne peut pas accéder. Pour vérifier à quel compte appartient l'objet, exécutez la commande GetObjectAcl.
Si les identités IAM d'autres comptes chargent des objets dans votre compartiment S3, configurez Propriété d'objets S3. Puis, ajoutez une politique de compartiment qui exige que les objets soient chargés avec la liste de contrôle d’accès (ACL) bucket-owner-full-control bucket-owner-full-control. Lorsque vous ajoutez la politique de compartiment, celle-ci change automatiquement le propriétaire de l'objet en propriétaire du compartiment lorsque l'objet est chargé avec l'ACL bucket-owner-full-control. Pour plus d’informations, consultez la section Comment puis-je exiger que les autres comptes AWS qui chargent des objets dans mon compartiment Amazon S3 m'accordent le contrôle total de ces objets ?
Mettre à jour la politique de point de terminaison Amazon VPC
Mettez à jour la politique de point de terminaison de VPC afin d’inclure les autorisations requises pour accéder aux compartiments et aux objets S3 lorsque les deux conditions suivantes sont remplies :
- Votre tâche AWS Glue lit ou écrit des objets dans Amazon S3.
- La connexion utilise un point de terminaison de VPC pour l’acheminement vers Amazon S3.
Par exemple, la politique de point de terminaison de VPC suivante autorise uniquement l’accès au compartiment DOC-EXAMPLE-BUCKET. Si votre compartiment n'est pas répertorié comme une ressource autorisée dans la politique, les utilisateurs ou les rôles ne peuvent pas utiliser le point de terminaison de VPC pour accéder à votre compartiment :
{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:PutObject" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Remarque : Remplacez DOC-EXAMPLE-BUCKET dans la politique par le nom de votre compartiment S3.
Si des utilisateurs ou des rôles chargent des objets avec une ACL, vous devez mettre à jour la politique de point de terminaison de VPC pour accorder l'accès à l'action PutObjectAcl. Exemple :
{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Effect": "Allow", "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" } ] }
Mettre à jour la stratégie de clé AWS KMS pour autoriser l'accès au rôle IAM
Si votre tâche d'extraction, transformation et chargement (ETL) lit ou écrit des données chiffrées dans Amazon S3, votre tâche doit présenter les configurations suivantes :
- La politique du rôle IAM inclut les autorisations requises pour les actions AWS KMS.
- La stratégie de clé AWS KMS inclut les autorisations requises pour le rôle IAM.
Pour autoriser les actions AWS KMS nécessaires, incluez les autorisations suivantes dans la politique du rôle IAM :
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } }
Remarque : Remplacez l'Amazon Resource Name (ARN) dans la politique par l'ARN de votre choix.
Pour plus d’informations, consultez la section Configuration du chiffrement dans AWS Glue.
Examinez la stratégie de clé KMS pour vérifier si elle autorise l'accès au rôle de la tâche AWS Glue. Pour plus d'informations sur les stratégies de clé, consultez la section Stratégies de clé dans AWS KMS.
Examiner l'option Paiement par le demandeur dans votre compartiment S3
Si l'option Paiement par le demandeur est activée pour le compartiment S3, toutes les requêtes adressées au compartiment depuis la tâche AWS Glue doivent inclure l'en-tête Paiement par le demandeur. Par défaut, les requêtes AWS Glue adressées à Amazon S3 n'incluent pas l'en-tête Paiement par le demandeur. Sans cet en-tête, un appel d'API à un compartiment Paiement par le demandeur échoue avec une exception « Access Denied ». Pour ajouter l'en-tête Paiement par le demandeur à un script ETL, utilisez hadoopConfiguration().set() pour inclure fs.s3.useRequesterPaysHeader dans la variable GlueContext ou la variable de session Apache Spark. Pour plus d'informations, consultez la section Comment accéder aux compartiments Paiement par le demandeur d’Amazon S3 depuis AWS Glue, Amazon EMR ou Athena ?
Examiner votre politique de contrôle des services d’AWS Organizations
Si vous utilisez AWS Organizations, examinez les politiques de contrôle des services pour vous assurer qu'elles autorisent l'accès à Amazon S3. Par exemple, la politique suivante refuse explicitement l’accès à Amazon S3 et génère une erreur « Access Denied » :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }
Pour plus d'informations, consultez la section Activation de toutes les fonctionnalités pour une organisation avec AWS Organizations.
Informations connexes
Comment résoudre les erreurs 403 d'accès refusé depuis Amazon S3 ?

Contenus pertinents
- demandé il y a 2 ans
- demandé il y a 3 ans
AWS OFFICIELA mis à jour il y a 2 ans