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 ?
Dernière mise à jour : 21/11/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 VPC Amazon Simple Storage Service (Amazon 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é doté d'un proxy. Pour configurer yum pour utiliser un proxy, modifiez le fichier /etc/yum.conf avec les paramètres suivants. Dans l'exemple suivant, remplacez le port proxy, lenom 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 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 de votre instance.
Amazon Linux 1
curl -I repo.us-east-1.amazonaws.com
Amazon Linux 2
curl -I amazonlinux.us-east-1.amazonaws.com
Remarque : curl est préinstallé sur toutes les AMI, mais les référentiels Amazon Linux ne sont pas accessibles sans informations d'identification. Curl ne peut pas prendre les informations d'identification d'un dépôt yum. Vous recevez un message d'erreur de refus d'accès similaire à celui ci-dessous. 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 temporisation ne se produit 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, tel que 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 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 5000 millisecondes en modifiant la valeur du délai d'attente 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 ?