Controle el acceso a los servicios de VPC Lattice mediante políticas de autenticación - Amazon VPC Lattice

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.

Controle el acceso a los servicios de VPC Lattice mediante políticas de autenticación

Las políticas de autenticación de VPC Lattice son documentos de políticas de IAM que se adjuntan a las redes de servicios o servicios para controlar si una entidad principal específica tiene acceso a un grupo de servicios o a un servicio específico. Puede adjuntar una política de autenticación a cada red de servicio o servicio cuyo acceso quiera controlar.

Las políticas de autenticación difieren de las políticas basadas en entidades de IAM. Las políticas basadas en identidad de IAM se asocian a usuarios, grupos o roles de IAM y definen qué acciones pueden realizar esas identidades y en qué recursos. Las políticas de autenticación están asociadas a los servicios y a las redes de servicios. Para que la autorización funcione, tanto las políticas de autenticación como las políticas basadas en identidades deben incluir instrucciones de autorización explícitas. Para obtener más información, consulte Cómo funciona la autorización.

Puede usar la consola AWS CLI y para ver, agregar, actualizar o eliminar las políticas de autenticación en los servicios y las redes de servicios. Cuando utilices la AWS CLI, recuerda que tus comandos se ejecutan en la Región de AWS configuración de tu perfil. Si desea ejecutar los comandos en otra región, cambie la región predeterminada de su perfil o utilice el parámetro --region con el comando.

Para empezar a utilizar las políticas de autenticación, siga el procedimiento para crear una política de autenticación que se aplique a una red de servicios. Para obtener permisos más restrictivos que no quieran que se apliquen a otros servicios, puede optar por establecer políticas de autenticación en servicios individuales.

Las siguientes AWS CLI tareas le muestran cómo administrar el acceso a una red de servicios mediante políticas de autenticación. Para obtener instrucciones sobre cómo utilizar la consola, consulte Redes de servicios en VPC Lattice.

Cómo agregar una política de autenticación a una red de servicios

Siga los pasos de esta sección para utilizarlos AWS CLI para:

  • Habilite el control de acceso de una red de servicios mediante IAM.

  • Agregue una política de autenticación a la red de servicios. Si no agrega una política de autenticación, todo el tráfico recibirá un error de acceso denegado.

Para habilitar el control de acceso y agregar una política de autenticación a una nueva red de servicios
  1. Para habilitar el control de acceso de una red de servicios para que pueda usar una política de autenticación, utilice el comando create-service-network con la opción --auth-type y un valor de AWS_IAM.

    aws vpc-lattice create-service-network --name Name --auth-type AWS_IAM [--tags TagSpecification]

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. Use el comando put-auth-policy y especifique el ID de la red de servicios a la que desea agregar la política de autenticación y la política de autenticación que desea agregar.

    Por ejemplo, utilice el siguiente comando para crear una política de autenticación para la red de servicios con el ID sn-0123456789abcdef0.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    Use JSON para crear una definición de política. Para obtener más información, consulte Elementos comunes de una política de autenticación.

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "policy": "policy", "state": "Active" }
Cómo habilitar el control de acceso y añadir una política de autenticación a una red de servicios existente
  1. Para habilitar el control de acceso de una red de servicios para que pueda usar una política de autenticación, utilice el comando update-service-network con la opción --auth-type y un valor de AWS_IAM.

    aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type AWS_IAM

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "arn": "arn", "authType": "AWS_IAM", "id": "sn-0123456789abcdef0", "name": "Name" }
  2. Use el comando put-auth-policy y especifique el ID de la red de servicios a la que desea agregar la política de autenticación y la política de autenticación que desea agregar.

    aws vpc-lattice put-auth-policy --resource-identifier sn-0123456789abcdef0 --policy file://policy.json

    Use JSON para crear una definición de política. Para obtener más información, consulte Elementos comunes de una política de autenticación.

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "policy": "policy", "state": "Active" }

Cambio del tipo de autenticación de una red de servicios

Cómo deshabilitar la política de autenticación de una red de servicios

Utilice el comando update-service-network con la opción --auth-type y un valor de NONE.

aws vpc-lattice update-service-network --service-network-identifier sn-0123456789abcdef0 --auth-type NONE

Si necesita volver a habilitar la política de autenticación más adelante, ejecute este comando con el AWS_IAM especificado para la opción --auth-type.

