Usar regras de cache de pull-through - 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á.

Usar regras de cache de pull-through

Com as regras de cache de pull-through, você pode sincronizar o conteúdo de um registro upstream com seu registro privado do Amazon ECR. No momento, o Amazon ECR oferece suporte à criação de regras de cache de pull-through para os seguintes registros upstream.

  • Docker Hub, Microsoft Azure Container Registry e GitHub Container Registry (requer autenticação)

  • Amazon ECR Public, o registro de imagens de contêineres do Kubernetes e o Quay (não requer autenticação)

Para os registros upstream que exigem autenticação, você deve armazenar suas credenciais em segredo. AWS Secrets Manager O console do Amazon ECR facilita a criação do segredo do Secrets Manager para cada um dos registros upstream autenticados. Para obter mais informações sobre como criar um segredo no Secrets Manager usando o console do Secrets Manager, consulte Armazenando suas credenciais do repositório upstream em segredo AWS Secrets Manager.

Após uma regra de cache de pull-through para o registro upstream, basta extrair uma imagem desse registro upstream usando o URI de registro privado do Amazon ECR. Em seguida, o Amazon ECR cria um repositório e armazena essa imagem em cache no seu registro privado. Em suas pull requests subsequentes da imagem em cache com uma determinada tag, o Amazon ECR verifica o registro upstream para ver se há uma nova versão da imagem com essa tag específica e tenta atualizar a imagem em seu registro privado pelo menos uma vez a cada 24 horas.

O Amazon ECR adicionou suporte para modelos de criação de repositórios, atualmente em versão prévia, o que lhe dá o controle para especificar configurações iniciais para novos repositórios criados pelo Amazon ECR em seu nome usando regras de cadhe de pull-through. Cada modelo contém um prefixo de namespace do repositório que é usado para associar novos repositórios a um modelo específico. Os modelos podem especificar a configuração para todas as configurações do repositório, incluindo políticas de acesso baseadas em recursos, imutabilidade de tags, criptografia e políticas de ciclo de vida. As configurações em um modelo de criação de repositório são aplicadas apenas durante a criação do repositório e não têm efeito sobre repositórios existentes ou repositórios criados usando qualquer outro método. Para ter mais informações, consulte Gerencie seus modelos de criação de repositórios.

Considerações sobre o uso do cache de pull-through

