Deshabilitar permisos para credenciales de seguridad temporales - AWS Identity and Access Management

Deshabilitar permisos para credenciales de seguridad temporales

Las credenciales de seguridad temporales son válidas hasta que caducan. Estas credenciales son válidas durante el tiempo especificado, desde 900 segundos (15 minutos) hasta un máximo de 129 600 segundos (36 horas). La duración predeterminada de una sesión es de 43 200 segundos (12 horas). Puede revocar estas credenciales, pero también debe cambiar los permisos del usuario o rol de IAM para evitar que se utilicen credenciales comprometidas para actividades maliciosas en la cuenta. Los permisos asignados a las credenciales de seguridad temporales se evalúan cada vez que se utilizan para realizar una solicitud de AWS. Una vez que haya eliminado todos los permisos de las credenciales, las solicitudes de AWS que las utilizan fallarán.

Es posible que las actualizaciones de la política tarden unos minutos en hacerse efectivas. Para sesiones de rol de IAM, puede revocar las credenciales de seguridad temporales del rol para forzar a todos los usuarios que lo asumieron a volver a autenticarse y solicitar nuevas credenciales. Para obtener más información, consulte Revocar las credenciales de seguridad temporales del rol.

No puede cambiar los permisos para un usuario Usuario raíz de la cuenta de AWS. Del mismo modo, no puede cambiar los permisos de las credenciales de seguridad temporales que se han creado llamando a GetFederationToken o GetSessionToken al iniciar sesión como usuario raíz. Por este motivo, le recomendamos que no llame a GetFederationToken ni a GetSessionToken como usuario raíz.

Para conocer los procedimientos sobre cómo cambiar los permisos de un usuario de IAM, consulte Cambio de los permisos de un usuario de IAM.

Para conocer los procedimientos sobre cómo cambiar los permisos de un rol de IAM, consulte Actualización de los permisos de un rol.

importante

No puede editar los roles en IAM que se hayan creado a partir de conjuntos de permisos del IAM Identity Center. Debe revocar la sesión del conjunto de permisos activo para un usuario en el IAM Identity Center. Para obtener más información, consulte Revocar sesiones de rol de IAM creadas por conjuntos de permisos en la Guía del usuario de IAM Identity Center.

Denegar el acceso a todas las sesiones de rol de IAM asociadas a un rol

Este procedimiento deniega permisos a todas las sesiones de rol de IAM asociadas a un rol. Utilice este enfoque cuando le preocupe el acceso sospechoso por parte de:

  • Entidades principales de otra cuenta que utilizan el acceso entre cuentas

  • Identidades de usuarios externos con permisos para acceder a recursos de AWS en su cuenta

  • Usuarios que se han autenticado en una aplicación Web o móvil con un proveedor de OIDC

A fin de cambiar o eliminar los permisos asignados a las credenciales de seguridad temporales que se obtienen al llamar a AssumeRole, AssumeRoleWithSAMLAssumeRoleWithWebIdentity, GetFederationToken o GetSessionToken, puede editar o eliminar la política basada en identidades que define los permisos para el rol.

importante

Si hay una política basada en recursos que permite el acceso de una entidad principal, también debe agregar una denegación explícita para ese recurso. Para obtener más información, consulte Denegar el acceso a una entidad principal específica con políticas basadas en recursos.

Para denegar el acceso a todas las sesiones de rol de IAM asociadas a un rol
  1. Inicie sesión en la AWS Management Console y abra la consola de IAM.

  2. Seleccione Roles en el panel de navegación.

  3. Elija el nombre del rol que desea editar. Puede utilizar el cuadro de búsqueda para filtrar la lista.

  4. Elija la pestaña Permisos.

  5. Seleccione la política correspondiente que desea editar. Antes de editar una política administrada por el cliente, revise la pestaña Entidades asociadas para evitar interrumpir el acceso a otras identidades que puedan tener la misma política asociada.

  6. Elija la pestaña JSON y actualice la política para denegar todos los recursos y acciones.

    nota

    Estos permisos son los mismos que los de la política administrada por AWS AWSDenyAll. Puede asociar esta política administrada por AWS a cualquier usuario o rol de IAM al que desee denegar todo acceso.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyAll", "Effect": "Deny", "Action": [ "*" ], "Resource": "*" } ] }
  7. En la página Review (Revisar), revise el Summary (Resumen) de la política y seleccione Save changes (Guardar cambios) para guardar su trabajo.

