Cómo funciona Amazon Cognito con IAM - Amazon Cognito

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.

Cómo funciona Amazon Cognito con IAM

Antes de utilizar IAM para administrar el acceso a Amazon Cognito, obtenga información sobre qué características de IAM se pueden utilizar con Amazon Cognito.

Para obtener una visión general de cómo funcionan Amazon Cognito y otros AWS servicios con la mayoría de las funciones de IAM, consulte los AWS servicios que funcionan con IAM en la Guía del usuario de IAM.

Políticas de Amazon Cognito basadas en identidades

Compatibilidad con las políticas basadas en identidades

Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en identidad, consulte Creación de políticas de IAM en la Guía del usuario de IAM.

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. No es posible especificar la entidad principal en una política basada en identidad porque se aplica al usuario o rol al que está adjunto. Para más información sobre los elementos que puede utilizar en una política de JSON, consulte Referencia de los elementos de las políticas de JSON de IAM en la Guía del usuario de IAM.

Ejemplos de políticas basadas en identidades de Amazon Cognito

Para ver ejemplos de políticas basadas en identidad de Amazon Cognito, consulte Ejemplos de políticas basadas en identidades de Amazon Cognito.

Políticas basadas en recursos de Amazon Cognito

Compatibilidad con las políticas basadas en recursos

No

Las políticas basadas en recursos son documentos de política JSON que se asocian a un recurso. Ejemplos de políticas basadas en recursos son las políticas de confianza de roles de IAM y las políticas de bucket de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Para el recurso al que se asocia la política, la política define qué acciones puede realizar una entidad principal especificada en ese recurso y en qué condiciones. Debe especificar una entidad principal en una política en función de recursos. Los principales pueden incluir cuentas, usuarios, roles, usuarios federados o. Servicios de AWS

Para habilitar el acceso entre cuentas, puede especificar toda una cuenta o entidades de IAM de otra cuenta como la entidad principal de una política en función de recursos. Añadir a una política en función de recursos una entidad principal entre cuentas es solo una parte del establecimiento de una relación de confianza. Cuando el principal y el recurso son diferentes Cuentas de AWS, el administrador de IAM de la cuenta de confianza también debe conceder a la entidad principal (usuario o rol) permiso para acceder al recurso. Para conceder el permiso, adjunte la entidad a una política basada en identidad. Sin embargo, si la política en función de recursos concede el acceso a una entidad principal de la misma cuenta, no es necesaria una política basada en identidad adicional. Para más información, consulte Cómo los roles de IAM difieren de las políticas basadas en recursos en la Guía del usuario de IAM.

Acciones de política de Amazon Cognito

Admite acciones de políticas

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Action de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Las acciones políticas suelen tener el mismo nombre que la operación de AWS API asociada. Hay algunas excepciones, como acciones de solo permiso que no tienen una operación de API coincidente. También hay algunas operaciones que requieren varias acciones en una política. Estas acciones adicionales se denominan acciones dependientes.

Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.

Para ver una lista de las acciones de Amazon Cognito, consulte Acciones definidas por Amazon Cognito en la Referencia de autorizaciones de servicio.

En las acciones de políticas de Amazon Cognito, se utiliza el siguiente prefijo antes de la acción:

cognito-identity

Para especificar varias acciones en una única instrucción, sepárelas con comas.

"Action": [ "cognito-identity:action1", "cognito-identity:action2" ]

API firmadas y sin firmar

Al firmar las solicitudes de la API de Amazon Cognito con AWS credenciales, puede restringirlas mediante una política AWS Identity and Access Management (IAM). Las solicitudes de API con las que debe firmar las credenciales de AWS incluyen el inicio de sesión en el lado del servidor con AdminInitiateAuth y acciones que crean, ven o modifican recursos de Amazon Cognito, como UpdateUserPool. Para obtener más información sobre las solicitudes de API firmadas, consulte Firmar solicitudes de AWS API.

Dado que Amazon Cognito es un producto de identidad del consumidor para aplicaciones que desea poner a disposición del público, tiene acceso a las siguientes API sin firmar. La aplicación realiza estas solicitudes de API para los usuarios y los posibles usuarios. Algunas API no requieren autorización previa, como InitiateAuth para iniciar una nueva sesión de autenticación. Algunas API utilizan tokens de acceso o claves de sesión para la autorización, como VerifySoftwareToken para completar la configuración de MFA para un usuario que tiene una sesión autenticada existente. Una API de grupo de usuarios de Amazon Cognito no firmada y autorizada admite un parámetro Session o AccessToken en la sintaxis de la solicitud, tal como se muestra en la Referencia de la API de Amazon. Una API de identidad de Amazon Cognito no firmada admite un parámetro IdentityId tal y como se muestra en la Referencia de la API de identidades federadas de Amazon Cognito.

Para obtener más información acerca de los modelos de autorización y roles de las operaciones de la API de grupos de usuarios de Amazon Cognito, consulte Operaciones de API autenticadas y no autenticadas de los grupos de usuarios de Amazon Cognito.

