

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.

# Ejemplos de políticas de repositorio privado en Amazon ECR
<a name="repository-policy-examples"></a>

**importante**  
Los ejemplos de políticas de repositorios de esta página están pensados para aplicarse a los repositorios privados de Amazon ECR. No funcionarán correctamente si se utilizan directamente con una entidad principal de IAM, a menos que se modifiquen para especificar el repositorio de Amazon ECR como recurso. Para obtener más información acerca de cómo establecer políticas de repositorios, consulte [Configuración de una instrucción de política de repositorio privado en Amazon ECR](set-repository-policy.md).

Las políticas de repositorios de Amazon ECR son un subconjunto de políticas de IAM destinados a controlar el acceso a repositorios de Amazon ECR individuales, y se aplican específicamente a este fin. Las políticas de IAM se suelen utilizar para aplicar permisos a todo el servicio de Amazon ECR, pero también se pueden utilizar para controlar el acceso a recursos específicos. Para obtener más información, consulte [Políticas de repositorios frente a políticas de IAM](repository-policies.md#repository-policy-vs-iam-policy).

En los siguientes ejemplos de política de repositorio se muestran instrucciones de permiso que puede utilizar para controlar el acceso a los repositorios privados de Amazon ECR.

**importante**  
Amazon ECR requiere que los usuarios tengan permiso para realizar llamadas a la API `ecr:GetAuthorizationToken` a través de una política de IAM para que puedan autenticarse en un registro, así como insertar o extraer imágenes de cualquier repositorio de Amazon ECR. Amazon ECR proporciona varias políticas administradas por IAM para controlar el acceso de los usuarios en distintos niveles. Para obtener más información, consulte [Ejemplos de políticas basadas en identidad de Amazon Elastic Container Registry](security_iam_id-based-policy-examples.md).

## Ejemplo: Permitir uno o más usuarios de
<a name="IAM_within_account"></a>

La siguiente política de repositorio permite que uno o más usuarios de inserten imágenes en un repositorio y las extraigan de este.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPushPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/push-pull-user-1",
                    "arn:aws:iam::111122223333:user/push-pull-user-2"
                ]
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability",
                "ecr:CompleteLayerUpload",
                "ecr:GetDownloadUrlForLayer",
                "ecr:InitiateLayerUpload",
                "ecr:PutImage",
                "ecr:UploadLayerPart"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Ejemplo: Permitir otra cuenta
<a name="IAM_allow_other_accounts"></a>

La siguiente política de repositorio permite a una cuenta específica insertar imágenes.

**importante**  
La cuenta a la que está otorgando permisos debe tener habilitada la región en la que está creando la política de repositorio; de lo contrario, se producirá un error.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCrossAccountPush",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "ecr:BatchCheckLayerAvailability",
                "ecr:CompleteLayerUpload",
                "ecr:InitiateLayerUpload",
                "ecr:PutImage",
                "ecr:UploadLayerPart"
            ],
            "Resource": "*"
        }
    ]
}
```

------

La siguiente política de repositorio permite a algunos usuarios extraer imágenes (*pull-user-1*y*pull-user-2*) y, al mismo tiempo, proporciona acceso total a otros (*admin-user*).

**nota**  
Para políticas de repositorio más complicadas que actualmente no son compatibles con el Consola de administración de AWS, puedes aplicar la política con el [https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html](https://docs.aws.amazon.com/cli/latest/reference/ecr/set-repository-policy.html) AWS CLI comando.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333:user/pull-user-1",
                    "arn:aws:iam::111122223333:user/pull-user-2"
                ]
            },
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowAll",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:user/admin-user"
            },
            "Action": [
                "ecr:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Ejemplo: Denegar todo
<a name="IAM_deny_all"></a>

La siguiente política de repositorio deniega a todos los usuarios de todas las cuentas la capacidad de extraer imágenes.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyPull",
            "Effect": "Deny",
            "Principal": "*",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## Ejemplo: Restringir el acceso a direcciones IP específicas
<a name="IAM_restrict_ip"></a>

El siguiente ejemplo deniega permisos a cualquier usuario para realizar cualquier operación de Amazon ECR cuando se aplica a un repositorio desde un rango específico de direcciones.

La condición de esta declaración identifica el `54.240.143.*` rango de direcciones IP de la versión 4 (IPv4) del Protocolo de Internet permitidas.

El `Condition` bloque utiliza `NotIpAddress` las condiciones y la clave de `aws:SourceIp` condición, que es una clave de condición que AWS abarca todo el territorio. Para obtener más información sobre estas claves de condición, consulte [Claves de contexto de condición globales de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html). Los `aws:sourceIp` IPv4 valores utilizan la notación CIDR estándar. Para obtener más información, consulte [Operadores de condición de dirección IP](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_IPAddress) en la *guía del usuario de IAM*.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "ECRPolicyId1",
    "Statement": [
        {
            "Sid": "IPAllow",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "ecr:*",
            "Resource": "*",
            "Condition": {
                "NotIpAddress": {
                    "aws:SourceIp": "54.240.143.0/24"
                }
            }
        }
    ]
}
```

------

## Ejemplo: Permitir un servicio AWS
<a name="IAM_service_linked"></a>

La siguiente política de repositorios permite el AWS CodeBuild acceso a las acciones de la API Amazon ECR necesarias para la integración con ese servicio. Al utilizar el siguiente ejemplo, debe utilizar `aws:SourceArn` y las claves de condición `aws:SourceAccount` para el ámbito de qué recursos pueden asumir estos permisos. Para obtener más información, consulte el [ejemplo de Amazon ECR CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/sample-ecr.html) en la *Guía del AWS CodeBuild usuario*.

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"CodeBuildAccess",
         "Effect":"Allow",
         "Principal":{
            "Service":"codebuild.amazonaws.com"
         },
         "Action":[
            "ecr:BatchGetImage",
            "ecr:GetDownloadUrlForLayer"
         ],
         "Resource": "*",
         "Condition":{
            "ArnLike":{
               "aws:SourceArn":"arn:aws:codebuild:us-east-1:123456789012:project/project-name"
            },
            "StringEquals":{
               "aws:SourceAccount":"123456789012"
            }
         }
      }
   ]
}
```

------