Pourquoi est-ce que je reçois des messages d'erreurs lorsque j'utilise yum sur mon instance EC2 Amazon Linux 1, Amazon Linux 2 ou Amazon Linux 2023 ?

Lecture de 6 minute(s)
0

Je reçois des messages d'erreurs lors de l'utilisation de yum sur mon instance Amazon Elastic Compute Cloud (Amazon EC2) en exécutant Amazon Linux 1, Amazon Linux 2 ou Amazon Linux 2023.

Brève description

Utilisez les messages de sortie de la commande yum pour identifier l'erreur qui s'est produite. Voici les messages d'erreur les plus courants :

  • La connexion a expiré en XXX millisecondes
  • Erreur HTTP 403 – Interdit
  • Impossible de résoudre l'hôte : xxxxxxxxx.$awsregion.$awsdomain
  • Erreur HTTP 407 – Authentification par proxy requise
  • La résolution a expiré après 5 000 millisecondes

Résolution

La connexion a expiré en XXXX millisecondes

1.    Assurez-vous que le groupe de sécurité attaché à votre instance EC2 autorise le trafic HTTP ou HTTPS sortant.

2.    Assurez-vous que les ACL réseau associées au sous-réseau de votre instance EC2 autorisent le trafic HTTP ou HTTPS sortant via vos NACL.

L'exemple ci-dessous montre une ACL réseau personnalisée qui autorise le trafic sortant sur les ports 80 et 443 :

Inbound rules
Rule#    Type                    Protocol    Port Range    Source        Allow/Deny
100      Custom TCP Rule         TCP (6)     1024-65535    0.0.0.0/0     ALLOW
101      Custom TCP Rule         TCP (6)     1024-65535    ::/0          ALLOW
*        ALL Traffic             ALL         ALL           ::/0          DENY
*        ALL Traffic             ALL         ALL           0.0.0.0/0     DENY
Outbound rules
Rule #    Type                   Protocol    Port Range    Source       Allow/Deny
100       HTTP (80)              TCP (6)     80            0.0.0.0/0    ALLOW
101       HTTPS (443)            TCP (6)     443           0.0.0.0/0    ALLOW
102       HTTP (80)              TCP (6)     80            ::/0         ALLOW
103       HTTPS (443)            TCP (6)     443           ::/0         ALLOW
*         ALL Traffic            ALL         ALL           ::/0         DENY
*         ALL Traffic            ALL         ALL           0.0.0.0/0    DENY

3.    Assurez-vous que votre instance EC2 a accès aux référentiels Amazon Linux à l'aide de l'une des options suivantes :

proxy=http://proxy-server-IP-address:proxy_port
proxy_username="proxy-user-name"
proxy_password="proxy-password"

Pour plus d'informations, reportez-vous à Utilisation de yum avec un serveur proxy sur le site Web fedoraproject.org.

4.    Après avoir configuré votre instance à l'aide de l'une des options précédentes, exécutez la commande curl suivante pour confirmer que l'instance peut accéder au référentiel. Dans la commande suivante, remplacez us-east-1 par la Région AWS de votre instance.

Amazon Linux 2023

curl -I al2023-repos-us-east-1-de612dc2.s3.dualstack.us-east-1.amazonaws.com

Amazon Linux 1

curl -I repo.us-east-1.amazonaws.com

Amazon Linux 2

curl -I amazonlinux.us-east-1.amazonaws.com

La commande curl est préinstallée sur toutes les Amazon Machine Images (AMI), mais les référentiels Amazon Linux ne sont pas accessibles sans informations d'identification. La commande curl ne peut pas récupérer les informations d'identification d'un référentiel yum. Vous recevez donc un message d'erreur d'accès refusé similaire au suivant. La commande curl est utilisée pour vérifier si le problème de délai d'attente persiste. Le message d'erreur indique que le réseau est accessible et que le problème de délai d'attente ne se pose plus :

$ curl -I amazonlinux.us-east-1.amazonaws.com
HTTP/1.1 403 Forbidden
x-amz-bucket-region: us-east-1
x-amz-request-id: xxxxxxxx
x-amz-id-2: xxxxxxxxxxxxx=
Content-Type: application/xml
Date: Thu, 17 Nov 2022 16:59:59 GMT
Server: AmazonS3

