cognito-identity:update-identity-pool

En el contexto de la seguridad de la identidad y el acceso en aplicaciones alojadas en AWS, la capacidad para modificar pools de identidad a través del permiso cognito-identity:update-identity-pool es un vector de ataque potencialmente significativo. Este permiso permite a un atacante configurar un pool de identidad para utilizar un proveedor de identidades de su elección, lo cual puede ser manipulado para obtener acceso no autorizado a recursos protegidos.

Modificación de un Pool de Identidad con AWS CLI

Configuración de Proveedores de Identidades

La flexibilidad de AWS Cognito para integrarse con diversos proveedores de identidad es una de sus características más poderosas. Mediante el siguiente comando CLI, un administrador puede actualizar la configuración de un pool de identidad para especificar un nuevo proveedor de identidades, como un User Pool de Cognito o cualquier otro proveedor compatible:

aws cognito-identity update-identity-pool \
    --identity-pool-id <value> \
    --identity-pool-name <value> \
    [--allow-unauthenticated-identities | --no-allow-unauthenticated-identities] \
    --cognito-identity-providers ProviderName=user-pool-id,ClientId=client-id,ServerSideTokenCheck=false

Este comando actualiza un pool de identidad existente especificando:

  • --identity-pool-id: El identificador único del pool de identidad que se desea modificar.

  • --identity-pool-name: El nombre del pool de identidad.

  • --allow-unauthenticated-identities o --no-allow-unauthenticated-identities: Indica si el pool de identidad permite identidades no autenticadas.

  • --cognito-identity-providers: Configura el proveedor de identidades especificando el User Pool de Cognito como proveedor, junto con el ID del cliente y la configuración de verificación de token del lado del servidor.

Este comando permite la incorporación de un proveedor de identidades específico al pool de identidad, configurando aspectos críticos como el consentimiento para identidades no autenticadas y el flujo de autenticación clásica.

Autenticación y Obtención de Credenciales

Una vez establecido el proveedor de identidades, el proceso para autenticarse y obtener credenciales IAM a través del pool de identidad actualizado sigue varios pasos:

  1. Autenticación en el Proveedor de Identidades: El usuario debe autenticarse primero en el proveedor de identidades configurado, lo cual resulta en la obtención de un token ID.

  2. Registro y Obtención de ID de Identidad: Utilizando el token ID, se puede solicitar un ID de identidad de Cognito, que asocia la sesión de usuario con un identificador único dentro del pool de identidad.

aws cognito-identity get-id \
    --identity-pool-id <id_pool_id> \
    --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>
  1. Obtención de Credenciales de AWS: Finalmente, con el ID de identidad, el usuario puede solicitar credenciales de AWS, permitiendo el acceso a recursos según el rol IAM configurado para usuarios autenticados en el pool de identidad.

aws cognito-identity get-credentials-for-identity \
    --identity-id <identity_id> \
    --logins cognito-idp.<region>.amazonaws.com/<YOUR_USER_POOL_ID>=<ID_TOKEN>

Habilitación de Autenticación Básica

Es posible también habilitar la autenticación básica y el flujo clásico al actualizar el pool de identidad, lo que amplía las posibilidades de autenticación:

aws cognito-identity update-identity-pool \
    --identity-pool-id <value> \
    --identity-pool-name <value> \
    --allow-unauthenticated-identities
    --allow-classic-flow

Última actualización

¿Te fue útil?