Criar um modelo de criação de repositório no Amazon ECR - 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á.

Criar um modelo de criação de repositório no Amazon ECR

Você pode criar um modelo de criação de repositório para definir as configurações a serem usadas para repositórios criados pelo Amazon ECR em seu nome durante ações de cache de pull-through e replicação. Depois que o modelo de criação do repositório for criado, todos os novos repositórios criados terão as configurações aplicadas. Isso não tem efeito em repositórios criados anteriormente.

Ao configurar um repositório com modelos, você tem a opção de especificar chaves do KMS e tags de recursos. Caso pretenda usar chaves do KMS, tags de recursos ou uma combinação das duas em um ou mais modelos, você precisa:

Depois de configurado, você pode anexar o perfil personalizado a modelos específicos no registro.

Permissões do IAM para criar modelos de criação de repositórios

As permissões a seguir são necessárias para que uma entidade principal do IAM gerencie os modelos de criação de repositórios. Essas permissões devem ser concedidas usando uma política do IAM baseada em identidade.

  • ecr:CreateRepositoryCreationTemplate - Concede permissão para criar o modelo de criação do repositório

  • ecr:UpdateRepositoryCreationTemplate: concede permissão para atualizar um modelo de criação de repositório.

  • ecr:DescribeRepositoryCreationTemplates: concede permissão para listar modelos de criação de repositórios em um registro.

  • ecr:DeleteRepositoryCreationTemplate - Concede permissão para excluir o modelo de criação do repositório

  • ecr:CreateRepository: concede permissão para criar um repositório do Amazon ECR.

  • ecr:PutLifecyclePolicy - Concede permissão para criar uma política de ciclo de vida e aplicá-la a um repositório. Esta permissão é necessária apenas se o modelo de criação de repositório incluir uma política de ciclo de vida.

  • ecr:SetRepositoryPolicy - Concede permissão para criar uma política de permissões para um repositório. Esta permissão é necessária apenas se o modelo de criação de repositório incluir uma política de repositório.

  • iam:PassRole: concede permissão para permitir que uma entidade passe um perfil para um serviço ou aplicação. Essa permissão é necessária para serviços e aplicações que precisam assumir um perfil para executar ações em seu nome.

Criar um modelo de criação de repositório

Depois de concluir os pré-requisitos necessários para os modelos, você pode continuar criando os modelos de criação do repositório.

AWS Management Console
Para criar um modelo de criação de repositório (AWS Management Console)
  1. Abra o console do Amazon ECR em https://console.aws.amazon.com/ecr/.

  2. Na barra de navegação, escolha a região para criar o modelo de criação de repositório.

  3. No painel de navegação, escolha Registro privado, Modelos de criação de repositório.

  4. Na página Modelos de criação de repositório, escolha Criar modelo.

  5. Na página Etapa 1: definir modelo, para Detalhes do modelo, escolha Um prefixo específico para aplicar o modelo a um prefixo de namespace de repositório específico ou escolha Qualquer prefixo em seu registro ECR para aplicar o modelo a todos os repositórios que não correspondam a nenhum outro modelo na região.

    1. Se você escolher Um prefixo específico, em Prefixo, especifique o prefixo do namespace do repositório ao qual aplicar o modelo. Sempre há uma suposição / aplicada ao fim do prefixo. Por exemplo, um prefixo de se prod aplicaria a todos os repositórios começando com prod/. Por exemplo, um prefixo de prod/team se aplicaria a todos os repositórios começando com prod/team/.

    2. Se você escolher Qualquer prefixo em seu registro do ECR, o prefixo será definido como ROOT.

  6. Em Aplicado para, especifique a quais fluxos de trabalho do Amazon ECR esse modelo se aplicará. As opções são PULL_THROUGH_CACHE e REPLICATION.

  7. Em Descrição do modelo, especifique uma descrição opcional para o modelo e escolha Avançar.

  8. Na página Etapa 2: adicionar configuração de criação de repositório, especifique a configuração de configuração do repositório a ser aplicada aos repositórios criados usando o modelo.

    1. Para Mutabilidade de tag de imagem, escolha a configuração de mutabilidade de tags a ser usada. Para obter mais informações, consulte Impedir que as tags de imagens sejam sobrescritas no Amazon ECR.

      • Mutável — Escolha essa opção se quiser que as tags de imagem sejam sobrescritas. Recomendado para repositórios que usam ações de cache de pull through para garantir que o Amazon ECR possa atualizar imagens em cache. Além disso, para desativar as atualizações de tags para algumas tags mutáveis, insira os nomes das tags ou use curingas (*) para combinar várias tags semelhantes na caixa de texto de exclusão de tags mutáveis.

      • Imutável — Escolha essa opção se quiser evitar que as tags de imagem sejam substituídas, e ela se aplica a todas as tags e exclusões no repositório ao enviar uma imagem com uma tag existente. O Amazon ECR retornará um ImageTagAlreadyExistsException se você tentar enviar uma imagem com uma tag existente. Além disso, para ativar atualizações de tags para algumas tags imutáveis, insira os nomes das tags ou use curingas (*) para combinar várias tags semelhantes na caixa de texto Exclusão de tags imutáveis.

    2. Para Configuração de criptografia, escolha a configuração de criptografia a ser usada. Para obter mais informações, consulte Criptografia em repouso.

      Quando AES-256 é selecionado, o Amazon ECR utiliza a criptografia do lado do servidor com chaves de criptografia gerenciadas pelo Amazon Simple Storage Service, o que criptografa seus dados em repouso usando o padrão de criptografia AES-256. Este é oferecido sem custo adicional.

      Quando o KMS do AWS é selecionado, o Amazon ECR usa criptografia do lado do servidor com chaves armazenadas em AWS Key Management Service (AWS KMS). Ao usar AWS KMS para criptografar seus dados, você pode usar a chave AWS gerenciada padrão, que é gerenciada pelo Amazon ECR, ou especificar sua própria AWS KMS chave, chamada de chave gerenciada pelo cliente.

      nota

      As configurações de criptografia para um repositório não podem ser alteradas após a criação do repositório.

    3. Para permissões do repositório, especifique a política de permissões do repositório a ser aplicada aos repositórios criados usando esse modelo. Opcionalmente, você pode usar o menu suspenso para selecionar uma das amostras de JSON para os casos de uso mais comuns. Para obter mais informações, consulte Políticas de repositório privado no Amazon ECR.

    4. Para a Política do ciclo de vida do repositório, especifique a política de ciclo de vida do repositório a ser aplicada aos repositórios criados usando esse modelo. Opcionalmente, você pode usar o menu suspenso para selecionar uma das amostras de JSON para os casos de uso mais comuns. Para obter mais informações, consulte Automatizar a limpeza de imagens usando políticas de ciclo de vida no Amazon ECR.

    5. Para AWS tags de repositório, especifique os metadados, na forma de pares de valores-chave, a serem associados aos repositórios criados usando esse modelo e escolha Avançar. Para obter mais informações, consulte Marcar um repositório privado no Amazon ECR.

    6. Em Perfil de criação de repositório, selecione um perfil personalizado do IAM no menu suspenso a ser usado para modelos de criação de repositório ao usar tags de repositório ou o KMS no modelo (consulte Criar um perfil do IAM para modelos de criação de repositórios para obter detalhes). Em seguida, escolha Próximo.

  9. Na página Etapa 3: revisar e criar, revise as configurações que você especificou para o modelo de criação do repositório. Escolha a opção Editar para fazer alterações. Escolha Criar quando você terminar.

