Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Uso de atributos para el control de acceso

Modo de enfoque
Uso de atributos para el control de acceso - 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.

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.

Los atributos para el control de acceso es la implementación de los grupos de identidades de Amazon Cognito del control de acceso basado en atributos (ABAC). Puede utilizar políticas de IAM para controlar el acceso a los recursos de AWS a través de los grupos de identidades de Amazon Cognito en función de los atributos del usuario. Estos atributos pueden extraerse de los proveedores de identidad social y corporativa. Puede mapear atributos dentro de los tokens de acceso e ID de los proveedores o de las aserciones SAML a etiquetas a las que se puede hacer referencia en las políticas de permisos de IAM.

Puede elegir mapeos predeterminados o crear sus propios mapeos personalizados en grupos de identidades de Amazon Cognito. Los mapeos predeterminados permiten escribir políticas de IAM basadas en un conjunto fijo de atributos de usuario. Los mapeos personalizados permiten seleccionar un conjunto personalizado de atributos de usuario a los que se hace referencia en las políticas de permisos de IAM. Los nombres de atributos de la consola de Amazon Cognito se mapean en la clave de etiqueta del principal, que son las etiquetas a las que se hace referencia en la política de permisos de IAM.

Por ejemplo, supongamos que tiene un servicio de streaming multimedia con una pertenencia gratuita y otra de pago. Almacena los archivos multimedia en Amazon S3 y los etiqueta con etiquetas gratuitas o prémium. Puede utilizar atributos de control de acceso para permitir el acceso a contenido gratuito y de pago basado en el nivel de pertenencia del usuario, que es parte del perfil del usuario. Puede mapear el atributo de la membresía a una clave de etiqueta para que el principal pase a la política de permisos de IAM. De esta forma, puede crear una única política de permisos y permitir condicionalmente el acceso a los contenidos prémium en función del valor del nivel de membresía y de la etiqueta de los archivos de contenido.

El uso de atributos para controlar el acceso aporta varios beneficios:

  • La administración de permisos es más fácil cuando se utilizan atributos para el control de acceso. Puede crear una política de permisos básica en la que se utilicen atributos de usuario, en lugar de crear varias políticas para diferentes funciones de trabajo.

  • No es necesario que actualice las políticas cada vez que agregue o quite recursos o usuarios de la aplicación. La política de permisos solo concederá el acceso a los usuarios con los atributos de usuario coincidentes. Por ejemplo, es posible que deba controlar el acceso a determinados buckets de S3 en función del título de trabajo de los usuarios. En ese caso, puede crear una política de permisos para permitir que solo los usuarios dentro del título de trabajo definido accedan a estos archivos. Para obtener más información, consulte Tutorial de IAM: Uso de etiquetas de sesión SAML para ABAC.

  • Los atributos se pueden pasar como etiquetas principales a una política que permite o rechaza los permisos en función de los valores de esos atributos.

Uso de atributos para el control de acceso con grupos de identidades de Amazon Cognito

Antes de utilizar atributos para el control de acceso, asegúrese de cumplir los siguientes requisitos previos:

Para utilizar los atributos para el control de acceso, la Reclamación que establece como origen de datos establece el valor de la Clave de etiqueta que elija. Amazon Cognito aplica la clave y el valor de la etiqueta a la sesión del usuario. Las políticas de IAM pueden evaluar el acceso del usuario a partir de la condición ${aws:PrincipalTag/tagkey}. IAM evalúa el valor de la etiqueta del usuario en función de la política.

Debe preparar los roles de IAM cuyas credenciales desee transmitir a los usuarios. La política de confianza de estos roles debe permitir a Amazon Cognito asumir el rol para el usuario. Para los atributos para el control de acceso, también debe permitir que Amazon Cognito aplique las etiquetas de las entidades principales a la sesión temporal del usuario. Conceda permiso para asumir el rol con la acción AssumeRoleWithWebIdentity. Conceda permiso para etiquetar las sesiones de los usuarios con la acción de solo permiso sts:TagSession. Para obtener más información, consulte Transferencia de etiquetas de sesión en AWS Security Token Service en la Guía del usuario de AWS Identity and Access Management. Para una política de confianza de ejemplo que concede permisos sts:AssumeRoleWithWebIdentity y sts:TagSession a la entidad principal de servicio de Amazon Cognito cognito-identity.amazonaws.com, consulte Ejemplo de política de uso de atributos para el control de acceso.

Para configurar atributos para el control de acceso en la consola
  1. Inicie sesión en la consola de Amazon Cognito y seleccione Grupos de identidades. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Localice proveedores de identidades. Elija el proveedor de identidades que desea editar. Si quiere agregar un nuevo IdP, seleccione Agregar proveedor de identidades.

  4. Para cambiar las etiquetas de la entidad principal que Amazon Cognito asigna cuando emite credenciales a los usuarios que se han autenticado con este proveedor, elija Editar en Atributos para el control de acceso.

    1. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

    2. Para aplicar etiquetas de entidades principales en función de las reclamaciones sub y aud, elija Usar mapeos predeterminados.

    3. Para crear su propio esquema personalizado de atributos para las etiquetas de la entidades principales, elija Usar mapeos personalizados. A continuación, ingrese una Clave de etiqueta que desee obtener de cada Reclamación que desee representar en una etiqueta.

  5. Seleccione Guardar cambios.