Al editar la política, los cambios afectan a los permisos de todas las credenciales de seguridad temporales asociadas al rol, incluidas las credenciales que se han emitido antes de cambiar la política de permisos del rol.

Después de actualizar la política, puede revocar las credenciales de seguridad temporales del rol para revocar de inmediato todos los permisos de las credenciales que ha emitido el rol.

Denegar el acceso a una sesión específica de rol de IAM

Cuando se actualizan los roles de IAM con una política de denegar todo o se elimina el rol por completo, todos los usuarios que tienen acceso al rol se verán afectados. Puede denegar el acceso sin que esto afecte a los permisos de todas las demás sesiones asociadas al rol.

Se pueden denegar permisos a Principal mediante claves de contexto de condición o políticas basadas en recursos.

sugerencia

Puede encontrar los ARN de los usuarios federados mediante los registros de AWS CloudTrail. Para obtener más información, consulte Cómo identificar con facilidad a sus usuarios federados mediante AWS CloudTrail.

Denegar el acceso a sesiones de credenciales de seguridad temporales con claves de contexto de condiciones

Puede utilizar claves de contexto de condición en políticas basadas en identidades en casos en los que desee denegar el acceso a sesiones de credenciales de seguridad temporales específicas sin afectar a los permisos del usuario o rol de IAM que creó las credenciales. En el caso de los roles de IAM, después de actualizar la política, también podrá revocar las sesiones de credenciales de seguridad temporales del rol para revocar inmediatamente todas las credenciales emitidas.

Para obtener más información sobre las claves de contexto de condición, consulte Claves de contexto de condición globales de AWS.

aws:PrincipalArn

Puede utilizar la clave de contexto de condición aws:PrincipalArn en una política basada en identidades para denegar el acceso a una entidad principal específica por su nombre de recurso de Amazon (ARN). Para ello, especifique el ARN de la sesión de usuario federado AWS STS, rol o usuario de IAM al que se encuentran asociadas las credenciales de seguridad temporales en el elemento Condición de una política.

Para denegar el acceso a una entidad principal específica por su ARN
  1. En el panel de navegación de la consola de IAM, elija Usuarios o Roles.

  2. Elija el nombre del usuario o rol de IAM que desea editar. Puede utilizar el cuadro de búsqueda para filtrar la lista.

  3. Elija la pestaña Permisos.

  4. Seleccione la política correspondiente que desea editar. Antes de editar una política administrada por el cliente, revise la pestaña Entidades asociadas para evitar interrumpir el acceso a otras identidades que puedan tener la misma política asociada.

  5. Elija la pestaña JSON y agregue una instrucción de denegación para el ARN de la entidad principal, como se muestra en el siguiente ejemplo.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "ArnEquals": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:iam::222222222222:federated-user/USERNAME" ] } } } ] }
  6. En la página Review (Revisar), revise el Summary (Resumen) de la política y seleccione Save changes (Guardar cambios) para guardar su trabajo.

aws:SourceIdentity

Puede utilizar la clave de contexto de condición aws:SourceIdentity en una política basada en identidades para denegar el acceso a una identidad de origen específica asociada a una sesión de rol de IAM. Esto se aplica siempre que la sesión de rol se haya emitido al configurar el parámetro de solicitud SourceIdentity cuando la entidad principal asumió un rol mediante cualquier comando de la CLI AWS STS assume-role* u operación de la API AWS STS AssumeRole*. Para ello, especifique la identidad de origen a la que se encuentran asociadas las credenciales de seguridad temporales en el elemento Condition de una política.

