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 usarlo 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 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: AWS PrivateLink
-
Autorización de máquina a máquina (M2M) con el flujo de credenciales de cliente OAuth 2.0
-
Inicie sesión con un inicio de sesión gestionado y la clásica interfaz de usuario alojada.
Temas
Flujos de autenticación para la integración AWS PrivateLink
En la siguiente tabla se describen los flujos de autenticación disponibles para los VPCs clientes y las políticas de IAM que puede aplicar para gobernarlos. Las políticas que puede evaluar en las solicitudes a los grupos de usuarios son las políticas de control de recursos (RCPs), las políticas de puntos finales de VPC y las políticas basadas en la identidad.
| Recurso | Flujo de autenticación | Políticas evaluadas cuando el cliente transita por un punto final de 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 clásico en la interfaz de usuario alojada | Ninguno (sin acceso) 1 | Ninguna 2 |
| Grupo de usuarios | Machine-to-machine authorization | Ninguno (sin acceso) 1 | Ninguna 2 |
| Grupo de usuarios | Solicitudes no autenticadas del SDK y la API REST | RCPs, políticas de puntos finales de VPC 3 | RCPs |
| Grupo de usuarios | Solicitudes autenticadas SigV4 de SDK y API REST | RCPs, políticas de puntos finales de VPC, políticas basadas en la identidad 3 | RCPs, políticas basadas en la identidad |
| Grupo de identidades | Solicitudes no autenticadas del SDK y la API REST (flujos básicos y mejorados) | RCPs, políticas de puntos finales de VPC | RCPs |
| Grupo de identidades | Solicitudes autenticadas SigV4 de SDK y API REST (flujo autenticado por el desarrollador) | RCPs, políticas basadas en la identidad | RCPs, políticas basadas en la identidad |
1 Los puntos finales de 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 que el origen sea público.
2 La existencia de un dominio de grupo de usuarios impide completar cualquier solicitud de grupo de usuarios que transite por un punto final de VPC. Cualquier cliente puede tomar rutas de transporte público solo 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 no pueda utilizarse 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 AWS PrivateLink 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 OAuth autorización 2.0 privado o público |
|
| Grupo de identidades | Totalmente privado |
|
| Grupo de identidades | Pública y privada |
|
Consideraciones sobre 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.
AWS PrivateLink para Amazon Cognito solo está disponible en regiones comerciales AWS .
Grupos de usuarios y AWS PrivateLink
Puede realizar solicitudes a todas las operaciones de la 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 del grupo de usuarios OAuth 2.0 (por ejemplo, las credenciales de cliente, las concesiones y el inicio de sesión gestionado).
La API cognito-idp de grupos de usuarios tiene operaciones de API no autenticadas, autenticadas y autorizadas por token. Puedes conceder permisos para 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 por token, a diferencia de lo que ocurre con las políticas basadas en la identidad. Los tipos de políticas de punto final y control de recursos de VPC pueden evaluar y denegar o permitir solicitudes de operaciones que de otro modo serían públicas.
Las solicitudes a los puntos de enlace del dominio también son públicas, pero no se pueden evaluar en las políticas. El DNS privado de VPC no enruta las solicitudes de dominios de grupos de usuarios a su punto final de VPC. Solo puedes realizar solicitudes de servicios de dominio a través de rutas de Internet públicas. 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. Los flujos de trabajo de OpenID Connect (OIDC) y OAuth 2.0 que utilizan puntos de enlace de dominio, por ejemplo machine-to-machine(M2M), inicio de sesión federado y concesiones de códigos de autorización, son inaccesibles a través de los puntos de enlace de VPC. Las políticas de punto final de 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 de enlace de la interfaz, pero siguen estando disponibles a través del DNS público y el enrutamiento al configurar los puntos de enlace de la VPC para sus grupos de usuarios.
Para evitar la asignación de dominios desde los sistemas de una VPC, Amazon Cognito CreateUserPoolDomain bloquea las solicitudes en el punto final de la interfaz. Esto evita que se agreguen dominios a sus grupos de usuarios desde sistemas que se encuentran en una VPC. Para evitar que se añada un dominio de todos los sistemas, aplique a su sistema una política de control de recursos (RCP) como la que se muestra en el siguiente ejemplo. 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 estará disponible a través de él AWS PrivateLink. Todas las solicitudes de API de grupos de usuarios basadas en el SDK a los puntos finales de cognito-idp servicio aceptan solicitudes directas AWS PrivateLink, con la excepción de. CreateUserPoolDomain Los puntos finales del servicio de API del grupo de usuarios y los puntos finales del dominio permanecen siempre accesibles a través de rutas públicas de Internet. Para abordar el acceso desde fuentes públicas, implemente la web.AWS WAF
ACLs
Efectos de las políticas en las operaciones del grupo de usuarios
Todas las operaciones de la API del grupo de usuarios, incluso las que suelen ser públicas y no autenticadas, se pueden controlar mediante políticas de puntos finales de VPC y políticas de control de recursos (). RCPs También puedes aplicar restricciones al acceso al grupo de usuarios en políticas basadas en identidad con claves de condición de VPC. En las políticas basadas en la identidad, solo las solicitudes que incluyen información de autenticación en formato SigV4 se pueden controlar. El inicio de sesión gestionado y las operaciones clásicas de interfaz de usuario alojada son una categoría independiente y no son aptas para el tránsito de 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. Las operaciones de ejemplo 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 agrega estas operaciones a las políticas basadas en la identidad, no tienen ningún efecto. Sin embargo, puede permitir o restringir el acceso a estas acciones en las políticas de puntos finales de la VPC y. RCPs
Las operaciones no autenticadas no están asociadas a una entidad principal de IAM. Su política de puntos finales de VPC o RCP debe permitir que todos los principales realicen estas acciones.
Operaciones autenticadas
Las operaciones de la API para la administración del grupo de usuarios y la autenticación del lado del servidor se autentican con SigV4. Para las operaciones autenticadas, puede restringir los principales con políticas de punto final que aplique al punto final de la VPC, políticas de control de recursos en su organización y políticas basadas en identidad que aplique a los principales. Las políticas de control de recursos y basadas en la identidad son compatibles con la VPC con claves de condición basadas en la red, como y. aws:SourceVpc aws:SourceVpce
Para obtener más información sobre las clases de operaciones de API del lado del servidor, del lado del cliente y administrativas para los grupos de usuarios, 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 admiten todas las operaciones de la API de principio a fin. AWS PrivateLink
Temas
Operaciones admitidas
Todas las operaciones de la API de los grupos de identidades se admiten a través del punto final de la interfaz. Los grupos de identidades no tienen puntos de enlace 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 la integración
Los grupos de identidades utilizan AWS STS AssumeRoleWithWebIdentity operaciones para proporcionar AWS credenciales temporales. Cuando los grupos de identidades AWS STS intervienen AWS PrivateLink en el flujo de autenticación mejorada, las claves de contexto de redaws:SourceIp, comoaws:SourceVpc, y aws:SourceVpce contienen valores de la infraestructura de servicios de los grupos de identidades, no del contexto de red de la aplicación.
Si su función de IAM, las políticas de confianza o las políticas de control de recursos (RCPs) utilizan claves de condición basadas en la red para restringir el acceso, es posible que las operaciones de los grupos de identidades se denieguen inesperadamente. Para abordar esta limitación, puede utilizar uno de los siguientes enfoques:
Etiquetas principales para la identificación del servicio
Etiquete las funciones de IAM que se utilizan en los grupos de identidades y modifique sus políticas para permitir las operaciones cuando el principal tenga la etiqueta adecuada. En primer lugar, añada una etiqueta a su rol de 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" } } } ] }
Claves de contexto específicas del servicio
Los grupos de identidades proporcionan claves de contexto específicas del servicio para la autorización a nivel de recursos en las políticas de puntos finales de la VPC y. RCPs Con estas claves de contexto, puede habilitar un control de acceso detallado y distinguir entre usuarios autenticados y no autenticados en las políticas.
Claves de contexto específicas del servicio disponibles para operaciones que no son de SIGv4, como,, GetIdGetCredentialsForIdentityGetOpenIdTokenUnlinkIdentity
-
cognito-identity-unauth:IdentityPoolArn- Filtra el acceso por el ARN del grupo de identidades para los usuarios no autenticados -
cognito-identity-unauth:AccountId- Filtra el acceso por Cuenta de AWS ID para los 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 el Cuenta de AWS ID de los usuarios autenticados
Claves de contexto específicas del servicio disponibles para operaciones de SigV4, como y DeleteIdentitiesDescribeIdentity
-
cognito-identity:IdentityPoolArn- Filtra el acceso por el ARN del grupo de identidades
Puedes usar estas claves de contexto en las políticas de puntos finales de la VPC para restringir el acceso en función del estado de la 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 sus recursos con políticas de control de recursos ()RCPs. Con las claves de condición basadas en la red, RCPs puede definir las redes y las acciones que están permitidas para AWS PrivateLink acceder a sus grupos de usuarios y grupos de identidades. Las Action instrucciones incluidas en el documento RCPs pueden controlar el acceso a las operaciones de API de grupos de usuarios autenticados y no autenticados.
Por ejemplo, la siguiente política de ejemplo 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 final 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 final de interfaz para los grupos de usuarios de Amazon Cognito con el siguiente nombre de servicio:
com.amazonaws.region.cognito-idp
Cree un punto final 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 puntos de conexión predeterminada permite el acceso total a Amazon Cognito a través del punto de enlace de la interfaz. Para controlar el acceso permitido a Amazon Cognito desde su VPC, adjunte una política de punto 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 permitir o denegar 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 VPC para acciones de grupos de usuarios
El siguiente es un ejemplo de una política de puntos finales personalizada para grupos de usuarios. Al adjuntar esta política al punto final de la interfaz, concede 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 finales de VPC para acciones de grupos de identidades
El siguiente es un ejemplo de una política de puntos finales personalizada para grupos de identidades. Esta política utiliza 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 de operaciones basada en la identidad AWS PrivateLink
Las políticas basadas en la identidad son recursos de IAM que puede adjuntar a los directores. AWS Puede controlar el acceso a Amazon Cognito a través de puntos de enlace de VPC con políticas basadas en la identidad para las operaciones autenticadas por IAM. A diferencia de las políticas de puntos finales, en las políticas basadas en la identidad no se pueden configurar los permisos para las operaciones no autenticadas. Las operaciones autenticadas o administrativas requieren la autorización de la versión 4 firmada. En el caso de los grupos de usuarios, las operaciones autenticadas incluyen tanto las solicitudes de autenticación del lado del servidor como las solicitudes AdminInitiateAuthadministrativas. UpdateUserPool En el caso de los grupos de identidades, las operaciones autenticadas incluyen solicitudes administrativas como y. DeleteIdentitiesDescribeIdentity
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 permitir o denegar la solicitud.
Ejemplo: política basada en la identidad para la autenticación de grupos de usuarios en el servidor
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. Aplique esta política a la función de IAM asumida para su 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 del grupo de identidades
El siguiente ejemplo de política otorga acceso a las acciones administrativas del grupo de identidades desde el punto de enlace de VPC especificado. Aplique esta política al director de IAM que debe 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" } } } ] }