Comment mettre à jour yum ou installer des packages sans accès Internet sur mes instances EC2 exécutant Amazon Linux 1 ou Amazon Linux 2 ?

Date de la dernière mise à jour : 02/06/2021

J'exécute Amazon Linux 1 ou Amazon Linux 2 sur mon instance Amazon Elastic Compute Cloud (Amazon EC2). Comment puis-je mettre à jour yum ou installer des packages si mon instance n'a pas accès à Internet ?

Brève description

Les référentiels Amazon Linux sont hébergés dans des compartiments Amazon Simple Storage Service (Amazon S3). Pour mettre à jour et installer des packages sur votre instance sans connexion Internet, créez un point de terminaison de passerelle S3 Amazon Virtual Private Cloud (Amazon VPC). Dans le point de terminaison de la passerelle S3 VPC, incluez une stratégie qui permet l'accès aux compartiments des référentiels. Associez le point de terminaison d'un VPC à la table de routage de votre sous-réseau d'instance.

Remarque : pour activer les référentiels tiers, tels que EPEL, votre instance EC2 doit disposer d'un accès Internet via l'une des options ci-dessous :

Solution

Remarque : gardez à l'esprit ce qui suit lors de l'utilisation de cette solution:

  • Vérifiez que le groupe de sécurité attaché à votre instance EC2 autorise le trafic http sortant.
  • Assurez-vous que le groupe de sécurité attaché à votre point de terminaison d'un VPC S3 autorise le trafic http entrant à partir du sous-réseau de votre instance EC2.
  • Assurez-vous que les listes ACL réseau associées au sous-réseau de votre instance EC2 autorisent ce qui suit :
    Sortie sur les ports 80 (HTTP) et 443 (HTTPS) vers le service régional S3.
    Entrée sur les ports TCP éphémères depuis le service régional S3. Les ports éphémères sont 1024-65535.
    Le service régional S3 est le CIDR du sous-réseau contenant votre point de terminaison d'interface S3. Ou, si vous utilisez une passerelle S3, le service régional S3 est l'IP CIDR public du service S3. Les listes ACL réseau ne prennent pas en charge les listes de préfixes. Pour ajouter le CIDR S3 à votre liste ACL réseau, utilisez 0.0.0.0/0 comme CIDR S3. Vous pouvez également ajouter les CIDR S3 réels dans la liste ACL. Cependant, gardez à l'esprit que les CIDR S3 peuvent changer à tout moment.

1.    Ouvrez la console Amazon EC2, puis sélectionnez votre instance.

2.    Sous l'onglet Mise en réseau, notez l'ID VPC et l'ID de sous-réseau.

3.    Ouvrez la console Amazon VPC, choisissez Subnets (Sous-réseaux), puis sélectionnez votre Subnet ID (ID de sous-réseau).

4.    Choisissez l'onglet Route Table (Table de routage) puis notez l'ID de la table de routage .

5.    Choisissez Endpoints (Points de terminaison), puis Create Endpoint (Créer un point de terminaison).

6.    Créez le point de terminaison à l'aide des informations suivantes :

Pour Service Name (Nom du service), sélectionnez com.amazonaws.[region].s3. Choisissez la région où se trouvent vos ressources. Par exemple com.amazonaws.us-east-1.s3. Pour obtenir la liste complète des codes de région, consultez Régions disponibles.

Pour VPC, sélectionnez l'ID de VPC de votre instance.

Pour Configure route tables (Configurer les tables de routage), sélectionnez Route Table ID (ID de la table de routage) de votre instance.

7.    Choisissez Full Access (Accès complet) ou Custom (Personnalisé) pour Policy (Stratégie).

Si vous choisissez Full Access (Accès complet), votre stratégie de point de terminaison autorise un accès complet à Amazon S3.

Si vous choisissez Custom (Personnalisé), vous devez autoriser l'appel d'API s3:GetObject sur les compartiments de référentiels Amazon Linux :

Amazon Linux 2

Les compartiments S3 arn:aws:s3። :amazonlinux.region.amazonaws.com et arn:aws:s3። :amazonlinux-2-repos-region/* hébergent les référentiels. Voici un exemple de stratégie autorisant l'appel d'API s3:GetObject. Remplacez région par votre région AWS.

{
    "Statement": [
        {
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::amazonlinux.region.amazonaws.com/*",
                "arn:aws:s3:::amazonlinux-2-repos-region/*"
            ]
        }
    ]
}

Amazon Linux 1

Les compartiments S3 arn:aws:s3:::packages.region.amazonaws.com et arn:aws:s3:::repo.region.amazonaws.com hébergent les référentiels. Voici un exemple de stratégie autorisant l'accès à l'appel d'API s3:GetObject. Remplacez région par votre région AWS.

{
    "Statement": [
        {
            "Principal": "*",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::packages.region.amazonaws.com/*",
                "arn:aws:s3:::repo.region.amazonaws.com/*"
            ]
        }
    ]
}

Remarque : remplacez la région dans l'ARN de ressource par la région de votre instance. Pour plus d'informations, consultez la section Stratégies de point de terminaison pour Amazon S3.

8.    Choisissez Create Endpoint (Créer un point de terminaison).

Après avoir créé le point de terminaison d'un VPC S3, vous pouvez installer et mettre à jour des packages dans votre instance Amazon Linux.