Endpoints VPC da interface Amazon ECR ()AWS PrivateLink - Amazon ECR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Endpoints VPC da interface Amazon ECR ()AWS PrivateLink

É possível melhorar a postura de segurança da sua VPC configurando o Amazon ECR para usar um endpoint de interface da VPC. Os VPC endpoints são alimentados por AWS PrivateLink, uma tecnologia que permite que você acesse de forma privada as APIs do Amazon ECR por meio de endereços IP privados. AWS PrivateLink restringe todo o tráfego de rede entre sua VPC e o Amazon ECR para a rede Amazon. Você não precisa de um gateway da Internet, de um dispositivo NAT ou de um gateway privado virtual.

Para obter mais informações sobre AWS PrivateLink VPC endpoints, consulte VPC Endpoints no Guia do usuário da Amazon VPC.

Considerações endpoints da VPC do Amazon ECR

Antes de configurar endpoints da VPC para o Amazon ECR, fique atento às seguintes considerações:

  • Para permitir que suas tarefas do Amazon ECS hospedadas nas instâncias do Amazon EC2 extraiam imagens privadas do Amazon ECR, crie também endpoints de interface da VPC para o Amazon ECS. Para obter mais informações, consulte Interface VPC Endpoints (AWS PrivateLink) no Amazon Elastic Container Service Developer Guide.

    Importante

    As tarefas do Amazon ECS hospedadas no Fargate não exigem os endpoints de interface da VPC do Amazon ECS.

  • As tarefas do Amazon ECS hospedadas no Fargate que usam a plataforma Linix versão 1.3.0 ou anterior exigem apenas o endpoint da VPC do Amazon ECR com.amazonaws.region.ecr.dkr e o endpoint do gateway do Amazon S3 para aproveitar esse recurso.

  • As tarefas do Amazon ECS hospedadas no Fargate que usam a plataforma Linux versão 1.4.0 ou posterior exigem tanto os endpoints da VPC do Amazon ECR com.amazonaws.region.ecr.dkr e com.amazonaws.region.ecr.api quanto o endpoint do gateway do Simple Storage Service (Amazon S3) para poderem aproveitar esse recurso.

  • As tarefas do Amazon ECS hospedadas no Fargate que usam a plataforma Windows versão 1.0.0 ou posterior exigem tanto os endpoints da VPC do Amazon ECR com.amazonaws.region.ecr.dkr e com.amazonaws.region.ecr.api quanto o endpoint do gateway do Simple Storage Service (Amazon S3) para poderem aproveitar esse recurso.

  • As tarefas do Amazon ECS hospedadas no Fargate que extraem imagens do Amazon ECR podem restringir o acesso à VPC específica que as tarefas usam e ao endpoint da VPC que o serviço usa, adicionando chaves de condição à função do IAM para a tarefa. Para obter mais informações, consulte Permissões opcionais do IAM para tarefas do Fargate que extraem imagens do Amazon ECR por endpoints de interface no Guia do desenvolvedor do Amazon Elastic Container Service.

  • As tarefas do Amazon ECS hospedadas no Fargate que extraem imagens de contêineres do Amazon ECR que também usam awslogs o driver de log para enviar informações CloudWatch de log para a Logs exigem o endpoint VPC do CloudWatch Logs. Para ter mais informações, consulte Crie o endpoint do CloudWatch Logs.

  • O grupo de segurança anexado ao endpoint da VPC deve permitir conexões de entrada na porta 443 na sub-rede privada da VPC.

  • Atualmente, os endpoints da VPC não oferecem suporte a solicitações entre Regiões. Certifique-se de criar endpoints da VPC na mesma região em que você planeja emitir chamadas de API para o Amazon ECR.

  • No momento, os endpoints da VPC não oferecem suporte aos repositórios públicos do Amazon ECR. Considere usar uma regra de cache de pull through para hospedar a imagem pública em um repositório privado na mesma região do endpoint da VPC. Para ter mais informações, consulte Sincronize um registro upstream com um registro privado do Amazon ECR.

  • Os VPC endpoints oferecem suporte somente ao DNS AWS fornecido por meio do Amazon Route 53. Se quiser usar seu próprio DNS, você pode usar o encaminhamento de DNS condicional. Para obter mais informações, consulte Conjuntos de opções de DHCP no Manual do usuário da Amazon VPC.

  • Se os contêineres tiverem conexões existentes com o Amazon S3, as conexões poderão ser interrompidas brevemente quando você adicionar o endpoint do gateway do Amazon S3. Se você quiser evitar essa interrupção, crie uma VPC que usa o endpoint de gateway do Amazon S3 e migre o cluster do Amazon ECS e seus contêineres para a nova VPC.

  • Quando uma imagem é extraída usando uma regra de cache de pull-through pela primeira vez, se você configurou o Amazon ECR para usar um endpoint de VPC de interface usando AWS PrivateLink , então é necessário criar uma sub-rede pública na mesma VPC, com um gateway NAT e, em seguida, rotear todo o tráfego de saída para a Internet de sua sub-rede privada para o gateway NAT para que a extração funcione. As extrações de imagem subsequentes não exigem isso. Para obter mais informações, consulte Cenário: Acessar a Internet de uma sub-rede privada no Guia do usuário da Amazon Virtual Private Cloud.

