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
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.
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
En el caso de políticas de repositorio más complicadas que no se admiten actualmente en la AWS Management Console, puede aplicar la política con el comando set-repository-policy de la AWS CLI.
{ "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 bloque Condition
utiliza las condiciones NotIpAddress
y la clave de condición aws:SourceIp
, que es una clave de condición general de AWS. 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 de AWS
La siguiente política de repositorio permite que AWS CodeBuild pueda acceder a las acciones de la API de Amazon ECR necesarias para la integración con dicho 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 Ejemplo de Amazon ECR para CodeBuild en la Guía del usuario de AWS CodeBuild.
{ "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
" } } } ] }