Eliminación de una política de autenticación de una red de servicios

Cómo eliminar una política de autenticación de una red de servicios

Utilice el comando delete-auth-policy.

aws vpc-lattice delete-auth-policy --resource-identifier sn-0123456789abcdef0

La solicitud falla si elimina una política de autenticación antes de cambiar el tipo de autenticación de una red de servicios a NONE.

Las siguientes AWS CLI tareas muestran cómo administrar el acceso a un servicio mediante políticas de autenticación. Para obtener instrucciones sobre cómo utilizar la consola, consulte Servicios en VPC Lattice.

Adición de una política de autenticación a un servicio

Siga estos pasos para utilizarlos AWS CLI para:

  • Habilite el control de acceso de un servicio mediante IAM.

  • Agregue una política de autenticación al servicio. Si no agrega una política de autenticación, todo el tráfico recibirá un error de acceso denegado.

Cómo habilitar el control de acceso y agregar una política de autenticación a un nuevo servicio
  1. Para habilitar el control de acceso de un servicio para que pueda usar una política de autenticación, utilice el comando create-service con la opción --auth-type y un valor de AWS_IAM.

    aws vpc-lattice create-service --name Name --auth-type AWS_IAM [--tags TagSpecification]

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "arn": "arn", "authType": "AWS_IAM", "dnsEntry": { ... }, "id": "svc-0123456789abcdef0", "name": "Name", "status": "CREATE_IN_PROGRESS" }
  2. Use el comando put-auth-policy y especifique el ID del servicio al que desea agregar la política de autenticación y la política de autenticación que desea agregar.

    Por ejemplo, utilice el siguiente comando para crear una política de autenticación para el servicio con el ID svc-0123456789abcdef0.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    Use JSON para crear una definición de política. Para obtener más información, consulte Elementos comunes de una política de autenticación.

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "policy": "policy", "state": "Active" }
Cómo habilitar el control de acceso y añadir una política de autenticación a un servicio existente
  1. Para habilitar el control de acceso de un servicio para que pueda usar una política de autenticación, utilice el comando update-service con la opción --auth-type y un valor de AWS_IAM.

    aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type AWS_IAM

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "arn": "arn", "authType": "AWS_IAM", "id": "svc-0123456789abcdef0", "name": "Name" }
  2. Use el comando put-auth-policy y especifique el ID del servicio al que desea agregar la política de autenticación y la política de autenticación que desea agregar.

    aws vpc-lattice put-auth-policy --resource-identifier svc-0123456789abcdef0 --policy file://policy.json

    Use JSON para crear una definición de política. Para obtener más información, consulte Elementos comunes de una política de autenticación.

    Si se ejecuta correctamente, el comando devolverá información similar a la siguiente.

    { "policy": "policy", "state": "Active" }

Cambio de un tipo de autenticación de servicio

Cómo deshabilitar la política de autenticación de un servicio

Utilice el comando update-service con la opción --auth-type y un valor de NONE.

aws vpc-lattice update-service --service-identifier svc-0123456789abcdef0 --auth-type NONE

Si necesita volver a habilitar la política de autenticación más adelante, ejecute este comando con el AWS_IAM especificado para la opción --auth-type.

Eliminación de una política de autenticación de un servicio

Cómo eliminar una política de autenticación de un servicio

Utilice el comando delete-auth-policy.

aws vpc-lattice delete-auth-policy --resource-identifier svc-0123456789abcdef0

La solicitud falla si elimina una política de autenticación antes de cambiar el tipo de autenticación del servicio a NONE.

Si habilita políticas de autenticación que requieren solicitudes autenticadas para un servicio, todas las solicitudes para ese servicio deben contener una firma de solicitud válida que se calcule con Signature Version 4 (SigV4). Para obtener más información, consulte Solicitudes autenticadas mediante SigV4 para Amazon VPC Lattice.

Elementos comunes de una política de autenticación

Las políticas de autenticación de VPC Lattice se especifican utilizando la misma sintaxis que para las políticas de IAM. Para obtener más información, consulte Políticas basadas en identidad y políticas basadas en recursos en la Guía del usuario de IAM.

