Comment puis-je télécharger des journaux depuis la console Elastic Beanstalk sans recevoir le message d'erreur Accès refusé ?

Lecture de 4 minute(s)
0

Je souhaite télécharger les journaux depuis la console AWS Elastic Beanstalk sans recevoir un message d'erreur Accès refusé ou sans que la page des journaux ne soit bloquée lors du chargement.

Brève description

Lorsque vous demandez des journaux de suivi dans la console d'environnement Elastic Beanstalk ou via des journaux Web, les entrées de journal les plus récentes sont liées entre elles. Les entrées du journal sont liées entre elles dans un seul fichier texte et sont téléchargées sur Amazon Simple Storage Service (Amazon S3) par une instance de votre environnement.

Lorsque vous demandez des journaux groupés, une instance de votre environnement regroupe les fichiers journaux complets dans une archive ZIP et les télécharge sur Amazon S3.

Les instances de votre environnement doivent disposer d'un profil d'instance Elastic Beanstalk autorisé (s3:Get*, s3:List*, s3:PutObject) à modifier votre compartiment Amazon S3. Ces autorisations sont incluses dans le profil d'instance par défaut. Si vous utilisez un rôle de profil d'instance personnalisé, incluez ces autorisations.

Pour résoudre les erreurs d'accès refusé ou les journaux bloqués pendant le téléchargement lorsque vous essayez de récupérer des journaux depuis votre console AWS Elastic Beanstalk, vérifiez les points suivants :

  • Autorisations utilisateur Amazon S3
  • Politique relative aux compartiments Amazon S3
  • Compartiment Amazon S3 chiffré avec une clé KMS
  • Politique relative aux points de terminaison de passerelle Amazon S3
  • Politiques de contrôle des services (SCP)
  • Utilisation des ressources

Résolution

Autorisations utilisateur Amazon S3

Elastic Beanstalk utilise les autorisations des utilisateurs pour enregistrer ou télécharger des journaux dans votre compartiment Elastic Beanstalk S3. Les utilisateurs d'AWS Identity and Access Management (IAM) doivent disposer des autorisations suivantes pour récupérer les journaux depuis la console Elastic Beanstalk :

  • s3:PutObject
  • s3:GetObject
  • s3:GetBucketAcl
  • s3:PutObjectAcl

Remarque : Votre politique utilisateur doit également inclure l'autorisation s3:DeleteObject car Elastic Beanstalk utilise vos autorisations utilisateur pour supprimer les journaux d'Amazon S3.

Exemple :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject",
        "s3:GetBucketAcl",
        "s3:PutObjectAcl"
      ],
      "Resource": "*"
    }
  ]
}

Politique relative aux compartiments Amazon S3

Vérifiez votre politique relative aux compartiments Amazon S3 d'Elastic Beanstalk et assurez-vous que l'autorisation PutObject est accordée à votre profil d'instance. L'autorisation PutObject est automatiquement autorisée pour votre profil d'instance par défaut (aws-elasticbeanstalk-ec2-role). Si vous utilisez un profil d'instance personnalisé, veillez à ajouter l'autorisation PutObject.

Exemple :

{
            "Sid": "eb-ad78f54a-f239-4c90-adda-49e5f56cb51e",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::123456789012 :role/aws-elasticbeanstalk-ec2-role",
                    "arn:aws:iam::126355979347:role/custom-instance-profile-role"
                ]
            },
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::elasticbeanstalk-ap-south-1-123456789012/resources/environments/logs/*"
        },

Compartiment Amazon S3 chiffré avec une clé KMS

Le chiffrement par clé KMS peut être ajouté aux compartiments Amazon S3 utilisés par Elastic Beanstalk. Lorsque le chiffrement par clé KMS est ajouté, l'URL pré-signée générée par l'action Elastic Beanstalk Pull Bundle Logs sur la console échoue. Cet échec est indiqué par une erreur d'accès refusé.

Pour contourner ce problème, vous pouvez télécharger manuellement les journaux groupés à partir des emplacements des compartiments Amazon S3. Pour plus d'informations, consultez la section Emplacement de journal dans Amazon S3.

Politique relative aux points de terminaison de passerelle Amazon S3

Un environnement Elastic Beanstalk peut être créé dans des sous-réseaux privés à l'aide des points de terminaison Amazon Virtual Private Cloud (Amazon VPC). Pour ce scénario, vous devez disposer d'un point de terminaison de passerelle Amazon S3 pour communiquer avec les instances et récupérer des fichiers tels que UserdataBootstrap.sh et platform.zip. Vérifiez s'il existe des restrictions utilisateur au niveau du point de terminaison de la passerelle Amazon S3. Pour plus d'informations, consultez la section Points de terminaison de passerelle pour Amazon S3.

Politiques de contrôle des services

Si vos autorisations sont correctes et que vous recevez toujours le message d'erreur Accès refusé, vérifiez si une politique organisationnelle est activée pour votre compte. Pour plus d'informations, consultez la section Politiques de contrôle des services (SCP).

Utilisation des ressources

Si toutes les autorisations et politiques sont correctement configurées, vérifiez l'utilisation des ressources pour votre instance Amazon Elastic Compute Cloud (Amazon EC2). Si le serveur est sur-utilisé, par exemple en cas d'utilisation élevée du processeur ou de la mémoire, vos journaux peuvent être bloqués en cours de téléchargement. Pour résoudre ce problème, modifiez le type d'instance afin d'augmenter la capacité de stockage du processeur et de la mémoire. Par exemple, vous pouvez le modifier de t2.micro à t2.medium.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an