Operaciones de la API de los grupos de identidades de Amazon Cognito
  • GetId

  • GetOpenIdToken

  • GetCredentialsForIdentity

  • UnlinkIdentity

Operaciones de la API de los grupos de usuarios de Amazon Cognito
  • AssociateSoftwareToken

  • ChangePassword

  • ConfirmDevice

  • ConfirmForgotPassword

  • ConfirmSignUp

  • DeleteUser

  • DeleteUserAttributes

  • ForgetDevice

  • ForgotPassword

  • GetDevice

  • GetUser

  • GetUserAttributeVerificationCode

  • GlobalSignOut

  • InitiateAuth

  • ListDevices

  • ResendConfirmationCode

  • RespondToAuthChallenge

  • RevokeToken

  • SetUserMFAPreference

  • SetUserSettings

  • SignUp

  • UpdateAuthEventFeedback

  • UpdateDeviceStatus

  • UpdateUserAttributes

  • VerifySoftwareToken

  • VerifyUserAttribute

Para ver ejemplos de políticas basadas en identidad de Amazon Cognito, consulte Ejemplos de políticas basadas en identidades de Amazon Cognito.

Recursos de políticas de Amazon Cognito

Admite recursos de políticas

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Resource de la política JSON especifica el objeto u objetos a los que se aplica la acción. Las instrucciones deben contener un elemento Resource o NotResource. Como práctica recomendada, especifique un recurso utilizando el Nombre de recurso de Amazon (ARN). Puede hacerlo para acciones que admitan un tipo de recurso específico, conocido como permisos de nivel de recurso.

Para las acciones que no admiten permisos de nivel de recurso, como las operaciones de descripción, utilice un carácter comodín (*) para indicar que la instrucción se aplica a todos los recursos.

"Resource": "*"

Nombres de recursos de Amazon (ARN)

ARN para las identidades federadas de Amazon Cognito

En los grupos de identidades de Amazon Cognito (identidades federadas), es posible restringir el acceso de un usuario de IAM a un grupo de identidades específico mediante el formato de nombre de recurso de Amazon (ARN), como se muestra en el ejemplo siguiente. Para obtener más información sobre los ARN, consulte Identificadores de IAM.

arn:aws:cognito-identity:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID

ARN para Amazon Cognito Sync

En Amazon Cognito Sync, los clientes también pueden restringir el acceso en función del ID del grupo de identidades, el ID de identidad y el nombre del conjunto de datos.

En el caso de las API que operan en un grupo de identidades, el formato ARN del grupo de identidades coincide con el de las identidades federadas de Amazon Cognito, salvo por el hecho de que el nombre del servicio es cognito-sync, y no cognito-identity:

arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID

En cuanto a las API que operan en una única identidad como, por ejemplo, RegisterDevice, puede consultar la identidad individual aplicando el formato de ARN siguiente:

arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID/identity/IDENTITY_ID

En el caso de las API que operan en conjuntos de datos como, por ejemplo, UpdateRecords y ListRecordspuede consultar el conjunto de datos individuales usando el siguiente formato de ARN:

arn:aws:cognito-sync:REGION:ACCOUNT_ID:identitypool/IDENTITY_POOL_ID/identity/IDENTITY_ID/dataset/DATASET_NAME

ARN para los grupos de usuarios de Amazon Cognito

En el caso de la característica Sus grupos de usuarios de Amazon Cognito, se puede restringir el acceso de un usuario a un grupo de usuarios específico mediante el formato de ARN siguiente:

arn:aws:cognito-idp:REGION:ACCOUNT_ID:userpool/USER_POOL_ID

Para ver una lista de los tipos de recursos de Amazon Cognito y los ARN, consulte Recursos definidos por Amazon Cognito en la Referencia de autorizaciones de servicio. Para obtener información sobre las acciones con las que puede especificar el ARN de cada recurso, consulte Acciones definidas por Amazon Cognito.

Para ver ejemplos de políticas basadas en identidad de Amazon Cognito, consulte Ejemplos de políticas basadas en identidades de Amazon Cognito.

Claves de condición de políticas de Amazon Cognito

Admite claves de condición de políticas específicas del servicio

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué entidad principal puede realizar acciones en qué recursos y en qué condiciones.

El elemento Condition (o bloque de Condition) permite especificar condiciones en las que entra en vigor una instrucción. El elemento Condition es opcional. Puede crear expresiones condicionales que utilicen operadores de condición, tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud.

Si especifica varios elementos de Condition en una instrucción o varias claves en un único elemento de Condition, AWS las evalúa mediante una operación lógica AND. Si especifica varios valores para una única clave de condición, AWS evalúa la condición mediante una OR operación lógica. Se deben cumplir todas las condiciones antes de que se concedan los permisos de la instrucción.

También puede utilizar variables de marcador de posición al especificar condiciones. Por ejemplo, puede conceder un permiso de usuario de IAM para acceder a un recurso solo si está etiquetado con su nombre de usuario de IAM. Para más información, consulte Elementos de la política de IAM: variables y etiquetas en la Guía del usuario de IAM.