Considerações para imagens do Windows

As imagens baseadas no sistema operacional Windows incluem artefatos que são restringidos, pela licença, de serem distribuídos. Por padrão, quando você envia imagens do Windows para um repositório do Amazon ECR, as camadas que incluem esses artefatos não são enviadas, pois elas são consideradas camadas externas. Quando os artefatos são fornecidos pela Microsoft, as camadas externas são recuperadas da infraestrutura do Microsoft Azure. Por esse motivo, para permitir que seus contêineres extraiam essas camadas externas do Azure, etapas adicionais são necessárias além da criação dos endpoints da VPC.

É possível substituir esse comportamento ao enviar imagens do Windows ao Amazon ECR usando o sinalizador --allow-nondistributable-artifacts no daemon do Docker. Quando habilitado, esse sinalizador envia as camadas licenciadas para o Amazon ECR, o que permite que essas imagens sejam extraídas do Amazon ECR por meio do endpoint da VPC sem necessidade de acesso adicional ao Azure.

Importante

Usar o sinalizador --allow-nondistributable-artifacts não exclui sua obrigação de cumprir os termos da licença de imagem base de contêiner do Windows. Você não pode postar conteúdo do Windows para redistribuição pública ou de terceiros. O uso dentro do seu próprio ambiente é permitido.

Para habilitar o uso desse sinalizador para a instalação do Docker, você deve modificar o arquivo de configuração do daemon do Docker que, dependendo da instalação do Docker, normalmente pode ser configurado no menu de configurações ou preferências na seção Engine do Docker ou editando a seção do arquivo C:\ProgramData\docker\config\daemon.json diretamente.

Veja a seguir um exemplo da configuração necessária: Substitua o valor pelo URI do repositório para o qual você está enviando imagens.

{ "allow-nondistributable-artifacts": [ "111122223333.dkr.ecr.us-west-2.amazonaws.com" ] }

Depois de modificar o arquivo de configuração do daemon do Docker, você deve reiniciar o daemon do Docker antes de tentar enviar sua imagem. Confirme se o push funcionou verificando se a camada base foi enviada ao seu repositório.

nota

As camadas base para imagens do Windows são grandes. O tamanho da camada resulta em mais tempo de envio e custos adicionais de armazenamento no Amazon ECR para essas imagens. Por esses motivos, recomendamos usar essa opção somente quando for estritamente necessário reduzir os tempos de construção e os custos contínuos de armazenamento. Por exemplo, a imagem mcr.microsoft.com/windows/servercore tem aproximadamente 1,7 GiB de tamanho quando compactada no Amazon ECR.

Criação dos endpoints da VPC para o Amazon ECR

Para criar os endpoints da VPC para o serviço do Amazon ECR, use o procedimento de Criação de um endpoint de interface no Manual do usuário da Amazon VPC.

