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.
Acceda a Amazon Cognito mediante un punto final de interfaz (AWS PrivateLink)
Puede utilizarlos AWS PrivateLink para crear una conexión privada entre su VPC y Amazon Cognito. Puede acceder a Amazon Cognito como si estuviera en su VPC, sin necesidad de utilizar una puerta de enlace a Internet, un dispositivo NAT, una conexión VPN o una conexión. Direct Connect Las instancias de su VPC no necesitan direcciones IP públicas para acceder a Amazon Cognito.
Esta conexión privada se establece mediante la creación de un punto de conexión de interfaz alimentado por AWS PrivateLink. Creamos una interfaz de red de punto de conexión en cada subred habilitada para el punto de conexión de interfaz. Se trata de interfaces de red administradas por el solicitante que sirven como punto de entrada para el tráfico destinado a Amazon Cognito.
Para obtener más información, consulte Acceso a los Servicios de AWS a través de AWS PrivateLink en la Guía de AWS PrivateLink .
importante
Actualmente, no se admiten los siguientes tipos de autenticación a través de: AWS PrivateLink
-
Autorización de máquina a máquina (M2M) con el flujo de credenciales de cliente de OAuth 2.0
-
Sign-in con inicio de sesión gestionado y la clásica interfaz de usuario alojada.
Temas
Flujos de autenticación para AWS PrivateLink integración
En la siguiente tabla se describen los flujos de autenticación disponibles para los clientes en las VPC y las políticas de IAM que puede aplicar para controlarlos. Las políticas que puede evaluar en las solicitudes a los grupos de usuarios son las políticas de control de recursos (RCP), las políticas de punto final de la VPC y las políticas basadas en la identidad.
| Recurso | Flujo de autenticación | Las políticas se evalúan cuando el cliente transita por un punto final de la VPC | Las políticas se evalúan cuando el origen del cliente es público |
|---|---|---|---|
| Grupo de usuarios | Inicio de sesión gestionado e inicio de sesión en la interfaz de usuario alojada clásica | Ninguno (sin acceso) 1 | Ninguno 2 |
| Grupo de usuarios | Machine-to-machine authorization | Ninguno (sin acceso) 1 | Ninguno 2 |
| Grupo de usuarios | Solicitudes no autenticadas de SDK y REST API | Políticas de puntos finales de RCP y VPC 3 | RCP |
| Grupo de usuarios | Solicitudes autenticadas de SigV4 con SDK y REST API | RCP, políticas de punto final de VPC, políticas basadas en la identidad 3 | RCP, políticas basadas en la identidad |
| Grupo de identidades | Solicitudes no autenticadas de SDK y REST API (flujos básicos y mejorados) El flujo de autenticación básico (clásico) El flujo de autenticación mejorado (simplificado) | Políticas de puntos finales de VPC y RCP | RCP |
| Grupo de identidades | Solicitudes autenticadas de SigV4 con SDK y REST API (flujo autenticado por el desarrollador) El flujo de autenticación autenticado por el desarrollador | RCP, políticas basadas en la identidad | RCP, políticas basadas en la identidad |
1. Los puntos de enlace de la VPC no aceptan solicitudes de dominios de grupos de usuarios. Si el cliente tiene una ruta a Internet, se aplica la NAT, lo que hace público el origen.
2 La existencia de un dominio de grupo de usuarios impide completar cualquier solicitud de grupo de usuarios que atraviese un punto final de la VPC. Cualquier cliente solo puede tomar rutas de transporte público hasta el dominio del grupo de usuarios y los puntos finales del servicio de API, lo que hace que el punto final de la VPC quede inutilizable para el grupo de usuarios. Los grupos de usuarios con dominios asignados son incompatibles con. AWS PrivateLink
3 El grupo de usuarios no debe tener un dominio asignado.
Modos operativos para AWS PrivateLink
Los siguientes modelos de implementación de ejemplo son compatibles con Amazon Cognito AWS PrivateLink y Amazon Cognito.
| Recurso | Implementación | Acciones |
|---|---|---|
| Grupo de usuarios | Aplicación de API REST o SDK totalmente privada |
|
| Grupo de usuarios | Pública y privada |
|
| Grupo de usuarios | Servidor de autorización de OAuth 2.0 privado o público |
|
| Grupo de identidades | Totalmente privado |
|
| Grupo de identidades | Pública y privada |
|
Consideraciones para Amazon Cognito
Antes de configurar un punto final de interfaz para Amazon Cognito, consulte las consideraciones de la AWS PrivateLink guía. Amazon Cognito permite realizar llamadas a todas las acciones de la API de Amazon Cognito a través del punto de enlace de la interfaz. Para obtener más información sobre estas operaciones, consulte la referencia de la API de grupos de usuarios de Amazon Cognito y la referencia de la API de identidades federadas de Amazon Cognito.
Grupos de usuarios y AWS PrivateLink
Puede realizar solicitudes a todas las operaciones de API de los grupos de usuarios a través del punto final de la interfaz, pero no a las operaciones que su aplicación solicite al servidor de autorización de OAuth 2.0 del grupo de usuarios, por ejemplo, la concesión de credenciales de cliente y el inicio de sesión administrado.
La API cognito-idp de grupos de usuarios tiene operaciones de API no autenticadas, autenticadas y autorizadas mediante tokens. Puedes conceder permisos para las operaciones autenticadas en las políticas de control de recursos y puntos finales de la VPC. También puedes conceder permisos para operaciones no autenticadas y autorizadas mediante tokens, a diferencia de lo que ocurre en las políticas basadas en la identidad. Los tipos de políticas de control de recursos y puntos finales de la VPC pueden evaluar y denegar o permitir solicitudes de operaciones que de otro modo serían públicas.
Las solicitudes a los puntos finales de dominio también son públicas, pero no se pueden evaluar en las políticas. El DNS privado de la VPC no redirige las solicitudes de dominios de grupos de usuarios a tu punto de enlace de la VPC. Solo puedes solicitar servicios de dominio a través de rutas públicas de Internet. Para obtener más información, consulte Efectos de las políticas en las operaciones del grupo de usuarios.
Operaciones admitidas
Los sistemas de una VPC pueden enviar solicitudes a las acciones de la API del grupo de usuarios, pero no a los puntos finales del dominio del grupo de usuarios. No se puede acceder a los flujos de trabajo de OpenID Connect (OIDC) y OAuth 2.0 que utilizan puntos finales de dominio, como máquina a máquina (M2M), el inicio de sesión Inicio de sesión en el grupo de usuarios con proveedores de identidad externos federado y la concesión de códigos de autorización, a través de los puntos de enlace de la VPC. El punto de conexión de redireccionamiento y autorización Las políticas de punto final de la VPC no afectan a estos flujos de trabajo HTTP y no pueden procesarlos. Las solicitudes a los puntos de enlace de dominio desde una VPC siempre fallan en el punto final de la interfaz, pero siguen estando disponibles a través del DNS público y el enrutamiento cuando configuras los puntos de enlace de la VPC para tus grupos de usuarios.
Para evitar la asignación de dominios desde los sistemas de una VPC, Amazon Cognito bloquea CreateUserPoolDomain las solicitudes en el punto final de la interfaz. Esto evita que los sistemas que se encuentran en una VPC añadan dominios a sus grupos de usuarios. Para evitar que se añada un dominio a todos los sistemas, aplique una política de control de recursos (RCP) como la del ejemplo siguiente a su. Cuenta de AWS Esta política bloquea la CreateUserPoolDomain acción contra el grupo de usuarios especificado.
{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Effect": "Deny", "Action": [ "cognito-idp:CreateUserPoolDomain" ], "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" } ] }
Es posible que su grupo de usuarios tenga un dominio y, en todos los casos, ese dominio no esté disponible AWS PrivateLink. Todas las solicitudes de API SDK-based del grupo de usuarios dirigidas a los puntos finales de cognito-idp servicio aceptan solicitudes a través de AWS PrivateLink ellas, con la excepción deCreateUserPoolDomain. Los puntos finales de los servicios de API del grupo de usuarios y los puntos finales de los dominios permanecen siempre accesibles a través de rutas públicas de Internet. Para abordar el acceso desde fuentes públicas, implemente las ACL AWS WAF web.
Efectos de las políticas en las operaciones del grupo de usuarios
Todas las operaciones de las API de los grupos de usuarios, incluso las que normalmente son públicas y no están autenticadas, se pueden controlar mediante las políticas de punto final de la VPC y las políticas de control de recursos (RCP). También puedes aplicar restricciones al acceso al grupo de usuarios en las políticas basadas en la identidad con las claves de condición de la VPC. Solo las solicitudes que incluyen información de autenticación en formato SigV4 se pueden controlar mediante políticas basadas en la identidad. El inicio de sesión administrado y las operaciones de interfaz de usuario alojada clásica son una categoría independiente y no son aptas para el tránsito por VPC ni para la aplicación de ningún tipo de política a sus acciones.
Operaciones no autenticadas
Las operaciones de Amazon Cognito para las aplicaciones del lado del cliente no se autentican con SIGv4. Los ejemplos de operaciones se encuentran en la política de ejemplo en. Creación de una política de puntos de conexión para el punto de conexión de interfaz Otros ejemplos de operaciones no autenticadas son GetUser y. AssociateSoftwareToken Cuando agregas estas operaciones a las políticas basadas en la identidad, no tienen ningún efecto. Sin embargo, puedes permitir o restringir el acceso a estas acciones en las políticas de punto final y los RCP de la VPC. Controlar el acceso con políticas de control de recursos
Las operaciones no autenticadas no están asociadas a un principal de IAM. La política de terminales o RCP de la VPC debe permitir que todos los principales realicen estas acciones.
Operaciones autenticadas
Las operaciones de la API para la administración de grupos de usuarios y la autenticación del lado del servidor se autentican con SIGv4. En el caso de las operaciones autenticadas, puede restringir los datos principales mediante políticas de punto final que aplique al punto de enlace de la VPC, políticas de control de recursos en su organización y políticas basadas en la identidad que aplique a los usuarios principales. Identity-based y las políticas de control de recursos incluyen claves de condición basadas en la red, como y. VPC-aware https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-network-properties aws:SourceVpc aws:SourceVpce
Para obtener más información sobre las clases de operaciones de API para grupos de usuarios del lado del servidor, del lado del cliente y administrativas, consulte. Modelos de autorización para la autenticación de API y SDK
Grupos de identidades y AWS PrivateLink
Los grupos de identidades de Amazon Cognito son compatibles con todas las operaciones de API. AWS PrivateLink
Temas
Operaciones admitidas
Todas las operaciones de API de los grupos de identidades se admiten a través del punto de conexión de la interfaz. Los grupos de identidades no tienen puntos finales de dominio y no están sujetos a las mismas limitaciones. Sin embargo, los grupos de identidades tienen consideraciones específicas para los controles de acceso basados en la red debido a su integración con. AWS STS
Limitaciones del contexto de red con AWS STS integración
Los grupos de identidades utilizan AWS STS AssumeRoleWithWebIdentity operaciones para proporcionar AWS credenciales temporales. Cuando los grupos de identidades AWS STS AWS PrivateLink acceden al flujo de autenticación mejorado, a las claves de contexto de red les gusta aws:SourceIp la infraestructura de servicios de los grupos de identidades y aws:SourceVpce contienen valores de la infraestructura de servicios de los grupos de identidades, no del contexto de red de la aplicación. aws:SourceVpc
Si sus políticas de confianza de roles o políticas de control de recursos (RCP) de IAM utilizan claves de condición basadas en la red para restringir el acceso, es posible que las operaciones de los grupos de identidades se rechacen inesperadamente. Para abordar esta limitación, puedes usar uno de los siguientes enfoques:
Etiquetas principales para la identificación del servicio
Etiquete las funciones de IAM utilizadas en los grupos de identidades y modifique sus políticas para permitir las operaciones cuando el principal tenga la etiqueta adecuada. En primer lugar, agrega una etiqueta a tu rol en el grupo de identidades:
aws iam tag-role \ -\-role-nameMyIdentityPoolRole\ -\-tags Key=CognitoServiceCall,Value=true
A continuación, modifique las políticas basadas en la red para permitir etiquetar a los principales. Por ejemplo, en un RCP:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": "*", "Action": "sts:AssumeRoleWithWebIdentity", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": ["allowed-ip-ranges"] }, "StringNotEqualsIfExists": { "aws:ResourceTag/CognitoServiceCall": "true" } } } ] }
Service-specific claves de contexto
Los grupos de identidades proporcionan claves de contexto específicas de los servicios para la autorización a nivel de recursos en las políticas de punto final de la VPC y los RCP. Con estas claves de contexto, puede habilitar un control de acceso detallado y distinguir entre usuarios autenticados y no autenticados en las políticas.
Las claves de contexto específicas del servicio disponibles para operaciones que no son de SIGv4, como GetId, GetCredentialsForIdentity, GetOpenIdToken, UnlinkIdentity
-
cognito-identity-unauth:IdentityPoolArn- Filtra el acceso por el ARN del grupo de identidades para usuarios no autenticados -
cognito-identity-unauth:AccountId- Filtra el acceso por Cuenta de AWS ID para usuarios no autenticados -
cognito-identity-auth:IdentityPoolArn- Filtra el acceso por el ARN del grupo de identidades para los usuarios autenticados -
cognito-identity-auth:AccountId- Filtra el acceso por Cuenta de AWS ID para los usuarios autenticados
Las claves de contexto específicas del servicio disponibles para operaciones de SigV4, como DeleteIdentities and DescribeIdentity
-
cognito-identity:IdentityPoolArn- Filtra el acceso por el ARN del grupo de identidades
Puede usar estas claves de contexto en las políticas de punto final de la VPC para restringir el acceso en función del estado de autenticación, como se muestra en el siguiente ejemplo:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "cognito-identity:GetId", "cognito-identity:GetCredentialsForIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "cognito-identity-unauth:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }
Controlar el acceso con políticas de control de recursos
Amazon Cognito permite controlar el acceso a los recursos mediante políticas de control de recursos (RCP). Con las claves de condición basadas en la red, los RCP pueden definir las redes y las acciones que permiten AWS PrivateLink acceder a sus grupos de usuarios y grupos de identidades. Las Action instrucciones de los RCP pueden controlar el acceso a las operaciones de la API del grupo de usuarios autenticados y no autenticados.
Por ejemplo, el siguiente ejemplo de política impide el acceso a todos los grupos de usuarios desde una VPC específica.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCognitoAccessOutsideVPC", "Effect": "Deny", "Principal": "*", "Action": "cognito-idp:*", "Resource": "*", "Condition": { "StringNotEqualsIfExists": { "aws:SourceVpc": "vpc-02d6770f46ef1653b" } } } ] }
Cree un punto final de interfaz para Amazon Cognito
Puede crear un punto de enlace de interfaz para Amazon Cognito mediante la consola de Amazon VPC o el AWS Command Line Interface ().AWS CLI Para obtener más información, consulte Creación de un punto de conexión de interfaz en la Guía de AWS PrivateLink .
Cree un punto de enlace de interfaz para los grupos de usuarios de Amazon Cognito con el siguiente nombre de servicio:
com.amazonaws.region.cognito-idp
Cree un punto de enlace de interfaz para los grupos de identidades de Amazon Cognito con el siguiente nombre de servicio:
com.amazonaws.region.cognito-identity
Si habilita el DNS privado para el punto final de la interfaz, puede realizar solicitudes de API a Amazon Cognito con su nombre de DNS regional predeterminado. Por ejemplo, cognito-idp.us-east-1.amazonaws.com para grupos de usuarios y grupos cognito-identity.us-east-1.amazonaws.com de identidades.
Creación de una política de puntos de conexión para el punto de conexión de interfaz
Una política de punto de conexión es un recurso de IAM que puede adjuntar al punto de conexión de su interfaz. La política de terminales predeterminada permite el acceso total a Amazon Cognito a través del punto de conexión de la interfaz. Para controlar el acceso permitido a Amazon Cognito desde su VPC, adjunte una política de puntos de conexión personalizada al punto de enlace de la interfaz.
Una política de punto de conexión especifica la siguiente información:
-
Las entidades principales que pueden llevar a cabo acciones (Cuentas de AWS, usuarios de IAM y roles de IAM).
-
Las acciones que se pueden realizar.
-
El recurso en el que se pueden realizar las acciones.
-
Las condiciones que deben cumplirse antes de que se permita o rechace la solicitud.
Para obtener más información, consulte Control del acceso a los servicios con políticas de punto de conexión en la Guía del usuario de AWS PrivateLink .
Ejemplo: política de puntos finales de la VPC para las acciones del grupo de usuarios
El siguiente es un ejemplo de una política de terminales personalizada para grupos de usuarios. Al adjuntar esta política al punto final de la interfaz, otorga acceso a las acciones del grupo de usuarios enumeradas a todos los principales de todos los recursos.
{ "Version": "2012-10-17", "Statement": [ { "Principal": { "AWS": "arn:aws:iam::123456789012:assumed-role/MyWebAppRole/MyWebAppSession" }, "Effect": "Allow", "Action": [ "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword" ], "Resource":"arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" }, { "Effect": "Allow", "Action": [ "cognito-idp:InitiateAuth", "cognito-idp:RespondToAuthChallenge", "cognito-idp:ForgotPassword", "cognito-idp:ConfirmForgotPassword" ], "Resource":"arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE" } ] }
Ejemplo: política de puntos de conexión de la VPC para las acciones del grupo de identidades
El siguiente es un ejemplo de una política de puntos finales personalizada para los grupos de identidades. Esta política usa claves de contexto específicas del servicio para restringir el acceso a los usuarios autenticados de un grupo de identidades específico.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": "*", "Action": [ "cognito-identity:GetId", "cognito-identity:GetCredentialsForIdentity", "cognito-identity:GetOpenIdToken" ], "Resource": "*", "Condition": { "StringEquals": { "cognito-identity-auth:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }
Cree una política basada en la identidad para AWS PrivateLink operaciones
Identity-basedlas políticas son recursos de IAM que puede adjuntar a los directores. AWS Puede controlar el acceso a Amazon Cognito a través de los puntos de enlace de la VPC con políticas de operaciones basadas en la identidad. IAM-authenticated A diferencia de las políticas de punto final, no puede configurar los permisos para las operaciones no autenticadas en las políticas basadas en la identidad. Las operaciones autenticadas o administrativas requieren la autorización de Signature Version 4. En el caso de los grupos de usuarios, las operaciones de autenticación incluyen las solicitudes de autenticación del lado del servidor AdminInitiateAuth y las solicitudes administrativas, como las solicitudes administrativas. UpdateUserPool En el caso de los grupos de identidades, las operaciones autenticadas incluyen solicitudes administrativas como y. DeleteIdentities DescribeIdentity
Una política basada en la identidad especifica la siguiente información:
-
Las acciones que se pueden realizar.
-
El recurso en el que se pueden realizar las acciones.
-
Las condiciones que deben cumplirse antes de que se permita o rechace la solicitud.
Ejemplo: política basada en la identidad para la autenticación del lado del servidor de grupos de usuarios
El siguiente ejemplo de política otorga acceso a las acciones del grupo de usuarios enumeradas en el grupo de usuarios especificado, desde el punto final especificado. Aplica esta política a la función de IAM asumida para tu aplicación web.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-idp:AdminInitiateAuth", "cognito-idp:AdminRespondToAuthChallenge", "cognito-idp:AdminSetUserPassword" ], "Resource": "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_EXAMPLE", "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } } ] }
Ejemplo: política basada en la identidad para las operaciones administrativas de un grupo de identidades
El siguiente ejemplo de política otorga acceso a las acciones administrativas del grupo de identidades desde el punto final de la VPC especificado. Aplica esta política al director de IAM que necesita administrar el grupo de identidades.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cognito-identity:DeleteIdentities", "cognito-identity:DescribeIdentity" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" }, "StringEquals": { "cognito-identity:IdentityPoolArn": "arn:aws:cognito-identity:us-east-1:123456789012:identitypool/us-east-1:12345678-ffff-ffff-ffff-123456" } } } ] }