Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vous pouvez améliorer le niveau de sécurité de votre VPC en configurant Amazon ECR de façon à utiliser un point de terminaison d'un VPC d'interface. Les points de terminaison VPC sont alimentés par AWS PrivateLink une technologie qui vous permet d'accéder en privé à Amazon ECR APIs via des adresses IP privées. AWS PrivateLink restreint tout le trafic réseau entre votre VPC et Amazon ECR vers le réseau Amazon. Vous n'avez pas besoin d'une passerelle Internet, d'un périphérique NAT ni d'une passerelle privée virtuelle.
Pour plus d'informations sur AWS PrivateLink les points de terminaison VPC, consultez la section Points de terminaison VPC dans le guide de l'utilisateur Amazon VPC.
Considérations relatives aux points de terminaison d'un VPC Amazon ECR
Avant de configurer les points de terminaison d'un VPC pour Amazon ECR, vous devez tenir compte des considérations suivantes.
-
Pour permettre à vos tâches Amazon ECS hébergées sur des EC2 instances Amazon d'extraire des images privées d'Amazon ECR, créez les points de terminaison VPC d'interface pour Amazon ECS. Pour plus d'informations, consultez Interface VPC Endpoints (AWS PrivateLink) dans le manuel Amazon Elastic Container Service Developer Guide.
-
Les tâches Amazon ECS hébergées sur Fargate qui extrait des images de conteneur à partir d'Amazon ECR peuvent limiter l'accès au VPC spécifique utilisé par ces tâches et au point de terminaison d'un VPC utilisé par le service en ajoutant des clés de condition à au rôle IAM d'exécution de la tâche. Pour en savoir plus, consultez Autorisations IAM facultatives pour les tâches Fargate qui extraient des images Amazon ECR sur les points de terminaison d'interface dans le guide du développeur du service de conteneur Amazon Elastic.
-
Le groupe de sécurité attaché au point de terminaison d'un VPC doit autoriser les connexions entrantes sur le port 443 à partir du sous-réseau privé du VPC.
-
Les points de terminaison d'un VPC ne prennent pas en charge les demandes inter-régions pour le moment. Veillez à créer vos points de terminaison d'un VPC dans la même région que celle où vous souhaitez envoyer vos appels d'API à Amazon ECR.
-
À l'heure actuelle, les points de terminaison d'un VPC ne prennent pas en charge les référentiels publics Amazon ECR. Envisagez d'utiliser une règle de mise en cache par extraction pour héberger l'image publique dans un référentiel privé situé dans la même région que le point de terminaison d'un VPC. Pour de plus amples informations, veuillez consulter Synchroniser un registre en amont avec un registre ECR privé Amazon.
-
Les points de terminaison VPC ne prennent en charge que le AWS DNS fourni via Amazon Route 53. Si vous souhaitez utiliser votre propre DNS, vous pouvez utiliser le transfert DNS conditionnel. Pour en savoir plus, consultez Jeux d'options DHCP dans le guide de l'utilisateur Amazon VPC.
-
Si vos conteneurs ont des connexions existantes vers Amazon S3, leurs connexions peuvent être brièvement interrompues lorsque vous ajoutez le point de terminaison de passerelle Amazon S3. Si vous souhaitez éviter cette interruption, créez un VPC qui utilise le point de terminaison de passerelle Amazon S3, puis migrez votre cluster Amazon ECS et ses conteneurs dans le nouveau VPC.
-
Lorsqu'une image est extraite à l'aide d'une règle de mise en cache par extraction pour la première fois, si vous avez configuré Amazon ECR pour utiliser un point de terminaison d'un VPC d'interface à l'aide de AWS PrivateLink , vous devez créer un sous-réseau public dans le même VPC, avec une passerelle NAT, puis acheminer tout le trafic sortant vers l'Internet depuis leur sous-réseau privé vers la passerelle NAT afin que l'extraction fonctionne. Les extractions d'images suivantes ne nécessitent pas cela. Pour plus d'informations, consultez la section Scénario : Accéder à Internet depuis un sous-réseau privé dans le Guide de l'utilisateur Amazon Virtual Private Cloud.
Considérations relatives aux images Windows
Les images basées sur le système d'exploitation Windows contiennent des artefacts dont la distribution est restreinte par la licence. Par défaut, lorsque vous poussez des images Windows vers un référentiel Amazon ECR, les couches qui contiennent ces artefacts ne sont pas poussées, car elles sont considérées comme des couches étrangères. Lorsque les artefacts sont fournis par Microsoft, les couches étrangères sont récupérées à partir de l'infrastructure Microsoft Azure. Pour cette raison, afin de permettre à vos conteneurs d'extraire ces couches étrangères d'Azure, des étapes supplémentaires sont nécessaires au-delà de la création des points de terminaison d'un VPC.
Il est possible de remplacer ce comportement lorsque vous poussez des images Windows vers Amazon ECR à l'aide de la clé --allow-nondistributable-artifacts
dans le démon Docker. Lorsqu'il est activé, cet indicateur envoie les couches sous licence vers Amazon ECR, ce qui permet d'extraire ces images d'Amazon ECR via le point de terminaison d'un VPC, sans qu'un accès supplémentaire à Azure soit requis.
Important
L'utilisation de l'indicateur --allow-nondistributable-artifacts
n'exclut pas votre obligation de respecter les termes de la licence d'image de base du conteneur Windows ; vous ne pouvez pas publier du contenu Windows pour une redistribution publique ou tierce. L'utilisation dans votre propre environnement est autorisée.
Pour activer l'utilisation de cet indicateur pour votre installation Docker, vous devez modifier le fichier de configuration du démon Docker qui, en fonction de votre installation Docker, peut généralement être configuré dans le menu des paramètres ou des préférences sous l'onglet Moteur Docker ou en modifiant directement le fichier C:\ProgramData\docker\config\daemon.json
.
Voici un exemple de configuration de la configuration requise. Remplacez la valeur par l'URI du référentiel vers lequel vous poussez les images.
{ "allow-nondistributable-artifacts": [ "
111122223333
.dkr.ecr.us-west-2
.amazonaws.com" ] }
Après avoir modifié le fichier de configuration du démon Docker, vous devrez redémarrer le démon Docker avant de tenter de pousser votre image. Confirmez que la transmission a fonctionné en vérifiant que la couche de base a fait l'objet d'une transmission de type push vers votre référentiel.
Note
Les couches de base des images Windows sont volumineuses. La taille de la couche entraînera un délai de transmission plus long et des coûts de stockage supplémentaires dans Amazon ECR pour ces images. Pour ces raisons, nous vous recommandons d'utiliser cette option uniquement lorsqu'elle est strictement nécessaire pour réduire les temps de création et les coûts de stockage continus. Par exemple, la taille de l'image mcr.microsoft.com/windows/servercore
est d'environ 1,7 Go lorsqu'elle est compressée dans Amazon ECR.
Créer des points de terminaison d'un VPC pour Amazon ECR
Pour créer des points de terminaison d'un VPC pour le service Amazon ECR, utilisez la procédure Créer un point de terminaison d'interface que vous trouverez dans le gui de l'utilisateur Amazon VPC.
Les tâches Amazon ECS hébergées sur des EC2 instances Amazon nécessitent à la fois les points de terminaison Amazon ECR et le point de terminaison de la passerelle Amazon S3.
Les tâches Amazon ECS hébergées sur Fargate et utilisant la version 1.4.0
de la plateforme ou version ultérieure nécessitent à la fois les points de terminaison d'un VPC Amazon ECR et les points de terminaison de la passerelle Amazon S3.
Les tâches Amazon ECS hébergées sur Fargate qui utilisent une version de plateforme ou une 1.3.0
version antérieure nécessitent uniquement le fichier com.amazonaws. region
.ecr.dkr Point de terminaison VPC Amazon ECR et points de terminaison de la passerelle Amazon S3.
Note
L'ordre dans lequel les points de terminaison sont créés n'a pas d'importance.
- com.amazonaws.
region
.ecr .dkr -
Ce point de terminaison est utilisé pour le registre APIs Docker. Les commandes du client Docker telles que
push
etpull
utilisent ce point de terminaison.Lorsque vous créez ce point de terminaison, vous devez activer un nom d'hôte DNS privé. Pour ce faire, assurez-vous que l’option Activer le nom DNS privé est sélectionnée dans la console Amazon VPC lorsque vous créez le point de terminaison d’un VPC.
- com.amazonaws.
region
.ecr.api -
Note
La valeur spécifiée
region
représente l'identifiant de région d'une AWS région prise en charge par Amazon ECR, par exempleus-east-2
pour la région USA Est (Ohio).Ce point de terminaison est utilisé pour les appels à l'API Amazon ECR. Les actions d'API telles que
DescribeImages
etCreateRepository
vont jusqu'à ce point de terminaison.Lorsque ce point de terminaison est créé, vous avez la possibilité d'activer un nom d'hôte DNS privé. Activez ce nom d'hôte en sélectionnant Activer le nom de DNS privé dans la console VPC lorsque vous créez le point de terminaison d'un VPC. Si vous activez un nom d'hôte DNS privé pour le point de terminaison VPC, mettez à jour votre SDK AWS CLI ou optez pour la dernière version afin qu'il ne soit pas nécessaire de spécifier une URL de point de terminaison lors de l'utilisation du SDK AWS CLI ou non.
Si vous activez un nom d'hôte DNS privé et que vous utilisez un SDK ou une AWS CLI version publiée avant le 24 janvier 2019, vous devez utiliser le
--endpoint-url
paramètre pour spécifier les points de terminaison de l'interface. L'exemple suivant montre le format de l'URL du point de terminaison.aws ecr create-repository --repository-name
name
--endpoint-url https://api.ecr.region
.amazonaws.com.rproxy.goskope.comSi vous n'activez pas un nom d'hôte DNS privé pour le point de terminaison d'un VPC, vous devrez utiliser le paramètre
--endpoint-url
en spécifiant l'ID du point de terminaison de VPC pour le point de terminaison d'interface. L'exemple suivant montre le format de l'URL du point de terminaison.aws ecr create-repository --repository-name
name
--endpoint-url https://VPC_endpoint_ID
.api.ecr.region
.vpce.amazonaws.com
Créer le point de terminaison de la passerelle Amazon S3
Pour que vos tâches Amazon ECS puissent extraire des images privées d'Amazon ECR, vous devez créer un point de terminaison de passerelle pour Amazon S3. Le point de terminaison de passerelle est obligatoire, car Amazon ECR utilise Amazon S3 pour stocker vos couches d'images. Lorsque vos conteneurs téléchargent des images depuis Amazon ECR, ils doivent accéder à Amazon ECR pour obtenir le manifeste d'image et à Amazon S3 pour télécharger les couches d'image réelles. Voici l'Amazon Resource Name (ARN) du compartiment Amazon S3 contenant les couches pour chaque image Docker.
arn:aws:s3:::prod-
region
-starport-layer-bucket/*
Utilisez la procédure Créer un point de terminaison de passerelle dans le guide de l'utilisateur Amazon VPC pour créer le point de terminaison de la passerelle Amazon S3 suivant pour Amazon ECR. Lorsque vous créez le point de terminaison, veillez à sélectionner les tables de routage pour votre VPC.
- com.amazonaws.
region
.s3 -
Le point de terminaison de la passerelle Amazon S3 utilise un document de politique IAM pour limiter l'accès au service. Vous pouvez utiliser la politique Accès total en raison des restrictions que vous avez placées dans les rôles IAM de votre tâche, ou si d'autres politiques utilisateur IAM restent applicables au-dessus de cette politique. Si vous souhaitez limiter l'accès au compartiment Amazon S3 aux autorisations minimales requises pour utiliser Amazon ECR, consultez Autorisations minimales relatives aux compartiments Amazon S3 pour Amazon ECR.
Autorisations minimales relatives aux compartiments Amazon S3 pour Amazon ECR
Le point de terminaison de la passerelle Amazon S3 utilise un document de politique IAM pour limiter l'accès au service. Pour accorder uniquement les autorisations minimales de compartiment Amazon S3 pour Amazon ECR, limitez l'accès au compartiment Amazon S3 utilisé par Amazon ECR lorsque vous créez le document de politique IAM pour le point de terminaison.
Le tableau suivant décrit les autorisations de la politique de compartiment Amazon S3 requises par Amazon ECR.
Autorisations | Description |
---|---|
|
Fournit l'accès au compartiment Amazon S3 contenant les couches pour chaque image Docker. Représente l'identifiant de région d'une région AWS
prise en charge par Amazon ECR, telle que |
Exemple
L'exemple suivant montre comment fournir l'accès aux compartiments Amazon S3 requis pour les opérations Amazon ECR.
{
"Statement": [
{
"Sid": "Access-to-specific-bucket-only",
"Principal": "*",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::prod-region
-starport-layer-bucket/*"]
}
]
}
Création du point de terminaison CloudWatch Logs
Les tâches Amazon ECS utilisant le type de lancement Fargate qui utilisent un VPC sans passerelle Internet et qui utilisent également le pilote de journal pour envoyer des informations de journal à Logs nécessitent que vous créiez awslogs
le fichier CloudWatch com.amazonaws. region
Point de terminaison CloudWatch VPC de l'interface .logs pour les journaux. Pour plus d'informations, consultez la section Utilisation CloudWatch des journaux avec les points de terminaison VPC de l'interface dans le guide de l'utilisateur Amazon CloudWatch Logs.
Créer une politique de point de terminaison pour vos points de terminaison d'un VPC Amazon ECR
Une politique de point de terminaison d'un VPC est une politique de ressource IAM que vous attachez à un point de terminaison lorsque vous le créez ou le modifiez. Si vous n'attachez pas de politique lorsque vous créez un point de AWS terminaison, associez une politique par défaut qui permet un accès complet au service. Une stratégie de point de terminaison n'annule pas et ne remplace pas les stratégies utilisateur ou les stratégies propres au service. Il s'agit d'une politique distincte qui contrôle l'accès depuis le point de terminaison jusqu'au service spécifié. Les politiques de point de terminaison doivent être écrites au format JSON. Pour en savoir plus, consultez Contrôle de l'accès aux services avec des points de terminaison d'un VPC dans le guide de l'utilisateur Amazon VPC.
Nous vous recommandons de créer une politique de ressource IAM unique et de l'attacher aux deux points de terminaison d'un VPC Amazon ECR.
Voici un exemple de politique de point de terminaison pour l'API Amazon ECR. Cette politique permet à un rôle IAM spécifique d'extraire des images depuis Amazon ECR.
{
"Statement": [{
"Sid": "AllowPull",
"Principal": {
"AWS": "arn:aws:iam::1234567890
:role/role_name
"
},
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer",
"ecr:GetAuthorizationToken"
],
"Effect": "Allow",
"Resource": "*"
}]
}
L'exemple de politique de point de terminaison suivant empêche la suppression d'un référentiel spécifié.
{
"Statement": [{
"Sid": "AllowAll",
"Principal": "*",
"Action": "*",
"Effect": "Allow",
"Resource": "*"
},
{
"Sid": "PreventDelete",
"Principal": "*",
"Action": "ecr:DeleteRepository",
"Effect": "Deny",
"Resource": "arn:aws:ecr:region
:1234567890
:repository/repository_name
"
}
]
}
L'exemple de politique de point de terminaison suivant combine les deux exemples précédents en une seule politique.
{
"Statement": [{
"Sid": "AllowAll",
"Effect": "Allow",
"Principal": "*",
"Action": "*",
"Resource": "*"
},
{
"Sid": "PreventDelete",
"Effect": "Deny",
"Principal": "*",
"Action": "ecr:DeleteRepository",
"Resource": "arn:aws:ecr:region
:1234567890
:repository/repository_name
"
},
{
"Sid": "AllowPull",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::1234567890
:role/role_name
"
},
"Action": [
"ecr:BatchGetImage",
"ecr:GetDownloadUrlForLayer",
"ecr:GetAuthorizationToken"
],
"Resource": "*"
}
]
}
Pour modifier la politique de point de terminaison d'un VPC pour Amazon ECR
Ouvrez la console Amazon VPC à l’adresse https://console.aws.amazon.com/vpc/
. -
Dans le panneau de navigation, choisissez Points de terminaison.
-
Si vous n'avez pas encore créé les points de terminaison d'un VPC pour Amazon ECR, consultez Créer des points de terminaison d'un VPC pour Amazon ECR.
-
Sélectionnez le point de terminaison d'un VPC Amazon ECR auquel ajouter une politique, puis choisissez l'onglet Politique dans la partie inférieure de l'écran.
-
Choisissez Modifier la politique, puis apportez les modifications souhaitées à la politique.
-
Choisissez Enregistrer pour enregistrer la politique.
Sous-réseaux partagés
Vous ne pouvez pas créer, décrire, modifier ou supprimer des points de terminaison d'un VPC dans des sous-réseaux qui sont partagés avec vous. Toutefois, vous pouvez utiliser les points de terminaison d'un VPC dans les sous-réseaux qui sont partagés avec vous.