Pourquoi des erreurs sont-elles générées lors de l'utilisation de yum sur mon instance EC2 exécutant Amazon Linux 1 ou Amazon Linux 2 ?

Date de la dernière mise à jour : 24/03/2022

Pourquoi des erreurs sont-elles générées lors de l'utilisation de yum sur mon instance Amazon Elastic Compute Cloud (Amazon EC2) exécutant Amazon Linux 1 ou Amazon Linux 2 ?

Brève description

Utilisez les messages de sortie de la commande yum pour déterminer l'erreur qui s'est produite. Les messages d'erreur suivants sont courants :

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

Résolution

La connexion a expiré après XXXX millisecondes

1.    Vérifiez que le groupe de sécurité attaché à votre instance EC2 autorise le trafic http/https sortant.

2.    Vérifiez que les listes d'accès réseau associées au sous-réseau de votre instance EC2 autorisent le trafic http/https sortant via vos listes NACL.

L'exemple suivant montre une liste 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.    Vérifiez que votre instance EC2 a accès aux référentiels Amazon Linux à l'aide de l'une des options ci-dessous.

  • Votre instance se trouve dans un sous-réseau public avec une passerelle Internet. Pour plus d'informations, consultez Activer l'accès Internet.
  • Votre instance se trouve dans un sous-réseau privé avec une passerelle NAT. Pour plus d'informations, consultez Passerelles NAT.
  • Votre instance se trouve dans un sous-réseau privé avec une instance NAT. Pour plus d'informations, consultez Instances NAT.
  • Votre instance se trouve dans un sous-réseau public ou privé avec un point de terminaison d'un VPC S3. Pour plus d'informations, consultez Comment puis-je mettre à jour yum ou installer des packages sans accès Internet sur mes instances EC2 exécutant Amazon Linux 1 ou Amazon Linux 2 ? 
  • Votre instance se trouve dans un sous-réseau privé avec un proxy. Pour configurer yum de sorte à utiliser un proxy, modifiez le fichier /etc/yum.conf avec les paramètres suivants : Dans l'exemple suivant, remplacez le port proxy, le nom d'utilisateur proxy et le mot de passe proxy par les valeurs correctes de votre proxy.
proxy=http://proxy-server-IP-address:proxy_port
proxy_username="proxy-user-name"
proxy_password="proxy-password"

Pour plus d'informations, consultez 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 telnet 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 de votre instance.

Amazon Linux 1

telnet repo.us-east-1.amazonaws.com 80

Amazon Linux 2

telnet amazonlinux.us-east-1.amazonaws.com 80

Remarque : Telnet n'est pas installé par défaut sur toutes les AMI. Pour installer telnet, exécutez la commande suivante :

sudo yum install telnet

Erreur HTTP 403 – Interdit

1.    Si vous utilisez un point de terminaison d'un VPC S3 dans le VPC de votre instance, vérifiez que la stratégie attachée autorise l'appel d'API s3:GetObject sur les ressources suivantes :

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/* »

Remarque : remplacez la région dans les exemples précédents par la région de votre instance.

Pour plus d'informations, consultez Politiques de point de terminaison pour Amazon S3.

2.    Si vous utilisez un proxy pour accéder aux référentiels Amazon Linux, vérifiez que les sous-domaines .amazonaws.com figurent dans la liste autorisée de la configuration de votre proxy.

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

1.    Exécutez les commandes suivantes pour vérifier 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 de votre instance.

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

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

2.    Vérifiez 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

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 aboutiront. 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 du VPC plus deux aboutiront également. L'adresse IPv6 n'est accessible que sur les instances EC2 reposant sur le système Nitro.

Erreur HTTP 407 – Authentification proxy requise

Cela se produit si votre proxy ne peut pas terminer la demande, car yum ne dispose pas d'informations d'authentification appropriées pour votre serveur proxy. Pour configurer yum pour utiliser un proxy, modifiez le fichier /etc/yum.conf avec les paramètres suivants :

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 vérifier que le fichier /etc/resolv.conf possède l'adresse IP correcte 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 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

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?