Ejemplos de políticas de repositorios privados en Amazon ECR - Amazon ECR

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 repositorios privados en Amazon ECR

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 declaración de política de repositorios privados en Amazon ECR.

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.

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 de IAM administradas 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.

Ejemplo: Permitir uno o más usuarios de

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.

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

Ejemplo: Permitir otra cuenta

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.

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

La siguiente política de repositorio permite a determinados usuarios extraer imágenes (pull-user-1 y pull-user-2), al tiempo que proporciona acceso completo a otro usuario (admin-user).

nota

Para políticas de repositorio más complicadas que actualmente no son compatibles con el AWS Management Console, puede aplicar la política con el set-repository-policy AWS CLI comando.

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

Ejemplo: Denegar todo

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

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

Ejemplo: Restringir el acceso a direcciones IP específicas

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 en esta declaración identifica el rango 54.240.143.* de direcciones IP permitidas del protocolo de Internet versión 4 (IPv4).

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 espacio. Para obtener más información sobre estas claves de condición, consulte Claves de contexto de condición globales de AWS. Los valores de IPv4 aws:sourceIp utilizan la notación CIDR estándar. Para obtener más información, consulte Operadores de condición de dirección IP en la guía del usuario de IAM.

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

Ejemplo: permitir un servicio AWS

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 en la Guía del AWS CodeBuild usuario.

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