AWS admite claves de condición globales y claves de condición específicas del servicio. Para ver todas 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.

Para ver una lista de las claves de condición de Amazon Cognito, consulte Claves de condición para Amazon Cognito en la Referencia de autorizaciones de servicio. Para obtener más información sobre las acciones y los recursos con los que puede utilizar una clave de condición, consulte Acciones definidas por Amazon Cognito.

Para ver ejemplos de políticas basadas en identidad de Amazon Cognito, consulte Ejemplos de políticas basadas en identidades de Amazon Cognito.

Listas de control de acceso (ACL) en Amazon Cognito

Admite las ACL

No

Las listas de control de acceso (ACL) controlan qué entidades principales (miembros de cuentas, usuarios o roles) tienen permisos para acceder a un recurso. Las ACL son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

Control de acceso basado en atributos (ABAC) con Amazon Cognito

Admite ABAC (etiquetas en las políticas)

Parcial

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos. En AWS, estos atributos se denominan etiquetas. Puede adjuntar etiquetas a las entidades de IAM (usuarios o roles) y a muchos AWS recursos. El etiquetado de entidades y recursos es el primer paso de ABAC. A continuación, designa las políticas de ABAC para permitir operaciones cuando la etiqueta de la entidad principal coincida con la etiqueta del recurso al que se intenta acceder.

ABAC es útil en entornos que crecen con rapidez y ayuda en situaciones en las que la administración de las políticas resulta engorrosa.

Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el elemento de condición de una política utilizando las claves de condición aws:ResourceTag/key-name, aws:RequestTag/key-name o aws:TagKeys.

Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es Parcial.

Para obtener más información sobre ABAC, consulte ¿Qué es ABAC? en la Guía del usuario de IAM. Para ver un tutorial con los pasos para configurar ABAC, consulte Uso del control de acceso basado en atributos (ABAC) en la Guía del usuario de IAM.

Uso de credenciales temporales con Amazon Cognito

Compatible con el uso de credenciales temporales

Algunas Servicios de AWS no funcionan cuando inicias sesión con credenciales temporales. Para obtener información adicional, incluidas las que Servicios de AWS funcionan con credenciales temporales, consulta Cómo Servicios de AWS funcionan con IAM en la Guía del usuario de IAM.

Utiliza credenciales temporales si inicia sesión en ellas AWS Management Console mediante cualquier método excepto un nombre de usuario y una contraseña. Por ejemplo, cuando accedes AWS mediante el enlace de inicio de sesión único (SSO) de tu empresa, ese proceso crea automáticamente credenciales temporales. También crea credenciales temporales de forma automática cuando inicia sesión en la consola como usuario y luego cambia de rol. Para más información sobre el cambio de roles, consulte Cambio a un rol (consola) en la Guía del usuario de IAM.

Puedes crear credenciales temporales manualmente mediante la AWS CLI API o. AWS A continuación, puede utilizar esas credenciales temporales para acceder AWS. AWS recomienda generar credenciales temporales de forma dinámica en lugar de utilizar claves de acceso a largo plazo. Para más información, consulte Credenciales de seguridad temporales en IAM.

Permisos de entidades principales entre servicios de Amazon Cognito

Admite sesiones de acceso directo (FAS)

No

Cuando utilizas un usuario o un rol de IAM para realizar acciones en AWSél, se te considera director. Cuando utiliza algunos servicios, es posible que realice una acción que desencadene otra acción en un servicio diferente. FAS utiliza los permisos del principal que llama y los que solicita Servicio de AWS para realizar solicitudes a los servicios descendentes. Servicio de AWS Las solicitudes de FAS solo se realizan cuando un servicio recibe una solicitud que requiere interacciones con otros Servicios de AWS recursos para completarse. En este caso, debe tener permisos para realizar ambas acciones. Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte Reenviar sesiones de acceso.

Roles de servicio de Amazon Cognito

Compatible con roles de servicio

Un rol de servicio es un rol de IAM que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para más información, consulte Creación de un rol para delegar permisos a un Servicio de AWS en la Guía del usuario de IAM.

Para obtener detalles acerca de los roles de servicio de Amazon Cognito, consulte Activar sincronización mediante inserción y Sincronización mediante inserción.

aviso

Es posible que cambiar los permisos de un rol de servicio interrumpa la funcionalidad de Amazon Cognito. Edite los roles de servicio solo cuando Amazon Cognito proporcione orientación para hacerlo.

Roles vinculados a servicios para Amazon Cognito

Compatible con roles vinculados al servicio

Un rol vinculado a un servicio es un tipo de rol de servicio que está vinculado a un. Servicio de AWS El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados al servicio aparecen en usted Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios.

Para obtener más información sobre cómo crear o administrar roles vinculados a servicios de Amazon Cognito, consulte Uso de roles vinculados a servicios para Amazon Cognito.