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 y no pueden revocarse. Sin embargo, dado que los permisos se evalúan cada vez que una solicitud de AWS se realiza con las credenciales, puede conseguir el efecto de revocar las credenciales cambiando los permisos para las credenciales, incluso después de que se hayan emitido. Si elimina todos los permisos de las credenciales de seguridad temporales, se producirá un error en las solicitudes de AWS posteriores que utilicen dichas credenciales. Los mecanismos para cambiar o eliminar los permisos asignados a las credenciales de seguridad temporales se explican en las siguientes secciones.

nota

Cuando actualiza los permisos de políticas existentes o cuando aplica una nueva política a un usuario o un recurso, puede que las actualizaciones de política tarden varios minutos en surtir efecto.

Denegar el acceso al creador de las credenciales de seguridad temporales

Para cambiar o eliminar los permisos asignados a las credenciales de seguridad temporales, puede cambiar o eliminar los permisos que están asociados al creador de las credenciales. El creador de las credenciales se determina en función de la API de AWS STS que se utilizó para obtener las credenciales. Los mecanismos para cambiar o eliminar los permisos asociados a este creador se explican en las siguientes secciones.

Denegar el acceso a las credenciales creadas por AssumeRole, AssumeRoleWithSAML o AssumeRoleWithWebIdentity

Para cambiar o eliminar los permisos asignados a las credenciales de seguridad temporales obtenidas llamando a las operaciones de API AssumeRole, AssumeRoleWithSAML o AssumeRoleWithWebIdentity, debe editar o eliminar la política de permisos de rol que define los permisos para el rol asumido. Las credenciales de seguridad temporales obtenidas al asumir un rol nunca pueden tener más permisos que los definidos en la política de permisos del rol asumido y los permisos asignados a las credenciales de seguridad temporales se evalúan cada vez que se utilizan para realizar una solicitud de AWS. Al editar o eliminar la política de permisos de un rol, los cambios afectan a los permisos de todas las credenciales de seguridad temporales asociadas a dicho rol, incluidas las credenciales que se han emitido antes de cambiar la política de permisos del rol. Puede revocar inmediatamente todos los permisos para una sesión si sigue los pasos indicados en Revocación de las credenciales de seguridad temporales de un rol de IAM.

Para obtener más información sobre cómo editar una política de permisos de función, consulte Modificación de un rol.

Denegar acceso a las credenciales creadas por GetFederationToken o GetSessionToken

Para cambiar o eliminar los permisos asignados a las credenciales de seguridad temporales obtenidas llamando a las operaciones de API GetFederationToken o GetSessionToken, debe editar o eliminar las políticas asociadas al usuario de IAM cuyas credenciales se utilizaron para llamar a GetFederationToken o GetSessionToken. Las credenciales de seguridad temporales obtenidas llamando a GetFederationToken o GetSessionToken nunca pueden tener más permisos que el usuario de IAM, cuyas credenciales se utilizaron para obtenerlas. Además, los permisos asignados a las credenciales de seguridad temporales se evalúan cada vez que se utilizan para realizar una solicitud de AWS. Es importante tener en cuenta que al editar o eliminar los permisos de un usuario de IAM, los cambios afectan al usuario de IAM, así como a todas las credenciales de seguridad temporales creadas por dicho usuario.

importante

No puede cambiar los permisos para un usuario raíz de 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 obtener más información sobre cómo cambiar o eliminar las políticas asociadas al usuario de IAM, cuyas credenciales se utilizaron para llamar a GetFederationToken o GetSessionToken, consulte Administración de políticas de IAM.

Denegar el acceso a las credenciales de seguridad temporales según el nombre

Puede denegar el acceso a las credenciales de seguridad temporales sin afectar a los permisos del rol o usuario IAM que creó dichas credenciales. Para ello, debe especificar el Nombre de recurso de Amazon (ARN) de las credenciales de seguridad temporales en el elemento Principal de una política basada en recursos (solo algunos servicios de AWS admiten políticas basadas en recursos).

Denegar el acceso a los usuarios federados

