View a markdown version of this page

Control de acceso mediante políticas de IAM - AWS Identity and Access Management

Control de acceso mediante políticas de IAM

IAM proporciona varios tipos de políticas para controlar el acceso a la característica de federación de identidad saliente. Puede utilizar políticas basadas en identidades para controlar qué entidades principales de IAM pueden solicitar los tokens y aplicar propiedades específicas de estos, como la audiencia, la vida útil y los algoritmos de firma. Las políticas de control de servicio (SCP) le permiten aplicar restricciones en toda la organización a la generación de tokens en todas las cuentas de su instancia de AWS Organizations. Las políticas de control de recursos (RCP) controlan el acceso en el nivel de recursos. También puede usar políticas de puntos de conexión de VPC para restringir qué entidades principales pueden acceder a la API GetWebIdentityToken de AWS STS a través de sus puntos de conexión de VPC al agregar controles de nivel de red a su posición de seguridad. En esta sección, se explica cómo implementar controles de acceso detallados mediante estos tipos de políticas y claves de condición.

Para solicitar tokens de identidad, una entidad principal de IAM debe tener el permiso sts:GetWebIdentityToken. Otorgue este permiso a través de las políticas de identidades adjuntas a los usuarios o roles de IAM. Para permitir que las etiquetas (pares de claves y valores) se transfieran a la llamada a GetWebIdentityToken, la entidad principal de IAM debe tener el permiso sts:TagGetWebIdentityToken.

  • Utilice la clave de condición sts:IdentityTokenAudience para limitar los servicios externos que pueden recibir los tokens.

  • Utilice la clave de condición sts:DurationSeconds para aplicar la vida útil máxima de los tokens.

  • Utilice la clave de condición sts:SigningAlgorithm para requerir algoritmos criptográficos específicos.

  • Utilice la clave de condición aws:RequestTag para comparar el par de clave-valor de la etiqueta que se transfirió en la solicitud con el par de etiquetas especificado en la política.

  • Utilice la clave de condición aws:TagKeys para comparar las claves de etiquetas de una solicitud con las claves que especifique en la política.

Consulte Claves de contexto de condición de IAM y AWS STS para obtener más información sobre las claves de condición disponibles en las políticas de IAM.

Este ejemplo de política de identidades combina varias claves de condición:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTokenGenerationWithRestrictions", "Effect": "Allow", "Action": "sts:GetWebIdentityToken", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "sts:IdentityTokenAudience": [ "https://api1.example.com", "https://api2.example.com" ] }, "NumericLessThanEquals": { "sts:DurationSeconds": 300 }, "StringEquals": { "sts:SigningAlgorithm": "ES384" } } } ] }

Prácticas recomendadas

Siga estas recomendaciones para federar de forma segura sus identidades de AWS en servicios externos.

  • Uso de tokens con una vida útil corta: solicite tokens con la vida útil más corta que se adapte a sus necesidades operativas.

  • Implementación del acceso con privilegio mínimo y restricción de las propiedades de los tokens con políticas de IAM: conceda el permiso sts:GetWebIdentityToken solo a las entidades principales de IAM que lo requieran. Utilice claves de condición para especificar los algoritmos de firma, las audiencias de tokens permitidas y la vida útil máxima de los tokens, según sea necesario.

  • Validación de las notificaciones en servicios externos: por motivos de seguridad, valide siempre las notificaciones pertinentes, como el tema (“sub”), la audiencia (“aud”), etc., para asegurarse de que coincidan con los valores esperados. Valide las notificaciones personalizadas siempre que sea posible para que los servicios externos puedan tomar decisiones de autorización detalladas.