Controle el acceso a los servicios de Lattice mediante políticas de autenticación VPC - 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 Lattice mediante políticas de autenticación VPC

VPCLas políticas de autenticación de Lattice son documentos de IAM política que se adjuntan a las redes o servicios de servicio para controlar si un responsable específico 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 son diferentes de las políticas basadas en la IAM identidad. IAMLas políticas basadas en la identidad se asocian a IAM los usuarios, grupos o roles y definen qué acciones pueden realizar esas identidades 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 utilizar el AWS CLI y una consola para ver, añadir, actualizar o eliminar las políticas de autenticación en los servicios y las redes de servicios. Al utilizar la AWS CLI, recuerde que sus comandos se ejecutan en Región de AWS configurado para su 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.

Los siguientes ejemplos de AWS CLI las tareas 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 usar el AWS CLI a:

  • Habilite el control de acceso en una red de servicio medianteIAM.

  • 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

    Se utiliza para crear una definición de políticaJSON. 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

    Se utiliza 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.

Los siguientes ejemplos de AWS CLI las 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 usar el AWS CLI a:

  • Habilite el control de acceso en un servicio medianteIAM.

  • 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

    Se utiliza 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

    Se utiliza 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 SIGv4solicitudes autenticadas para Amazon Lattice VPC.

Elementos comunes de una política de autenticación

VPCLas políticas de autenticación de Lattice se especifican con la misma IAM sintaxis que las políticas. Para obtener más información, consulte las políticas basadas en la identidad y las políticas basadas en recursos en la Guía del usuario. 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, el principal es la IAM entidad que recibe este permiso. El principal se autentica como IAM entidad para realizar solicitudes a un recurso específico o a un grupo de recursos, 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 AWS JSONelementos de política: principales de la Guía IAM del usuario.

  • 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 en un servicio o red de servicios medianteIAM, los directores no tienen permisos para realizar solicitudes al servicio o a la red de servicios.

  • Acciones: la API acción específica para la que se concede o deniega el permiso. VPCLattice admite las acciones que utilizan el vpc-lattice-svcs prefijo. Para obtener más información, consulte 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 las claves de condición de Amazon VPC Lattice Services en la Referencia de autorización de servicio.

Al crear y administrar políticas de autenticación, es posible que desee utilizar el generador de IAMpolíticas.

Requisito

La política no JSON 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.

Protocolo Ejemplos
HTTP
  • "Resource": "arn:aws:vpc-lattice:us-west-2:1234567890:service/svc-0123456789abcdef0/rates"

  • "Resource": "*/rates"

  • "Resource": "*/*"

g RPC
  • "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 recurso Amazon Resource Name (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 utilizar para controlar el acceso, como aws:PrincipalOrgID yaws:SourceIp. Para ver una lista de AWS claves de condición globales, consulte AWS claves de contexto de condiciones globales en la Guía IAM del usuario.

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

Claves de condición Descripción Ejemplo Disponibilidad para usuarios anónimos (no autenticados) ¿Disponible para g? RPC
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 ¿Siempre POST
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 clave-valor de la cadena de consulta de la solicitud URL quux: [corge, grault] No
vpc-lattice-svcs:ServiceNetworkArn Filtra el acceso por parte ARN de la red de servicio del servicio que recibe la solicitud arn:aws:vpc-lattice:us-west-2:123456789012:servicenetwork/sn-0123456789abcdef0
vpc-lattice-svcs:ServiceArn Filtra el ARN acceso según el servicio que recibe la solicitud arn:aws:vpc-lattice:us-west-2:123456789012:service/svc-0123456789abcdef0
vpc-lattice-svcs:SourceVpc Filtra el acceso según el lugar desde VPC el que se realiza la solicitud vpc-1a2b3c4d
vpc-lattice-svcs:SourceVpcOwnerAccount Filtra el acceso por la cuenta propietaria de VPC la que procede 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 Signature (SigV4) y se encuentran dentro de una red 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 us-west-2 región y contienen una cuenta ficticia. IDs

Ejemplo 1: Restringir el acceso a los servicios a una persona específica AWS organización

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 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 a un IAM rol específico

El siguiente ejemplo de política de autenticación concede permisos a cualquier solicitud autenticada que utilice el IAM rol rates-client para realizar HTTP GET solicitudes en el servicio especificado en el Resource elemento. 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 los directores autenticados en un entorno específico VPC

El siguiente ejemplo de política de autenticación solo permite las solicitudes autenticadas de los principales cuyo identificador sea. VPC VPC 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 AWS el código de 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 IAM basadas en la identidad 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:

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

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

    • Verificar que el solicitante (por ejemplo, un IAM usuario o un rol) tiene 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 hay una política de autenticación 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 hay una política de autenticación 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