Una política de autenticación contiene los siguientes elementos:

  • Entidad principal: la persona o la aplicación con permiso de acceso a las acciones y los recursos en la instrucción. En una política de autenticación, la entidad principal es la entidad de IAM que recibe este permiso. La entidad principal se autentica como entidad de IAM para realizar solicitudes a un recurso o grupo de recursos específico, como en el caso de los servicios de una red de servicios.

    Debe especificar una entidad principal en una política basada en recursos. Los principales pueden incluir cuentas, usuarios, roles, usuarios federados o AWS servicios. Para obtener más información, consulte Elementos de la política de JSON de AWS : entidad principal en la Guía del usuario de IAM.

  • Efecto: el efecto cuando la entidad principal específica solicita la acción específica. Puede ser Allow o Deny. De forma predeterminada, cuando se habilita el control de acceso de un servicio o una red de servicios mediante IAM, las entidades principales no tienen permisos para realizar solicitudes al servicio o a la red de servicios.

  • Acciones: la acción específica de la API para la que se concede o deniega el permiso. VPC Lattice admite acciones que usan el prefijo. vpc-lattice-svcs Para obtener más información, consulte las acciones definidas por Amazon VPC Lattice Services en la Referencia de autorización de servicios.

  • Recursos: los servicios que se ven afectados por la acción.

  • Condición: las condiciones son opcionales. Puede utilizarlas para controlar cuándo entra en vigor su política. Para obtener más información, consulte Claves de condición de los servicios de Amazon VPC Lattice en la Referencia de autorización de servicios.

Al crear y administrar las políticas de autenticación, es posible que quiera usar el generador de políticas de IAM.

Requisito

La política de JSON no debe contener líneas nuevas o líneas en blanco.

Formato de recurso para políticas de autenticación

Puede restringir el acceso a recursos específicos al crear una política de autenticación que utilice un esquema coincidente con un patrón <serviceARN>/<path> y codificar el elemento Resource, como se muestra en los siguientes ejemplos.

Ejemplos de recursos para políticas de autenticación
Protocolo Ejemplos
HTTP
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/rates"

  • "Resource": "*/rates"

  • "Resource": "*/*"