As tarefas do Amazon ECS hospedadas em instâncias do Amazon EC2 exigem endpoints do Amazon ECR e o endpoint do gateway do Amazon S3.

As Tarefas do Amazon ECS hospedadas no Fargate usando a versão 1.4.0 da plataforma ou posterior exigem endpoints da VPC do Amazon ECR e endpoints de gateway do Amazon S3.

As tarefas do Amazon ECS hospedadas no Fargate usando a versão 1.3.0 ou anterior da plataforma exigem apenas os endpoints da VPC do Amazon ECR com.amazonaws.region.ecr.dkr e o endpoint da VPC do Amazon ECR e os endpoints de gateway do Amazon S3 para aproveitar esse recurso.

nota

A ordem em que os endpoints são criados não importa.

com.amazonaws.region.ecr.dkr

Esse endpoint é usado para as APIs de registro do Docker. Os comandos de cliente do Docker, como push e pull, usam esse endpoint.

Ao criar esse endpoint, você deve habilitar um nome de host DNS privado. Para fazer isso, verifique se a opção Enable Private DNS Name (Habilitar nome DNS privado) está selecionada no console da Amazon VPC ao criar o endpoint da VPC.

com.amazonaws.region.ecr.api
nota

A região especificada representa o identificador de uma AWS região suportada pelo Amazon ECR, como us-east-2 a região Leste dos EUA (Ohio).

Esse endpoint é usado para chamadas à API do Amazon ECR. As opções da API, como DescribeImages e CreateRepository são enviadas para esse endpoint.

Quando esse endpoint é criado, você tem a opção de habilitar um nome de host DNS privado. Habilite essa configuração selecionando Habilitar nome DNS privado no console da VPC ao criar o VPC endpoint. Se você habilitar um nome de host DNS privado para o VPC endpoint, atualize seu SDK ou AWS CLI para a versão mais recente para que não seja necessário especificar uma URL de endpoint ao usar o SDK ou não. AWS CLI

Se você habilitar um nome de host DNS privado e estiver usando um SDK ou uma AWS CLI versão lançada antes de 24 de janeiro de 2019, deverá usar o --endpoint-url parâmetro para especificar os endpoints da interface. O exemplo a seguir mostra o formato do URL do endpoint.

aws ecr create-repository --repository-name name --endpoint-url https://api.ecr.region.amazonaws.com

Se você não habilitar um nome de host DNS privado para o VPC endpoint, deverá usar o parâmetro --endpoint-url especificando o ID do VPC endpoint para o endpoint de interface. O exemplo a seguir mostra o formato do URL do endpoint.

aws ecr create-repository --repository-name name --endpoint-url https://VPC_endpoint_ID.api.ecr.region.vpce.amazonaws.com

Criar o endpoint do gateway do Amazon S3

Para que as tarefas do Amazon ECS extraiam imagens privadas do Amazon ECR, crie um endpoint de gateway para o Amazon S3. O endpoint do gateway é necessário porque o usa o Amazon ECR usa o Amazon S3 para armazenar as camadas de imagem. Quando os contêineres baixam imagens do Amazon ECR, eles devem acessar o Amazon ECR para obter o manifesto da imagem e o Amazon S3 para baixar as camadas reais da imagem. Este é o nome do recurso da Amazon (ARN) do bucket do Amazon S3 que contém as camadas de cada imagem do Docker.