A diferencia de la clave de contexto sts:RoleSessionName, después de establecer la identidad de origen, el valor no se puede cambiar. La clave aws:SourceIdentity se encuentra presente en el contexto de la solicitud de todas las acciones tomadas por el rol. La identidad de origen persiste en sesiones de rol posteriores cuando se utilizan las credenciales de sesión para asumir otro rol. Asumir un rol de otro se llama encadenamiento de roles.

En la siguiente política se muestra un ejemplo de cómo puede denegar el acceso a las sesiones de credenciales de seguridad temporales mediante la clave de contexto de condición aws:SourceIdentity. Si especifica la identidad de origen asociada con una sesión de rol, se denegarán las sesiones de rol con la identidad de origen mencionada sin afectar los permisos del rol que creó las credenciales. Para este ejemplo, la identidad de origen que estableció la entidad principal cuando se emitió la sesión de rol es nikki_wolf@example.com. Cualquier solicitud realizada por una sesión de rol con la identidad de origen nikki_wolf@example.com será rechazada porque la identidad de origen está incluida en la condición de la política y la política Effect se estableció en Deny.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringLike": { "aws:SourceIdentity": [ "nikki_wolf@example.com", "<source identity value>" ] } } } ] }

aws:userid

Puede utilizar la clave de contexto de condición aws:userid en una política basada en identidades para denegar el acceso a todas las sesiones de credenciales de seguridad temporales o a sesiones específicas asociadas con el usuario o rol de IAM. Para ello, especifique el identificador único (ID) de la sesión de usuario federado AWS STS, rol o usuario de IAM al que se encuentran asociadas las credenciales de seguridad temporales en el elemento Condition de una política.

En la siguiente política se muestra un ejemplo de cómo puede denegar el acceso a las sesiones de credenciales de seguridad temporales mediante la clave de contexto de condición aws:userid.

  • AIDAXUSER1 representa el ID único para un usuario de IAM. Especificar el ID único de un usuario de IAM como valor para la clave de contexto aws:userid denegará acceso al usuario de IAM. Esto incluye todas las sesiones de credenciales de seguridad temporales que se crearon al llamar a la API GetSessionToken.

  • AROAXROLE1:* representa el ID único para todas las sesiones asociadas al rol de IAM. Si se especifica el ID único de un rol de IAM y un carácter comodín (*) en la parte del nombre de la sesión del rol especificado por quien llama como valor de la clave de contexto aws:userid, se denegarán todas las sesiones asociadas al rol.

  • AROAXROLE2:<caller-specified-role-session-name> representa el ID único para una sesión de rol asumido. En la parte del nombre de sesión del rol especificado por el autor de la llamada del ID único del rol asumido, puede especificar un nombre de sesión de rol o un carácter comodín si se utiliza el operador de condición StringLike. Si especifica el nombre de la sesión del rol, denegará la sesión del rol nombrada sin afectar a los permisos del rol que creó las credenciales. Si especifica un carácter comodín para el nombre de la sesión del rol, denegará todas las sesiones asociadas al rol.

    nota

    El nombre de la sesión del rol especificado por la persona que llama, que forma parte del identificador único de una sesión del rol asumido, puede cambiar durante el encadenamiento de roles. El encadenamiento de roles se produce cuando un rol asume otro rol. El nombre de la sesión del rol se establece mediante el parámetro de solicitud RoleSessionName cuando la entidad principal asume un rol mediante la operación de la API de AWS STS AssumeRole.

  • account-id:<federated-user-caller-specified-name> representa el ID único para una sesión de usuario federado AWS STS. Para crear la sesión, un usuario de IAM llama a la API GetFederationToken. Al especificar el ID único para una sesión de usuario federado AWS STS, se deniega la sesión de usuario federado nombrada sin que ello afecte a los permisos del usuario de IAM que creó las credenciales.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "StringLike": { "aws:userId": [ "AIDAXUSER1", "AROAXROLE1:*", "AROAXROLE2:<caller-specified-role-session-name>", "account-id:<federated-user-caller-specified-name>" ] } } } ] }