Os seguintes pontos devem ser considerados ao usar as regras do cache de pull-through do Amazon ECR.

  • A criação de regras de cache de pull-through não é aceita nas seguintes Regiões:

    • China (Pequim) (cn-north-1)

    • China (Ningxia) (cn-northwest-1)

    • AWS GovCloud (Leste dos EUA) (us-gov-east-1)

    • AWS GovCloud (Oeste dos EUA) (us-gov-west-1)

  • AWS Lambda não suporta a extração de imagens de contêineres do Amazon ECR usando uma regra de cache pull through.

  • Ao extrair imagens usando o cache de pull-through, os endpoints de serviço FIPS do Amazon ECR não são suportados na primeira vez que uma imagem é extraída. No entanto, usar os endpoints de serviço FIPS do Amazon ECR funciona em extrações subsequentes.

  • Quando uma imagem em cache é extraída por meio do URI de registro privado do Amazon ECR, a extração da imagem é iniciada por AWS endereços IP. Isso garante que o pull da imagem não seja contabilizado em nenhuma cota de taxa de pull implementada pelo registro upstream.

  • Quando uma imagem armazenada em cache é puxada por meio do URI do registro privado da Amazon ECR, o Amazon ECR verifica o repositório upstream pelo menos uma vez a cada 24 horas para verificar se a imagem em cache é a versão mais recente. Se houver uma imagem mais recente no registro upstream, o Amazon ECR tentará atualizar a imagem em cache. Este temporizador é baseado na última extração da imagem em cache.

  • Se o Amazon ECR não conseguir atualizar a imagem do registro upstream por qualquer motivo e a imagem for extraída, a última imagem em cache ainda será extraída.

  • Ao criar o segredo do Secrets Manager que contém as credenciais do registro upstream, o nome do segredo deve usar o prefixo ecr-pullthroughcache/. O segredo também deve estar na mesma conta e região em que a regra de cache de pull-through foi criada.

  • Quando uma imagem multiarquitetura é extraída por meio de uma regra de cache de pull-through, a lista de manifestos e cada imagem referenciada na lista de manifesto são extraídas para o repositório do Amazon ECR. Se desejar apenas extrair uma arquitetura específica, você poderá extrair a imagem usando o resumo da imagem ou a tag associada à arquitetura, em vez da tag associada à lista de manifesto.

  • O Amazon ECR utiliza um perfil do IAM vinculada ao serviço, que fornece as permissões necessárias para o Amazon ECR criar o repositório, recuperar o valor do segredo do Secrets Manager para autenticação e enviar a imagem armazenada em cache em seu nome. A função do IAM vinculada ao serviço é criada automaticamente quando uma regra de cache de pull-through é criada. Para ter mais informações, consulte Função vinculada ao serviço do Amazon ECR para cache de pull-through.

  • Por padrão, a entidade principal do IAM que está puxando a imagem armazenada em cache tem as permissões concedidas a ele por meio de sua política do IAM. Você pode usar a política de permissões de registro privado do Amazon ECR para aumentar o escopo das permissões de uma entidade do IAM. Para ter mais informações, consulte Usar permissões de registro.

  • Os repositórios do Amazon ECR criados usando o fluxo de trabalho de cache de pull-through são tratados como qualquer outro repositório do Amazon ECR. Todos os recursos do repositório, como replicação e verificação de imagens, são compatíveis.

  • Quando o Amazon ECR cria um novo repositório em seu nome usando uma ação de cache de pull-through, as seguintes configurações padrão são aplicadas ao repositório, a menos que haja um modelo correspondente de criação de repositório. Você pode usar um modelo de criação de repositório para definir as configurações aplicadas aos repositórios criados pelo Amazon ECR em seu nome. Para ter mais informações, consulte Gerencie seus modelos de criação de repositórios.

    • Imutabilidade da tag — Desativada, as tags são mutáveis e podem ser sobrescritas.

    • Criptografia — A criptografia padrão do AES256 é usada.

    • Permissões do repositório — Omitida, nenhuma política de permissões do repositório é aplicada.

    • Política de ciclo de vida — omitida, nenhuma política de ciclo de vida é aplicada.

    • Tags de recursos — Omitidas, nenhuma tag de recurso é aplicada.

  • Ativar a imutabilidade da tag de imagem para repositórios usando uma regra de cache de pull-through impedirá que o Amazon ECR atualize imagens usando a mesma tag.

  • Quando uma imagem é extraída usando a regra de cache pull through pela primeira vez, uma rota para a Internet pode ser necessária. Há certas circunstâncias em que uma rota para a Internet é necessária, então é melhor configurar uma rota para evitar falhas. Portanto, se você configurou o Amazon ECR para usar uma interface VPC endpoint AWS PrivateLink , precisará garantir que o primeiro pull tenha uma rota para a Internet. Uma maneira de fazer isso é criar uma sub-rede pública na mesma VPC, com um gateway de Internet, e depois rotear todo o tráfego de saída para a Internet da sub-rede privada para a sub-rede pública. As extrações de imagens subsequentes usando a regra de cache pull through não exigem isso. Para obter mais informações, consulte Opções de rotas de exemplos no Guia do usuário da Amazon Virtual Private Cloud.

Permissões obrigatórias do IAM

