

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Crear una plantilla de creación de repositorios en Amazon ECR
<a name="repository-creation-templates-create"></a>

Puede crear una plantilla de creación de repositorios para definir la configuración que se utilizará en los repositorios creados por Amazon ECR en su nombre durante las acciones de extracción de memoria caché, creación mediante inserción o replicación. Una vez creada la plantilla de creación de repositorios, se aplicará la configuración a todos los repositorios nuevos que se creen. Esto no tiene ningún efecto en ningún repositorio creado anteriormente.

Al configurar un repositorio con plantillas, puede especificar las claves KMS y las etiquetas de recursos. Si pretende utilizar claves de KMS, etiquetas de recursos o una combinación de ambas en una o más plantillas, tiene que realizar lo siguiente: 
+ [Cree una política personalizada para las plantillas de creación de repositorios](repository-creation-templates-custom.md).
+ [Cree un rol de IAM para las plantillas de creación de repositorios](repository-creation-templates-create-iam.md).

Una vez finalizada la configuración, puede adjuntar el rol personalizado a plantillas específicas de su registro.



## Permisos de IAM para crear plantillas de creación de repositorio
<a name="repository-creation-templates-iam"></a>

Los siguientes permisos son necesarios para que una entidad principal de IAM administre las plantillas de creación de repositorios. Este permiso debe otorgarse a través de una política de IAM basada en identidad.
+ `ecr:CreateRepositoryCreationTemplate`: otorga permiso para crear una plantilla de creación de repositorio.
+ `ecr:UpdateRepositoryCreationTemplate`: otorga permiso para actualizar una plantilla de creación de repositorio.
+ `ecr:DescribeRepositoryCreationTemplates`: otorga permiso para enumerar plantillas de creación de repositorio en un registro.
+ `ecr:DeleteRepositoryCreationTemplate`: otorga permiso para eliminar una plantilla de creación de repositorio.
+ `ecr:CreateRepository`: otorga permiso para crear un repositorio de Amazon ECR.
+ `ecr:PutLifecyclePolicy`: otorga permiso para crear una política de ciclo de vida y aplicarla a un repositorio. Este permiso solo es necesario si la plantilla de creación del repositorio incluye una política de ciclo de vida.
+ `ecr:SetRepositoryPolicy`: otorga permiso para crear una política de permisos para un repositorio. Este permiso solo es necesario si la plantilla de creación del repositorio incluye una política de repositorio.
+ `iam:PassRole`: otorga permiso para permitir que una entidad transfiera un rol a un servicio o a una aplicación. Este permiso es necesario para los servicios y las aplicaciones que necesitan adoptar un rol con el fin de realizar acciones en su nombre.

# Cree una política personalizada para las plantillas de creación de repositorios
<a name="repository-creation-templates-custom"></a>

Puede utilizarla Consola de administración de AWS para definir una política que se asociará posteriormente a un rol de IAM. Este rol de IAM se puede utilizar luego como un rol de creación de repositorios al configurar una plantilla de creación de repositorios.

------
#### [ Consola de administración de AWS ]

**Para utilizar el editor de políticas de JSON y crear una política personalizada para las plantillas de creación de repositorios.**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación de la izquierda, elija **Políticas**. 

1. Elija **Crear política**.

1. En la sección **Editor de políticas**, seleccione la opción **JSON**.

1. Introduzca la siguiente política en el campo de **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. Resuelva las advertencias de seguridad, errores o advertencias generales que se generen durante la[ validación de la política](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) y luego elija **Siguiente**.

1. Cuando haya terminado de agregar permisos a la política, seleccione **Siguiente**.

1. En la página **Revisar y crear**, escriba el **Nombre de la política** y la **Descripción** (opcional) para la política que está creando. Revise los **Permisos definidos en esta política** para ver los permisos que concede la política.

1. Elija **Crear política** para guardar la nueva política.

1. Cree un rol para asignar esta política a la plantilla de creación, consulte [Cree un rol de IAM para las plantillas de creación de repositorios](repository-creation-templates-create-iam.md).

------

# Cree un rol de IAM para las plantillas de creación de repositorios
<a name="repository-creation-templates-create-iam"></a>

Puede utilizarla Consola de administración de AWS para crear una función que Amazon ECR pueda utilizar cuando especifique la función de creación de repositorios en una plantilla de creación de repositorios que utilice etiquetas de repositorio o KMS en una plantilla.

------
#### [ Consola de administración de AWS ]

**Para crear un rol.**