Pour installer un logiciel comme telnet, exécutez la commande suivante :

sudo yum install telnet

Erreur HTTP 403 - Interdit

1.    Pour un point de terminaison d'un VPC Amazon S3 dans le VPC de votre instance, vérifiez que la politique jointe autorise l'appel d'API s3:GetObject sur les ressources suivantes. Dans les exemples suivants, remplacez region par la Région AWS de votre instance.

Amazon Linux 2023 :

« arn:aws:s3:::al2023-repos-us-east-1-de612dc2/* »

Amazon Linux 1 :

« arn:aws:s3:::packages.region.amazonaws.com/* »

« arn:aws:s3:::repo.region.amazonaws.com/* »

Amazon Linux 2 :

« arn:aws:s3:::amazonlinux.region.amazonaws.com/* »

« arn:aws:s3:::amazonlinux-2-repos-region/* »

Pour plus d'informations, reportez-vous à Points de terminaison de passerelle pour Amazon S3.

2.    Si vous utilisez un proxy pour accéder aux référentiels Amazon Linux, assurez-vous que le sous-domaine amazonaws.com figure sur la liste d'autorisation de votre configuration de proxy.

Impossible de résoudre l'hôte : xxxxxxxx.$awsregion.$awsdomain

1.    Exécutez les commandes suivantes pour vous assurer que le répertoire /etc/yum/vars définit les variables yum personnalisées. Le répertoire doit inclure les variables awsdomain et awsregion. Dans l'exemple de commande suivant, remplacez us-east-1 par la région AWS de votre instance.

$ cat /etc/yum/vars/awsregion
us-east-1

$ cat /etc/yum/vars/awsdomain
amazonaws.com

2.    Exécutez la commande suivante pour vérifier la résolution DNS de votre instance. L'instance doit résoudre le nom de domaine des référentiels Amazon Linux.

$ dig amazonlinux.us-east-1.amazonaws.com

$ dig repo.us-east-1.amazonaws.com

$ dig al2023-repos-us-east-1-de612dc2

Les requêtes adressées au serveur DNS fourni par Amazon à l'adresse IPv4 169.254.169.253 et à l'adresse IPv6 fd00:ec2::253 aboutissent. Les requêtes adressées au serveur DNS fourni par Amazon à l'adresse IP réservée à la base de la plage réseau IPv4 VPC plus deux aboutissent également. L'adresse IPv6 n'est accessible que sur les instances EC2 basées sur Nitro.

Erreur HTTP 407 - Authentification par proxy requise

L'erreur HTTP 407 se produit si votre proxy ne parvient pas à terminer la demande puisque yum ou dnf ne disposent pas des informations d'authentification appropriées pour votre serveur proxy. Pour configurer yum ou dnf afin qu'ils utilisent un proxy, modifiez le fichier /etc/yum.conf avec les paramètres suivants :

Amazon Linux 1 et Amazon Linux 2 : /etc/yum.conf
Amazon Linux 2023 : /etc/dnf/dnf.conf

proxy=http://proxy-server-IP-address:proxy_port
proxy_username=proxy-user-name
proxy_password=proxy-password

La résolution a expiré après 5 000 millisecondes

Exécutez la commande suivante pour vous assurer que le fichier /etc/resolv.conf dispose de la bonne adresse IP pour votre serveur DNS :

cat /etc/resolv.conf
nameserver YourDNSIP

Vous pouvez modifier le délai d'expiration de 5 000 millisecondes en modifiant la valeur du délai d'expiration dans le fichier de configuration yum. Pour plus d'informations, reportez-vous à yum.conf sur le site linux.die.net.

Pour vérifier l'heure de la requête à l'aide de dig, exécutez la commande suivante :

$ dig repo.us-east-1.amazonaws.com | grep time

Pour Amazon Linux 2023, modifiez le délai d'expiration en modifiant la valeur des metadata_expire dans /etc/yum.repos.d/amazonlinux.re.

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