Além das permissões da API do Amazon ECR necessárias para autenticar em um registro privado e enviar e extrair imagens, as seguintes permissões adicionais são necessárias para usar regras de cache de pull-through de forma efetiva.

  • ecr:CreatePullThroughCacheRule: concede permissão para criar regra de cache de pull-through. Essa permissão deve ser concedida por meio de uma política do IAM baseada em identidade.

  • ecr:BatchImportUpstreamImage: concede permissão para recuperar a imagem externa e importá-la para o registro privado. Essa permissão pode ser concedida usando a política de permissões do registro privado, uma política do IAM baseada em identidade ou a política de permissões de repositório baseadas em recursos. Para obter mais informações sobre o uso de permissões de repositório, consulte Políticas de repositório privado.

  • ecr:CreateRepository: concede permissão para criar um repositório em um registro privado. Essa permissão é necessária se o repositório de armazenamento de imagens em cache ainda não existir. Essa permissão pode ser concedida por uma política do IAM baseada em identidade ou pela política de permissões do registro privado.

  • ecr:TagResource - Concede permissão para adicionar etiquetas de metadados a um recurso do Amazon ECR. Essa permissão só é necessária se você estiver extraindo uma imagem que usa uma regra de cache de pull-through que tenha um modelo de criação de repositório associado configurado para adicionar tags de recursos ao repositório. Essa permissão deve ser concedida por meio de uma política do IAM baseada em identidade.

Usar permissões de registro

As permissões de registro privado do Amazon ECR podem ser usadas para dimensionar o escopo das permissões de entidades individuais do IAM para usar o cache de pull-through. Se uma entidade do IAM tiver mais permissões concedidas por uma política do IAM do que a política de permissões do registro está concedendo, a política do IAM terá precedência. Por exemplo, se um usuário já tiver as permissões ecr:*, não serão necessárias permissões adicionais no nível do registro.

  1. Abra o console do Amazon ECR em https://console.aws.amazon.com/ecr/

  2. Na barra de navegação, escolha a região na qual deseja configurar a sua declaração de permissões da política do registro.

  3. No painel de navegação, escolha Private registry (Registro privado), Registry permissions (Permissões do registro).

  4. Na página Registry permissions (Permissões do registro), escolha Generate statement (Gerar declaração).

  5. Para cada declaração de política de permissões de cache de pull-through que você criar, faça o seguinte.

    1. Em Policy type (Tipo de política), escolha Pull through cache policy (Política de cache de pull-through).

    2. Em Statement id (ID da declaração), forneça um nome para a política de declaração do cache de pull-through.

    3. Em IAM entities (Entidades do IAM), especifique os usuários, grupos ou funções a serem incluídos na política.

    4. Em Repository namespace (Namespace do repositório), selecione a regra de cache de pull-through para associar à política.

    5. Em Repository names (Nomes de repositórios), especifique o nome da base do repositório ao qual a regra será aplicada. Por exemplo, se você quisesse especificar o repositório do Amazon Linux no Amazon ECR Public, o nome do repositório seria amazonlinux.

Use o AWS CLI comando a seguir para especificar as permissões do registro privado usando AWS CLI o.

  1. Crie um arquivo local denominado ptc-registry-policy.json com o conteúdo da política do registro. O exemplo a seguir concede a permissão ecr-pull-through-cache-user para criar um repositório e extrair uma imagem do Amazon ECR Public, que é a fonte upstream associada à regra de cache pull-through criada anteriormente.

    { "Sid": "PullThroughCacheFromReadOnlyRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ecr-pull-through-cache-user" }, "Action": [ "ecr:CreateRepository", "ecr:BatchImportUpstreamImage" ], "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/ecr-public/*" }
    Importante

    A permissão ecr-CreateRepository é necessária se o repositório de armazenamento de imagens em cache ainda não existir. Por exemplo, se a ação de criação do repositório e as ações de extração de imagem forem realizadas por entidades separadas do IAM, como um administrador e um desenvolvedor.

  2. Use o put-registry-policycomando para definir a política de registro.

    aws ecr put-registry-policy \ --policy-text file://ptc-registry.policy.json

Próximas etapas

Quando você estiver pronto para começar a usar as regras de cache de pull-through, as próximas etapas são apresentadas a seguir.