Ejemplo de política de uso de atributos para el control de acceso

Piense en una situación en la que un empleado del departamento legal de una empresa necesita enumerar todos los archivos en buckets que pertenecen a su departamento y están clasificados con su nivel de seguridad. Supongamos que el token que este empleado obtiene del proveedor de identidad contiene las siguientes notificaciones.

Notificaciones

{ . . "sub" : "57e7b692-4f66-480d-98b8-45a6729b4c88", "department" : "legal", "clearance" : "confidential", . . }

Estos atributos pueden mapearse a etiquetas y hacerse referencia en las políticas de permisos de IAM como etiquetas principales. Ahora puede administrar el acceso si cambia el perfil de usuario al final del proveedor de identidades. Como alternativa, puede cambiar atributos en el lado del recurso mediante nombres o etiquetas sin cambiar la propia política.

La siguiente política de permisos realiza dos tareas:

  • Permite el acceso a la lista a todos los buckets de S3 que terminan con un prefijo que coincide con el nombre del departamento del usuario.

  • Permite el acceso de lectura en los archivos de estos buckets, siempre y cuando la etiqueta de autorización del archivo coincida con el atributo de autorización del usuario.

Política de permisos

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:List*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}" }, { "Effect": "Allow", "Action": "s3:GetObject*", "Resource": "arn:aws:s3:::*-${aws:PrincipalTag/department}/*", "Condition": { "StringEquals": { "s3:ExistingObjectTag/clearance": "${aws:PrincipalTag/clearance}" } } } ] }

La política de confianza determina quién puede asumir este rol. La política de relación de confianza permite el uso de sts:AssumeRoleWithWebIdentity y sts:TagSession para permitir el acceso. Agrega condiciones para restringir la política al grupo de identidades que ha creado y se asegura de que es para un rol autenticado.

Política de confianza

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": [ "sts:AssumeRoleWithWebIdentity", "sts:TagSession" ], "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "IDENTITY-POOL-ID" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } } ] }

Desactivar atributos para el control de acceso (consola)

Siga este procedimiento para desactivar los atributos para el control de acceso.

Para desactivar atributos para el control de acceso en la consola
  1. Inicie sesión en la consola de Amazon Cognito y seleccione Grupos de identidades. Seleccione un grupo de identidades.

  2. Elija la pestaña Acceso de usuario.

  3. Localice proveedores de identidades. Elija el proveedor de identidades que desea editar.

  4. Elija Editar en Atributos para el control de acceso.

  5. Para no aplicar ninguna etiqueta de entidad principal, elija Inactivo.

  6. Seleccione Guardar cambios.

Mapeos de proveedores predeterminados

En la siguiente tabla, se encuentra la información de mapeo predeterminado para los proveedores de autenticación que admite Amazon Cognito.

Proveedor Tipo de token Valores de etiquetas del principal Ejemplo

Grupos de usuarios de Amazon Cognito

Token de ID

aud(ID de cliente) y sub(ID de usuario)

"6jk8ltokc7ac9es6jrtg9q572f", "57e7b692-4f66-480d-98b8-45a6729b4c88"

Facebook

Token de acceso

aud(app_id), sub(user_id)

"492844718097981", "112177216992379"

Google

Token de ID

aud(ID de cliente) y sub(ID de usuario)

"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097"

SAML

Aserciones

"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" , "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"

"auth0|5e28d196f8f55a0eaaa95de3", "user123@gmail.com"

Apple

Token de ID

aud(ID de cliente) y sub(ID de usuario)

"com.amazonaws.ec2-54-80-172-243.compute-1.client", "001968.a6ca34e9c1e742458a26cf8005854be9.0733"

Amazon

Token de acceso

aud(ID de cliente en Amzn Dev Ac), user_id(ID de usuario)

"amzn1.application-oa2-client.9d70d9382d3446108aaee3dd763a0fa6", "amzn1.account.AGHNIFJQMFSBG3G6XCPVB35ORQAA"

Proveedores estándar de OIDC

Tokens de ID y de acceso

aud (como client_id), sub (como user ID)

"620493171733-eebk7c0hcp5lj3e1tlqp1gntt3k0rncv.apps.googleusercontent.com", "109220063452404746097"

Twitter

Token de acceso

aud (ID de la aplicación; secreto de la aplicación), sub (ID de usuario)

"DfwifTtKEX1FiIBRnOTlR0CFK;Xgj5xb8xIrIVCPjXgLIdkW7fXmwcJJrFvnoK9gwZkLexo1y5z1", "1269003884292222976"

DevAuth

Asignación

No aplicable

"tag1", "tag2"

nota

La opción de los mapeos de atributos predeterminados se completa de forma automática en los nombres Tag Key for Principal (Clave de etiquetas del principal) y Attribute (Atributo). No se pueden cambiar los mapeos predeterminados.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.