Para ver ejemplos específicos de valores de clave de una entidad principal, consulte Valores clave principales. Para obtener información sobre los identificadores únicos de IAM y cómo obtenerlos, consulte Identificadores únicos.

Denegar el acceso a una entidad principal específica con políticas basadas en recursos

Para restringir el acceso a una entidad principal específica con una política basada en recursos, puede utilizar claves de contexto de condición aws:PrincipalArn o aws:SourceIdentity en el elemento Condition. Una política basada en recursos es una política de permisos asociada a un recurso y controla quién puede acceder al recurso y qué acciones puede realizar en este.

Cuando se utiliza la clave de contexto aws:PrincipalARN, especifique el ARN de la sesión de usuario federado de AWS STS, rol o usuario de IAM asociado a las credenciales de seguridad temporales en el elemento Condición de una política. El siguiente ejemplo de política muestra cómo se utiliza la clave de contexto aws:PrincipalARN en una política basada en recursos:

{ "Version": "2012-10-17", "Statement": { "Principal": [ "*" ], "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "ArnEquals": { "aws:PrincipalArn": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:sts::222222222222:federated-user/USERNAME" ] } } } }

Cuando utilice la clave de contexto aws:SourceIdentity, especifique el valor de identidad de origen asociado a las credenciales de seguridad temporales del rol en el elemento Condition de una política. Esto se aplica siempre que la sesión de rol se haya emitido al configurar el parámetro de solicitud SourceIdentity cuando la entidad principal asumió un rol mediante cualquier comando de la CLI AWS STS assume-role* u operación de la API AWS STS AssumeRole*. El siguiente ejemplo muestra cómo se utiliza la clave de contexto aws:SourceIdentity en una política basada en recursos:

{ "Version": "2012-10-17", "Statement": { "Principal": [ "*" ], "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket", "Condition": { "StringLike": { "aws:SourceIdentity": [ "nikki_wolf@example.com", "<source identity value>" ] } } } }

Si solo actualiza la política basada en identidades para una entidad principal, esta aún podrá realizar acciones permitidas en la política basada en recursos, excepto cuando dichas acciones se denieguen explícitamente en la política basada en identidades.

Para denegar el acceso a una entidad principal específica en una política basada en recursos
  1. Consulte Servicios de AWS que funcionan con IAM para comprobar si el servicio admite políticas basadas en recursos.

  2. Inicie sesión en la AWS Management Console y abra la consola del servicio. Cada servicio tiene una ubicación diferente en la consola para adjuntar políticas.

  3. Edite la política basada en recursos. Agregue una instrucción de política de denegación para especificar la información de identificación de la credencial:

    1. En el elemento Principal, ingrese un comodín (*). La entidad principal estará restringida en el elemento Condition.

    2. En el elemento Effect, ingrese “Denegar”.

    3. En Action, ingrese el espacio de nombres del servicio y el nombre de la acción que se denegará. Para denegar todas las acciones, utilice el carácter comodín (*). Por ejemplo: "s3:*".

    4. En el elemento Resource, ingrese el ARN del recurso de destino. Por ejemplo: "arn:aws:s3:::amzn-s3-demo-bucket".

    5. En el elemento Condition, especifique la clave de contexto de aws:PrincipalARN o aws:SourceIdentity.

      Si utiliza la clave de contexto aws:PrincipalARN, ingrese el ARN de la entidad principal a la que desea denegar el acceso.

      Si utiliza la clave de contexto aws:SourceIdentity, ingrese el valor de identidad de origen establecido en la sesión de rol a la que se denegará el acceso.

  4. Guarde su trabajo.