AWS CLI

O create-repository-creation-template AWS CLI comando é usado para criar um modelo de criação de repositório para seu registro privado.

Para criar um modelo de criação de repositório (AWS CLI)
  1. Use o AWS CLI para gerar um esqueleto para o create-repository-creation-templatecomando.

    aws ecr create-repository-creation-template \ --generate-cli-skeleton

    A saída do comando exibe a sintaxe completa do modelo de criação de repositório.

    { "appliedFor":[""], // string array, but valid are PULL_THROUGH_CACHE and REPLICATION "prefix": "string", "description": "string", "imageTagMutability": "MUTABLE"|"IMMUTABLE"|"IMMUTABLE_WITH_EXCLUSION"|"MUTABLE_WITH_EXCLUSION", "imageTagMutabilityExclusionFilters": [ "filterType": "WILDCARD", "filter": "string" ], "repositoryPolicy": "string", "lifecyclePolicy": "string" "encryptionConfiguration": { "encryptionType": "AES256"|"KMS", "kmsKey": "string" }, "resourceTags": [ { "Key": "string", "Value": "string" } ], "customRoleArn": "string", // must be a valid IAM Role ARN }
  2. Criar um arquivo denominado repository-creation-template.json com a saída da etapa anterior. Esse modelo define uma chave de criptografia KMS para qualquer repositório criado prod/* com uma política de repositório que permite enviar e extrair imagens para repositórios futuros, define uma política de ciclo de vida que expirará imagens com mais de duas semanas e define uma função personalizada que permitirá que o ECR acesse a chave KMS e atribua a tag de recurso a repositórios futuros. examplekey

    { "prefix": "prod", "description": "For repositories cached from my PTC rule and in my replication configuration that start with 'prod/'", "appliedFor": ["PULL_THROUGH_CACHE","REPLICATION"], "encryptionConfiguration": { "encryptionType": "KMS", "kmsKey": "arn:aws:kms:us-west-2:111122223333:key/a1b2c3d4-5678-90ab-cdef-example11111" }, "resourceTags": [ { "Key": "examplekey", "Value": "examplevalue" } ], "imageTagMutability": "IMMUTABLE_WITH_EXCLUSION", "imageTagMutabilityExclusionFilters": [ { "filterType": "WILDCARD", "filter": "latest" }, { "filterType": "WILDCARD", "filter": "beta*" } ] "repositoryPolicy": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"AllowPushPullIAMRole\",\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"arn:aws:iam::111122223333:user\/IAMusername\"},\"Action\":[\"ecr:BatchGetImage\",\"ecr:BatchCheckLayerAvailability\",\"ecr:CompleteLayerUpload\",\"ecr:GetDownloadUrlForLayer\",\"ecr:InitiateLayerUpload\",\"ecr:PutImage\",\"ecr:UploadLayerPart\"]}]}", "lifecyclePolicy": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Expire images older than 14 days\",\"selection\":{\"tagStatus\":\"any\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":14},\"action\":{\"type\":\"expire\"}}]}", "customRoleArn": "arn:aws:iam::111122223333:role/myRole" }
  3. Use o comando a seguir para criar um modelo de criação de repositório. Certifique-se de especificar o nome do arquivo de configuração criado na etapa anterior no lugar do repository-creation-template.json no exemplo a seguir.

    aws ecr create-repository-creation-template \ --cli-input-json file://repository-creation-template.json