Por ejemplo, imagine que tiene un usuario de IAM denominado token-app, cuyas credenciales se utilizan para llamar a GetFederationToken. La llamada a API GetFederationToken generó credenciales de seguridad temporales asociadas a un usuario federado denominado Bob (el nombre del usuario federado procede del parámetro Name de la llamada a API). Para denegar el acceso del usuario federado Bob a un bucket de S3 denominado EXAMPLE-BUCKET, debe asociar el siguiente ejemplo de política de bucket a EXAMPLE-BUCKET. Es importante tener en cuenta que esto solo afecta a los permisos de Amazon S3 del usuario federado otros permisos concedidos al usuario federado permanecerán intactos.

{ "Version": "2012-10-17", "Statement": { "Principal": {"AWS": "arn:aws:sts::ACCOUNT-ID-WITHOUT-HYPHENS:federated-user/Bob"}, "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::EXAMPLE-BUCKET" } }

Puede especificar el ARN del usuario de IAM, cuyas credenciales se utilizaron para llamar a GetFederationToken en el elemento Principal de la política de bucket, en lugar de especificar el usuario federado. En tal caso, el elemento Principal de la política anterior sería el siguiente:

"Principal": {"AWS": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:user/token-app"}

Es importante tener en cuenta que especificar el ARN del usuario de IAM token-app en la política provocará la denegación del acceso a todos los usuarios federados creados por token-app, no solo al usuario federado denominado Bob.

Denegar acceso a usuarios de roles asumidos

También es posible especificar el ARN de las credenciales de seguridad temporales que se crearon al asumir un rol. La diferencia es la sintaxis utilizada en el elemento Principal de la política basada en recursos. Por ejemplo, un usuario asume un rol denominado Accounting-Role y especifica el RoleSessionName de Mary (RoleSessionName es un parámetro de la llamada a API AssumeRole). Para denegar el acceso a las credenciales de seguridad temporales generadas de esta llamada a API, el elemento Principal de la política basada en recursos sería el siguiente:

"Principal": {"AWS": "arn:aws:sts::ACCOUNT-ID-WITHOUT-HYPHENS:assumed-role/Accounting-Role/Mary"}

También puede especificar el ARN del rol de IAM en el elemento Principal de una política basada en recursos, tal y como se indica en el siguiente ejemplo. En este caso, la política denegará el acceso a todas las credenciales de seguridad temporales asociadas al rol denominado Accounting-Role.

"Principal": {"AWS": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/Accounting-Role"}

Denegar el acceso a las credenciales de seguridad temporales emitidas antes de una fecha y hora especificadas

Es posible denegar el acceso únicamente a las credenciales de seguridad temporales que se han creado antes de una fecha y hora especificadas. Para ello, debe especificar un valor para la clave aws:TokenIssueTime en el elemento Condition de una política. En la siguiente política se muestra un ejemplo. Puede asociar una política similar al siguiente ejemplo al usuario de IAM que ha creado las credenciales de seguridad temporales. La política deniega todos los permisos, pero solo cuando el valor de aws:TokenIssueTime es anterior a la fecha y la hora especificadas. El valor de aws:TokenIssueTime corresponde al intervalo de tiempo exacto en el que se han creado las credenciales de seguridad temporales. El valor de aws:TokenIssueTime solo está presente en el contexto de las solicitudes de AWS que se firman con credenciales de seguridad temporales, de modo que la instrucción Deny de la política no afectará a las solicitudes que se firman con las credenciales a largo plazo del usuario de IAM.

La siguiente política también puede asociarse a un rol. En tal caso, la política solo afecta a las credenciales de seguridad temporales que el rol ha creado antes de la fecha y la hora especificadas. Si el rol ha creado las credenciales después de la fecha y la hora especificadas, el elemento Condition de la política se evalúa como false, de modo que la instrucción Deny no tendrá ningún efecto.

ejemplo Ejemplo de política que deniega todos los permisos a credenciales temporales según el momento de la emisión

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": {"DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"}} } }

Los usuarios válidos cuyas sesiones se revocan de esta forma deben obtener credenciales temporales para una nueva sesión para poder seguir trabajando. Tenga en cuenta que la AWS CLI guarda en caché las credenciales hasta que estas caducan. Para obligar a la CLI a eliminar y actualizar las credenciales en caché que ya no son válidas, ejecute uno de los comandos siguientes:

Linux, MacOS o Unix

$ rm -r ~/.aws/cli/cache

Windows

C:\> del /s /q %UserProfile%\.aws\cli\cache