1. Inicie sesión en la consola de IAM Consola de administración de AWS y ábrala en. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. En el panel de navegación de la consola, elija **Roles** y, a continuación, seleccione **Crear rol**.

1. Elija el tipo de rol **Política de confianza personalizada**.

1. En la sección **Política de confianza personalizada**, pegue la política de confianza personalizada que se indica a continuación: 

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

****  

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

------

1. Elija **Siguiente**.

1. En la página **Añadir permisos**, seleccione la casilla de verificación situada junto a la política personalizada que creó anteriormente en la lista de Políticas de permisos y seleccione **Siguiente**.

1. Escriba un nombre para el rol en **Nombre de rol**. Los nombres de los roles deben ser únicos dentro de su. Cuenta de AWS Cuando se utiliza un nombre de rol en una política o como parte de un ARN, el nombre del rol distingue entre mayúsculas y minúsculas. Cuando los clientes ven un nombre de rol en la consola, por ejemplo, durante el proceso de inicio de sesión, el nombre del rol no distingue entre mayúsculas y minúsculas. Dado que varias entidades pueden hacer referencia al rol, no se puede editar el nombre del rol una vez que se crea.

1. (Opcional) En **Descripción**, ingrese una descripción para el nuevo rol.

1. Revise el rol y, a continuación, seleccione **Crear rol**.

------

## Cree una plantilla de creación de repositorios
<a name="repository-creation-templates-creating"></a>

Una vez que haya completado los requisitos previos necesarios para las plantillas, puede proceder a crear las plantillas de creación de repositorios.

------
#### [ Consola de administración de AWS ]

**Crear una plantilla de creación de repositorios (Consola de administración de AWS)**