arn:aws:s3:::prod-region-starport-layer-bucket/*

Usar o procedimento Criação de um endpoint de gateway no Manual do usuário da Amazon VPC para criar o seguinte endpoint de gateway do Amazon S3 para o Amazon ECR. Ao criar o endpoint, selecione as tabelas de rotas para sua VPC.

com.amazonaws.region.s3

O endpoint de gateway do Amazon S3 usa um documento de política do IAM para limitar o acesso ao serviço. A política de Acesso total pode ser usada, pois qualquer restrição colocada nas funções do IAM de sua tarefa ou outras políticas de usuário do IAM ainda serão aplicadas além dessa política. Se você quiser limitar o acesso ao bucket do Amazon S3 para as permissões mínimas exigidas para usar o Amazon ECR, consulte Permissões mínimas do bucket do Amazon S3 para o Amazon ECR.

Permissões mínimas do bucket do Amazon S3 para o Amazon ECR

O endpoint de gateway do Amazon S3 usa um documento de política do IAM para limitar o acesso ao serviço. Para conceder apenas as permissões mínimas do bucket do Amazon S3 para o Amazon ECR, restrinja o acesso ao bucket do Amazon S3 usado pelo Amazon ECR ao criar o documento de política do IAM para o endpoint.

A tabela a seguir descreve as permissões de política do bucket do Amazon S3 exigidas pelo Amazon ECR.

Permissão Descrição

arn:aws:s3:::prod-region-starport-layer-bucket/*

Fornece acesso ao bucket do Amazon S3 que contém as camadas de cada imagem do Docker. Representa o identificador da região para uma região da AWS suportada pelo Amazon ECR, como us-east-2 para a região Leste dos EUA (Ohio).

Exemplo

O exemplo a seguir ilustra como conceder acesso aos buckets do Amazon S3 exigidos para as operações do Amazon ECR.

{ "Statement": [ { "Sid": "Access-to-specific-bucket-only", "Principal": "*", "Action": [ "s3:GetObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::prod-region-starport-layer-bucket/*"] } ] }

Crie o endpoint do CloudWatch Logs

As tarefas do Amazon ECS que usam o tipo de execução Fargate que usam uma VPC sem um gateway de internet e que também usam awslogs o driver de log para enviar informações de log para o Logs exigem que CloudWatch você crie o com.amazonaws. interface region .logs VPC endpoint CloudWatch para Logs. Para obter mais informações, consulte Como usar CloudWatch registros com endpoints VPC de interface no Guia do usuário do Amazon CloudWatch Logs.

Criar uma política de endpoint para os endpoints da VPC do Amazon ECR

Uma política de endpoint da VPC é uma política de recursos do IAM que você anexa a um endpoint quando cria ou modifica o endpoint. Se você não anexar uma política ao criar um endpoint, AWS anexará uma política padrão que permita acesso total ao serviço. Uma política de endpoint não substitui políticas de usuário do ou políticas de serviço específicas. É uma política separada para controlar o acesso do endpoint ao serviço especificado. Políticas de endpoint devem ser gravadas em formato JSON. Para obter mais informações, consulte Controlar o acesso a serviços com VPC endpoints no Manual do usuário da Amazon VPC.

Recomendamos criar uma única política de recursos do IAM e anexá-la a ambos os endpoints da VPC do Amazon ECR.

A seguir temos um exemplo de uma política de endpoint para o Amazon ECR Essa política permite que uma função do IAM específica extraia imagens do Amazon ECR.

{ "Statement": [{ "Sid": "AllowPull", "Principal": { "AWS": "arn:aws:iam::1234567890:role/role_name" }, "Action": [ "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer", "ecr:GetAuthorizationToken" ], "Effect": "Allow", "Resource": "*" }] }

O exemplo de política de endpoint a seguir impede que um repositório especificado seja excluído.

{ "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" } ] }

O exemplo de política de endpoint a seguir combina os dois exemplos anteriores em uma única política.

{ "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": "*" } ] }
Para modificar a política endpoint da VPC para o Amazon ECR
  1. Abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação, escolha Endpoints.

  3. Se você ainda não criou os endpoints da VPC para o Amazon ECR, consulte Criação dos endpoints da VPC para o Amazon ECR.

  4. Selecione endpoint da VPC do Amazon ECR ao qual deseja adicionar uma política e escolha a guia Policy (Política) na parte inferior da tela.

  5. Selecione Edit policy (Editar política) e faça as alterações na política.

  6. Escolha Save (Salvar) para salvar a política.

Sub-redes compartilhadas

Você não pode criar, descrever, modificar ou excluir endpoints da VPC em sub-redes que são compartilhadas com você. No entanto, você pode usar os endpoints da VPC em sub-redes que são compartilhadas com você.