

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
<a name="repository-creation-templates-create"></a>

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 pull through cache, create on push ou 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: 
+ [Criar uma política personalizada para modelos de criação de repositórios](repository-creation-templates-custom.md).
+ [Criar um perfil do IAM para modelos de criação de repositórios](repository-creation-templates-create-iam.md).

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
<a name="repository-creation-templates-iam"></a>

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 uma política personalizada para modelos de criação de repositórios
<a name="repository-creation-templates-custom"></a>

Você pode usar o Console de gerenciamento da AWS para definir uma política que será posteriormente associada a uma função do IAM. Esse perfil do IAM pode então ser utilizado como um perfil de criação de repositório ao configurar um modelo de criação de repositório.

------
#### [ Console de gerenciamento da AWS ]

**Para usar o editor de políticas JSON para criar uma política personalizada para modelos de criação de repositórios.**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação à esquerda, escolha **Políticas**. 

1. Selecione **Criar política**.

1. Na seção **Editor de políticas**, escolha a opção **JSON**.

1. Insira a política a seguir no campo **JSON**:

------
#### [ JSON ]

****  

   ```
   { 
           "Version":"2012-10-17",		 	 	  
           "Statement": [ 
               { 
                   "Effect": "Allow",
                   "Action": [ 
                       "ecr:CreateRepository", 
                       "ecr:ReplicateImage", 
                       "ecr:TagResource" 
                   ], 
                   "Resource": "*" 
               }, 
               {
                   "Effect": "Allow", 
                   "Action": [ 
                       "kms:CreateGrant", 
                       "kms:RetireGrant", 
                       "kms:DescribeKey" 
                   ], 
                   "Resource": "*" 
               } 
            ]
   }
   ```

------

1. Resolva os avisos de segurança, as mensagens erros ou os avisos gerais gerados durante a [validação de política](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html), e depois escolha **Próximo**.

1. Quando terminar de adicionar as permissões à política, escolha **Avançar**.

1. Na página **Revisar e criar**, digite um **nome de política** e uma **descrição** (opcional) para a política que você está criando. Revise **Permissões definidas nessa política** para ver as permissões que são concedidas pela política.

1. Escolha **Criar política** para salvar sua nova política.

1. Crie um perfil para atribuir essa política ao modelo de criação. Consulte [Criar um perfil do IAM para modelos de criação de repositórios](repository-creation-templates-create-iam.md).

------

# Criar um perfil do IAM para modelos de criação de repositórios
<a name="repository-creation-templates-create-iam"></a>

Você pode usar o Console de gerenciamento da AWS para criar uma função que pode ser usada pelo Amazon ECR ao especificar a função de criação de repositório em um modelo de criação de repositório que está usando tags de repositório ou KMS em um modelo.

------
#### [ Console de gerenciamento da AWS ]

**Para criar um perfil.**

1. Faça login no Console de gerenciamento da AWS e abra o console do IAM em [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. No painel de navegação do console, escolha **Roles** (Perfis) e, em seguida, clique em **Create role** (Criar perfil).

1. Escolha o tipo de perfil **Política de confiança personalizada**.

1. Na seção **Política de confiança personalizada**, cole a política de confiança personalizada listada abaixo: 

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Service": "ecr.amazonaws.com"
           },
           "Action": "sts:AssumeRole"
       }
       ]
   }
   ```

------

1. Escolha **Próximo**.

1. Na página **Adicionar permissões**, marque a caixa de seleção ao lado da política personalizada que você criou anteriormente na lista de políticas de permissões, e escolha **Próximo**.

1. Em **Role name (Nome da função)**, digite um nome para sua função. Os nomes das funções devem ser exclusivos em seu Conta da AWS. Ao ser usada em uma política ou como parte de um ARN, o nome da função diferencia maiúsculas de minúsculas. Quando exibida para os clientes no console, por exemplo, como durante o processo de login, o nome de função não diferencia maiúsculas de minúsculas. Como várias entidades podem fazer referência à função, não é possível editar o nome da função depois de criada.

1. (Opcional) Em **Descrição da função**, insira uma descrição para a nova função.

1. Revise a função e escolha **Criar função**.

------

## Criar um modelo de criação de repositório
<a name="repository-creation-templates-creating"></a>

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

------
#### [ Console de gerenciamento da AWS ]

**Para criar um modelo de criação de repositório (Console de gerenciamento da AWS)**

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

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

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

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

1. 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/`. 

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

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

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

1. 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](image-tag-mutability.md).
      + **Mutável** – Escolha essa opção se quiser que as tags de imagem sejam sobrescritas. É recomendada para repositórios que usam ações de cache de pull-through para garantir que o Amazon ECR possa atualizar imagens armazenadas em cache. Além disso, para desabilitar as atualizações de tag para algumas tags mutáveis, insira os nomes das tags ou use curingas (\$1) para combinar várias tags semelhantes na caixa de texto **Exclusão de tag mutável**.
      + **Imutável** – Selecione esta opção se quiser impedir que as tags de imagem sejam sobrescritas. Isso se aplica a todas as tags e exclusões no repositório ao enviar uma imagem com uma tag existente. O Amazon ECR retorna uma `ImageTagAlreadyExistsException` se você tentar enviar uma imagem com uma tag existente. Além disso, para habilitar as atualizações de tag para algumas tags imutáveis, insira os nomes das tags ou use curingas (\$1) para combinar várias tags semelhantes na caixa de texto **Exclusão de tag imutável**. 

   1. Para **Configuração de criptografia**, escolha a configuração de criptografia a ser usada. Para obter mais informações, consulte [Criptografia em repouso](encryption-at-rest.md).

      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.

   1. 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](repository-policies.md).

   1. 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](LifecyclePolicies.md).

   1. **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](ecr-using-tags.md).

   1. 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](repository-creation-templates-create-iam.md) para obter detalhes). Em seguida, escolha **Próximo**.

1. 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](https://docs.aws.amazon.com/cli/latest/reference/ecr/create-repository-creation-template.html) 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-template](https://docs.aws.amazon.com/cli/latest/reference/ecr/create-repository-creation-template.html)comando.

   ```
   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, CREATE_ON_PUSH, 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
   }
   ```

1. Criar um arquivo denominado `repository-creation-template.json` com a saída da etapa anterior. Este modelo define uma chave de criptografia do KMS para qualquer repositório criado em `prod/*` com uma política de repositório que permite enviar por push 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 um perfil personalizado que permitirá que o ECR acesse a chave do KMS e atribua a tag de recurso `examplekey` a repositórios futuros.

   ```
   {
   "prefix": "prod",
       "description": "For repositories cached from my PTC rule and in my replication configuration that start with 'prod/'",
       "appliedFor": ["PULL_THROUGH_CACHE", "CREATE_ON_PUSH", "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"
   }
   ```

1. 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
   ```

------