1. Abra la consola Amazon ECR en [https://console.aws.amazon.com/ecr/](https://console.aws.amazon.com/ecr/).

1. En la barra de navegación, elija la región en la que crear la plantilla de creación del repositorio.

1. En el panel de navegación, elija **Registro privado**, **Plantillas de creación de repositorios**.

1. En la página de **plantillas de creación de repositorios**, seleccione **Crear plantilla**.

1. En la página **Step 1: Define template**, (Paso 1: definir una plantilla), en **Template details** (Detalles de la plantilla), seleccione **A specific prefix** (Un prefijo específico) para aplicar la plantilla a un prefijo de espacio de nombres de repositorio específico, o seleccione **Any prefix in your ECR registry** (Cualquier prefijo de su registro de ECR) para aplicar la plantilla a todos los repositorios que no coincidan con ninguna otra plantilla de la región.

   1. Si elige **Un prefijo específico**, especifique el prefijo del espacio de nombres del repositorio al que se va a aplicar la plantilla en **Prefijo**. Siempre se aplica una suposición `/` al final del prefijo. Por ejemplo, el prefijo de `prod` se aplicaría a todos los repositorios que comiencen por `prod/`. De forma similar, el prefijo de `prod/team` se aplicaría a todos los repositorios que comiencen por `prod/team/`. 

   1. Si selecciona **Cualquier prefijo en su registro ECR**, el **Prefijo** se establecerá en `ROOT`.

1. En **aplicar a**, especifique a qué flujos de trabajo de Amazon ECR se aplicará esta plantilla. Las opciones son `PULL_THROUGH_CACHE`, `CREATE_ON_PUSH` y `REPLICATION`.

1. En **Descripción de la plantilla**, especifique una descripción opcional para la plantilla y, a continuación, seleccione **Siguiente**.

1. En la página del **Paso 2: Agregar la configuración de creación de repositorios**, especifique la configuración del repositorio que se aplicará a los repositorios creados con la plantilla.

   1. Para **Mutabilidad de la etiqueta de imagen**, elija la configuración de mutabilidad de la etiqueta que desea utilizar. Para obtener más información, consulte [Cómo impedir que se sobrescriban las etiquetas de imagen en Amazon ECR](image-tag-mutability.md).
      + **Mutable**: elija esta opción si desea que se sobrescriban las etiquetas de las imágenes. Se recomienda para los repositorios que utilizan acciones de caché de extracción para asegurar que Amazon ECR actualice las imágenes en caché. Asimismo, para deshabilitar las actualizaciones de etiquetas para algunas etiquetas mutables, ingrese los nombres de las etiquetas o utilice comodines (\$1) para hacer coincidir varias etiquetas similares en el cuadro de texto **Exclusión de etiquetas mutables**.
      + **Inmutable**: seleccione esta opción si desea evitar que las etiquetas de imagen se sobrescriban y se aplica a todas las etiquetas y exclusiones del repositorio cuando se inserta una imagen con una etiqueta existente. Amazon ECR devuelve un `ImageTagAlreadyExistsException` si intenta insertar una imagen con una etiqueta existente. Asimismo, para activar las actualizaciones de etiquetas para algunas etiquetas inmutables, ingrese los nombres de las etiquetas o utilice comodines (\$1) para hacer coincidir varias etiquetas similares en el cuadro de texto **Exclusión de etiquetas inmutables**. 

   1. Para **Configuración del cifrado**, elija el ajuste de cifrado que desee utilizar. Para obtener más información, consulte [Cifrado en reposo](encryption-at-rest.md).

      Cuando se selecciona **AES-256**, Amazon ECR utiliza cifrado del lado del servidor con claves de cifrado administradas por Amazon Simple Storage Service que cifra sus datos en reposo mediante un algoritmo de cifrado AES-256 estándar de la industria. Esto se ofrece sin costo adicional.

      Cuando se selecciona **AWS KMS**, Amazon ECR utiliza el cifrado del lado del servidor con las claves almacenadas en AWS Key Management Service (AWS KMS). Cuando utiliza AWS KMS para cifrar sus datos, puede utilizar la clave AWS gestionada predeterminada, que gestiona Amazon ECR, o especificar su propia AWS KMS clave, que se denomina clave *gestionada por el cliente*.
**nota**  
La configuración de cifrado de un repositorio no se puede cambiar una vez creado el repositorio.

   1. En **Permisos del repositorio**, especifique la política de permisos del repositorio que se aplicará a los repositorios creados con esta plantilla. Si lo desea, puede utilizar el menú desplegable para seleccionar uno de los ejemplos de JSON para los casos de uso más comunes. Para obtener más información, consulte [Políticas de repositorios privados en Amazon ECR](repository-policies.md).

   1. En **Política de ciclo de vida del repositorio**, especifique la política de ciclo de vida del repositorio que se aplicará a los repositorios creados con esta plantilla. Si lo desea, puede utilizar el menú desplegable para seleccionar uno de los ejemplos de JSON para los casos de uso más comunes. Para obtener más información, consulte [Automatice la limpieza de imágenes mediante el uso de políticas de ciclo de vida en Amazon ECR](LifecyclePolicies.md).

   1. **En el caso de las ** AWS etiquetas de repositorio**, especifique los metadatos, en forma de pares clave-valor, que desee asociar a los repositorios creados con esta plantilla y, a continuación, seleccione Siguiente.** Para obtener más información, consulte [Etiquetado de un repositorio privado en Amazon ECR](ecr-using-tags.md).

   1. Para el **rol de creación de repositorios**, seleccione un rol de IAM personalizado desde el menú desplegable con el fin de utilizarlo en las plantillas de creación de repositorios cuando se usen etiquetas de repositorio o KMS en la plantilla (para obtener más información, consulte [Cree un rol de IAM para las plantillas de creación de repositorios](repository-creation-templates-create-iam.md)). A continuación, presione **Siguiente**.

1. En la página del **Paso 3: Revisar y crear**, revise la configuración que especificó para la plantilla de creación del repositorio. Seleccione la opción **Editar** para realizar cambios. Cuando haya terminado, elija **Crear**.

------
#### [ AWS CLI ]

El [create-repository-creation-template](https://docs.aws.amazon.com/cli/latest/reference/ecr/create-repository-creation-template.html) AWS CLI comando se utiliza para crear una plantilla de creación de repositorios para su registro privado.

**Crear una plantilla de creación de repositorios (AWS CLI)**

1. Utilice el AWS CLI para generar un esqueleto para el [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
   ```

   El resultado del comando mostrará la sintaxis completa de la plantilla de creación del repositorio. 

   ```
   {
   "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. Cree un archivo denominado `repository-creation-template.json` con el resultado del paso anterior. Esta plantilla establece una clave de cifrado de KMS para cualquier repositorio creado con el nombre `prod/*` con una política de repositorio que permita insertar y extraer imágenes de repositorios futuros, establece una política de ciclo de vida que caducará las imágenes con más de dos semanas de antigüedad y establece una función personalizada que permitirá a ECR acceder a la clave de KMS y asignar la etiqueta de recurso `examplekey` a repositorios 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. Para crear una plantilla de creación de repositorios, utilice el siguiente comando. Asegúrese de especificar el nombre del archivo de configuración que creó en el paso anterior en lugar del `repository-creation-template.json` en el ejemplo siguiente.

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

------