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 rol a fin de detener el uso de credenciales comprometidas para actividades malintencionadas 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. Revoque las credenciales de seguridad temporales del rol para obligar a todos los usuarios que asuman el rol a volver a autenticarse y solicitar credenciales nuevas.

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.

importante

En el caso de los usuarios de IAM Identity Center, consulte Deshabilitar el acceso de los usuarios en la Guía del usuario de AWS IAM Identity Center. También puede Eliminar el acceso de los usuarios a aplicaciones en la nube o SAML 2.0 personalizadas en la consola de IAM Identity Center.

Denegar el acceso a todas las sesiones 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

Este procedimiento deniega los permisos a todos los usuarios que cuentan con permisos para asumir un rol.

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 de permisos 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 a un usuario de sesión con políticas basadas en recursos.

  1. Inicie sesión en la AWS Management Console y abra la consola de IAM.

  2. En el panel de navegación, elija el nombre del rol que desea editar. Puede utilizar el cuadro de búsqueda para filtrar la lista.

  3. Seleccione la política correspondiente.

  4. Elija la pestaña Permisos.

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*" } ] }
  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.

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

Cuando actualiza los roles que puede asumir un IdP con una política de denegación total o elimina el rol por completo, todos los usuarios que tienen acceso al rol se ven afectados. Puede denegar el acceso en función del elemento Principal sin afectar 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 una sesión de usuario con claves de contexto de condición

Puede utilizar claves de contexto de condición en situaciones en las que desea denegar el acceso a sesiones de credenciales de seguridad temporales específicas sin afectar a los permisos del rol o usuario de IAM que creó las credenciales.

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

nota

Si hay una política basada en recursos que permite el acceso de una entidad principal, también debe agregar una instrucción de denegación explícita en la política basada en recursos después de completar estos pasos.

Después de actualizar la política, puede revocar las credenciales de seguridad temporales del rol para revocar de inmediato todas las credenciales emitidas.

aws:PrincipalArn

Puede utilizar la clave de contexto de condición aws:PrincipalArn para denegar el acceso a un ARN de entidad principal específico. Para ello, especifique el identificador único (ID) del usuario federado, rol o usuario de IAM al que se encuentran asociadas las credenciales de seguridad temporales en el elemento Condition de una política.

  1. En el panel de navegación de la consola de IAM, elija el nombre del rol que desea editar. Puede utilizar el cuadro de búsqueda para filtrar la lista.

  2. Seleccione la política correspondiente.

  3. Elija la pestaña Permisos.

  4. 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:sts::222222222222:federated-user/USERNAME" ] } } } ] }
  5. 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:userid

Puede utilizar la clave de contexto de condición aws:userid para denegar el acceso a todas las sesiones de credenciales de seguridad temporales, o a específicas, asociadas al rol o usuario de IAM. Para ello, especifique el identificador único (ID) del usuario federado, 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 identificador único para un usuario de IAM. Especificar el identificador único de un usuario de IAM como valor para la clave de contexto aws:userid denegará todas las sesiones que se encuentran asociadas a dicho usuario.

  • AROAXROLE1 representa el identificador único para un rol de IAM. Especificar el identificador único de un rol de IAM como valor para la clave de contexto aws:userid denegará todas las sesiones que se encuentran asociadas al rol.

  • AROAXROLE2 representa el identificador ú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 identificador ú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 comodín para el nombre de la sesión del rol, denegará todas las sesiones asociadas al rol.

  • account-id:<federated-user-caller-specified-name> representa el identificador único para una sesión de usuario federado. Un usuario de IAM crea un usuario federado que llama a la API GetFederationToken. Si especifica el identificador único para un usuario federado, denegará la sesión del usuario federado nombrado sin afectar los permisos del rol 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, consulte Identificadores únicos.

Denegar a un usuario de sesión con políticas basadas en recursos

Si el ARN de la entidad principal también se encuentra incluido en alguna política basada en recursos, también debe revocar el acceso basado en los valores principalId o sourceIdentity del usuario específico en el elemento Principal de una política basada en recursos. Si solo actualiza la política de permisos del rol, el usuario podrá seguir realizando las acciones que se permiten en la 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 instrucción de la política para especificar la información de identificación de la credencial:

    1. En Principal, ingrese el ARN de la credencial que desee denegar.

    2. En Effect, escriba “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 Resource, ingrese el ARN del recurso de destino. Por ejemplo: “arn:aws:s3:::EXAMPLE-BUCKET”.

    { "Version": "2012-10-17", "Statement": { "Principal": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:sts::222222222222:federated-user/USERNAME" ], "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::EXAMPLE-BUCKET" } }
  4. Guarde su trabajo.