gRPC
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/GetRates"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/api.parking/*"

  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/*"

Utilice el siguiente formato de nombre de recurso de Amazon (ARN) para <serviceARN>:

arn:aws:vpc-lattice:region:account-id:service/service-id

Por ejemplo:

"Resource": "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0"

Claves de condición que se pueden utilizar en políticas de autenticación

El acceso puede controlarse aún más mediante las claves de condición en el elemento Condición de las políticas de autenticación. Estas claves de condición están presentes para su evaluación en función del protocolo y de si la solicitud está firmada con Signature Version 4 (SigV4) o es anónima. Las claves de condición distinguen entre mayúsculas y minúsculas.

AWS proporciona claves de condición globales que puede usar para controlar el acceso, como aws:PrincipalOrgID yaws:SourceIp. Para ver una lista de las claves de condición AWS globales, consulte las claves de contexto de condición AWS globales en la Guía del usuario de IAM.

En la siguiente tabla se enumeran las claves de condición de VPC Lattice. Para obtener más información, consulte Claves de condición de los servicios de Amazon VPC Lattice en la Referencia de autorización de servicios.

Claves de condición para políticas de autenticación
Claves de condición Descripción Ejemplo Disponibilidad para usuarios anónimos (no autenticados) Disponibilidad para gRPC
vpc-lattice-svcs:Port Filtra el acceso por el puerto de servicio al que se realiza la solicitud 80
vpc-lattice-svcs:RequestMethod Filtra el acceso por el método de la solicitud GET PUBLICAR siempre
vpc-lattice-svcs:RequestHeader/header-name: value Filtra el acceso por un par de nombre-valor de encabezado en los encabezados de la solicitud content-type: application/json
vpc-lattice-svcs:RequestQueryString/key-name: value Filtra el acceso por los pares de clave-valor de la cadena de consulta en la URL de la solicitud quux: [corge, grault] No
vpc-lattice-svcs:ServiceNetworkArn Filtra el acceso por el ARN de la red de servicios del servicio que recibe la solicitud arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0
vpc-lattice-svcs:ServiceArn Filtra el acceso por el ARN del servicio que recibe la solicitud arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0
vpc-lattice-svcs:SourceVpc Filtra el acceso por la VPC desde la que se realiza la solicitud vpc-1a2b3c4d
vpc-lattice-svcs:SourceVpcOwnerAccount Filtra el acceso por la cuenta propietaria de la VPC desde la que se realiza la solicitud 123456789012

Entidades principales anónimas (no autenticadas)

Los directores anónimos son personas que llaman y no firman sus AWS solicitudes con la versión 4 de la firma (SigV4) y se encuentran dentro de una VPC que está conectada a la red de servicio. Las entidades principales anónimas pueden realizar solicitudes no autenticadas a los servicios de la red de servicios si una política de autenticación así lo permite.

Ejemplo de políticas de autenticación

Los siguientes son ejemplos de políticas de autenticación que requieren que las solicitudes las realicen las entidades principales autenticadas.

Todos los ejemplos utilizan la región us-west-2 y tienen ID de cuenta ficticios.

Ejemplo 1: restringir el acceso a los servicios por parte de una organización específica AWS

El siguiente ejemplo de política de autenticación concede permisos a cualquier solicitud autenticada para acceder a cualquier servicio de la red de servicios a la que se aplique la política. Sin embargo, la solicitud debe provenir de los directores que pertenezcan a la AWS organización especificada en la condición.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": [ "o-123456example" ] } } } ] }
Ejemplo 2: restringir el acceso a un servicio por un rol de IAM específico

El siguiente ejemplo de política de autenticación concede permisos a cualquier solicitud autenticada que utilice el rol de IAM rates-client para realizar solicitudes HTTP GET en el servicio especificado en el elemento Resource. El recurso del elemento Resource es el mismo que el servicio al que está asociada la política.

{ "Version":"2012-10-17", "Statement":[ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/rates-client" ] }, "Action": "vpc-lattice-svcs:Invoke", "Resource": [ "arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0/*" ], "Condition": { "StringEquals": { "vpc-lattice-svcs:RequestMethod": "GET" } } } ] }
Ejemplo 3: Restringir el acceso a los servicios por parte de las entidades principales autenticadas en una VPC específica

El siguiente ejemplo de política de autenticación solo permite solicitudes autenticadas de las entidades principales de la VPC cuyo ID de VPC sea vpc-1a2b3c4d.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": "vpc-lattice-svcs:Invoke", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalType": "Anonymous" }, "StringEquals": { "vpc-lattice-svcs:SourceVpc": "vpc-1a2b3c4d" } } } ] }

Cómo funciona la autorización

Cuando un servicio de VPC Lattice recibe una solicitud, el código de AWS cumplimiento evalúa todas las políticas de permisos relevantes en conjunto para determinar si se debe autorizar o denegar la solicitud. Evalúa todas las políticas basadas en identidad de IAM y las políticas de autenticación que se aplican en el contexto de la solicitud durante la autorización. De forma predeterminada, todas las solicitudes se deniegan de manera implícita si el tipo de autenticación es AWS_IAM. Un permiso explícito de todas las políticas relevantes anula el valor predeterminado.

La autorización incluye:

  • Recopilar todas las políticas basadas en identidad de IAM y las políticas de autenticación relevantes.

  • Evaluación del conjunto de políticas resultante:

    • Verificar que el solicitante (como un rol o usuario de IAM) cuente con los permisos para realizar la operación desde la cuenta a la que pertenece el solicitante. Si no hay una declaración de autorización explícita, AWS no autoriza la solicitud.

    • Verificar que la solicitud esté permitida por la política de autenticación de la red de servicios. Si una política de autenticación está habilitada, pero no hay una declaración de autorización explícita, AWS no autoriza la solicitud. Si hay una instrucción de autorización explícita o el tipo de autenticación es NONE, el código continúa.

    • Verificar que la solicitud esté permitida por la política de autenticación del servicio. Si una política de autenticación está habilitada, pero no hay una declaración de autorización explícita, AWS no autoriza la solicitud. Si hay una instrucción de autorización explícita o si el tipo de autenticación es NONE, entonces el código de aplicación devuelve una decisión final de Permitir.

    • Una denegación explícita en cualquier política invalida cualquier permiso concedido.

En el diagrama se muestra el flujo de trabajo de la autorización. Cuando se realiza una solicitud, las políticas relevantes permiten o deniegan el acceso de la solicitud a un servicio determinado.

Flujo de trabajo de la autorización