Prácticas recomendadas de seguridad en IAM - AWS Identity and Access Management

Prácticas recomendadas de seguridad en IAM

Las prácticas recomendadas para AWS Identity and Access Management se actualizaron el 14 de julio de 2022.

Para contribuir a proteger los recursos de AWS, siga estas prácticas recomendadas para AWS Identity and Access Management(IAM).

Exigir que los usuarios humanos utilicen la federación con un proveedor de identidades para acceder a AWScon credenciales temporales

Los usuarios humanos, que también reciben el nombre de identidades humanas, son las personas, los administradores, los desarrolladores, los operadores y los consumidores de las aplicaciones. Deben tener una identidad para acceder a los entornos y aplicaciones de AWS. Los usuarios humanos que son miembros de su organización también reciben el nombre de identidades de personal. Los usuarios humanos también pueden ser usuarios externos con los que colabora y que interactúan con los recursos de AWS. Pueden hacer esto a través de un navegador web, una aplicación cliente, una aplicación móvil o herramientas de línea de comandos interactivas.

Exija a los usuarios humanos que utilicen credenciales temporales cuando accedan a AWS. Puede utilizar un proveedor de identidades para los usuarios humanos para proporcionar acceso federado a las cuentas de AWS asumiendo roles, que proporcionan credenciales temporales. Si desea administrar el acceso de manera centralizada, se recomienda utilizar AWS IAM Identity Center (successor to AWS Single Sign-On) (IAM Identity Center) para administrar el acceso a las cuentas y los permisos de esas cuentas. Puede administrar las identidades de los usuarios con IAM Identity Center, o bien administrar los permisos de acceso para las identidades de los usuarios en IAM Identity Center de un proveedor de identidades externo. Para obtener más información, consulte ¿Qué es AWS IAM Identity Center (successor to AWS Single Sign-On)? en la Guía del usuario de AWS IAM Identity Center (successor to AWS Single Sign-On).

Para obtener más información acerca de los roles de , consulte Términos y conceptos de roles.

Exigir que las cargas de trabajo utilicen credenciales temporales con roles de IAM para acceder a AWS

Una carga de trabajo es un conjunto de recursos y código que ofrece valor comercial, como una aplicación o un proceso de backend. Una carga de trabajo puede tener aplicaciones, herramientas operativas y componentes que requieren una identidad para realizar solicitudes a Servicios de AWS, tales como solicitudes de lectura de datos. Estas identidades incluyen máquinas que se ejecutan en los entornos de AWS, como instancias de Amazon EC2 o funciones de AWS Lambda.

También se pueden administrar identidades de máquina para las partes externas que necesiten acceso. Para dar acceso a las identidades de máquina, puede utilizar roles de IAM. Los roles de IAM tienen permisos específicos y ofrecen una forma de acceder a AWS empleando credenciales de seguridad temporales con una sesión de rol. Además, es posible que tenga máquinas fuera de AWS que necesiten acceso a los entornos de AWS. Para máquinas que se ejecuten fuera de AWS, puede utilizar AWS Identity and Access Management Roles Anywhere. Para obtener más información acerca de los roles de , consulte Roles de IAM. Para obtener detalles sobre cómo utilizar roles para delegar el acceso en Cuentas de AWS, consulte Tutorial de IAM: delegación del acceso entre cuentas de AWS mediante roles de IAM.

Exigir autenticación multifactor (MFA)

Se recomienda utilizar roles de IAM para los usuarios humanos y las cargas de trabajo que accedan a los recursos de AWS con objeto de que utilicen credenciales temporales. No obstante, en aquellas situaciones en las que necesite usuarios raíz o de IAM en la cuenta, exija MFA para mayor seguridad. Con MFA, los usuarios tienen un dispositivo que genera una respuesta a un reto de autenticación. Las credenciales de cada usuario y la respuesta generada por el dispositivo son necesarias para completar el proceso de inicio de sesión. Para obtener más información, consulte Uso de autenticación multifactor (MFA) en AWS .

Si utiliza IAM Identity Center para la administración centralizada del acceso de los usuarios humanos, puede emplear las capacidades MFA de IAM Identity Center cuando el origen de identidades esté configurado con el almacén de identidades de IAM Identity Center, AWS Managed Microsoft AD o AD Connector. Para obtener más información sobre MFA en IAM Identity Center, consulte Autenticación multifactor en la Guía del usuario de AWS IAM Identity Center (successor to AWS Single Sign-On).

Rotar las claves de acceso periódicamente para casos de uso que requieran credenciales de larga duración

Siempre que sea posible, se recomienda emplear credenciales temporales, en lugar de crear credenciales de larga duración tales como claves de acceso. No obstante, en aquellas situaciones en las que necesite usuarios de IAM con acceso programático y credenciales de larga duración, se recomienda rotar las claves de acceso. Rotar periódicamente las credenciales de larga duración ayuda a familiarizarse con el proceso. Esto resulta útil si alguna vez se encuentra en una situación en la que debe rotar las credenciales, como cuando un empleado deja la empresa. Se recomienda utilizar información sobre el último uso de acceso de IAM para rotar y eliminar las claves de acceso de manera segura. Para obtener más información, consulte Rotación de las claves de acceso .

Hay casos de uso específicos que requieren credenciales de larga duración con usuarios de IAM en AWS. Estos son algunos de los casos de uso:

  • Casos de uso programáticos en los que no se pueden utilizar roles de IAM: puede ejecutar código desde una ubicación que necesite acceder a AWS. En algunas situaciones, no se pueden utilizar roles de IAM para proporcionar credenciales temporales; por ejemplo, en el caso de los complementos de WordPress. En esas situaciones, utilice claves de acceso de larga duración plazo de usuarios de IAM para que el código se autentique en AWS.

  • Clientes de AWS de terceros: si utiliza herramientas que no admiten el acceso con IAM Identity Center, como clientes de AWS de terceros o proveedores que no están alojados en AWS, utilice claves de acceso de larga duración de usuarios de IAM.

  • Acceso a AWS CodeCommit: si utiliza CodeCommit para almacenar el código, puede emplea un usuario de IAM con claves SSH o credenciales específicas del servicio para que CodeCommit se autentique en los repositorios. Se recomienda hacer esto además de utilizar un usuario de IAM Identity Center para la autenticación normal. Los usuarios de IAM Identity Center son las personas de su fuerza laboral que necesitan acceso a sus cuentas de AWS o aplicaciones en la nube. Para dar acceso a los usuarios a los repositorios de CodeCommit sin configurar usuarios de IAM, puede configurar la utilidad git-remote-codecommit. Para obtener más información sobre IAM y CodeCommit, consulte Uso de IAM con CodeCommit: credenciales de Git, claves SSH y claves de acceso de AWS. Para obtener más información sobre cómo configurar la utilidad git-remote-codecommit, consulte Conexión a repositorios de AWS CodeCommit con credenciales rotativas en la Guía del usuario de AWS CodeCommit.

  • Acceso a Amazon Keyspaces (para Apache Cassandra): en una situación en la que no pueda utilizar usuarios de IAM Identity Center, como, por ejemplo, para probar la compatibilidad con Cassandra, puede utilizar un usuario de IAM con credenciales específicas del servicio para realizar la autenticación en Amazon Keyspaces. Los usuarios de IAM Identity Center son las personas de su fuerza laboral que necesitan acceso a sus cuentas de AWS o aplicaciones en la nube. También puede conectarse a Amazon Keyspaces con credenciales temporales. Para obtener más información, consulte Uso de credenciales temporales para conectarse a Amazon Keyspaces mediante un rol de IAM y el complemento SigV4 en la Guía para desarrolladores de Amazon Keyspaces (para Apache Cassandra).

Proteger las credenciales de usuario raíz y no utilizarlas para las tareas cotidianas

Cuando se crea un Cuenta de AWS, se establece un nombre de usuario raíz y una contraseña para iniciar sesión en laAWS Management Console. Proteja sus credenciales de usuario raíz del mismo modo que protegería otra información personal confidencial. Puede hacerlo configurando MFA para las credenciales de usuario raíz. No se recomienda generar claves de acceso para el usuario raíz, ya que permiten obtener acceso completo a todos los recursos de todos los Servicios de AWS, incluida la información de facturación. No utilice el usuario raíz para las tareas cotidianas. Utilice el usuario raíz para efectuar las tareas que solo pueda realizar el usuario raíz. Para ver la lista completa de esas tareas, consulte Tareas que requieren credenciales de usuario raíz en la Referencia general de AWS. Para obtener más información, consulte Prácticas recomendadas para proteger el usuario raíz de la cuenta en la Guía del usuario de AWS Account Management.

Aplicar permisos de privilegios mínimos

Cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para llevar a cabo una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como permisos de privilegios mínimos. Puede empezar con permisos amplios mientras va conociendo los permisos que se necesitan para su carga de trabajo o caso de uso. A medida que su caso de uso vaya madurando, puede ir reduciendo los permisos que concede para alcanzar el objetivo de privilegio mínimo. Para obtener más información sobre cómo utilizar IAM para aplicar permisos, consulte Políticas y permisos en IAM.

Introducción a las políticas administradas de AWS y el objetivo de los permisos de privilegios mínimos

Para empezar a conceder permisos a los usuarios y las cargas de trabajo, utilice las políticas administradas de AWS, que conceden permisos para muchos casos de uso habituales. Están disponibles en la Cuenta de AWS. Tenga presente que es posible que las políticas administradas de AWS no concedan permisos de privilegios mínimos para sus casos de uso concretos, ya que están disponibles para que las utilicen todos los clientes de AWS. En consecuencia, se recomienda reducir aún más los permisos definiendo políticas administradas por el cliente específicas para sus casos de uso. Para obtener más información, consulte Políticas administradas por AWS . Para obtener más información acerca de las políticas administradas AWS que están diseñadas para funciones de trabajo específicas, consulte Managed Policies de AWS para funciones de trabajo.

Utilizar IAM Access Analyzer para generar políticas de privilegios mínimos basadas en la actividad de acceso

Para conceder solo los permisos necesarios para llevar a cabo una tarea, puede generar políticas que se basen en la actividad de acceso que haya iniciado sesión en AWS CloudTrail. IAM Access Analyzer analiza los servicios y las acciones que utilizan los roles de IAM, y luego genera una política detallada que se puede emplear. Después de probar cada política generada, puede implementarla en el entorno de producción. Eso garantiza que solo se concedan los permisos necesarios a las cargas de trabajo. Para obtener más información acerca de la generación de políticas, consulte Generación de políticas de IAM Access Analyzer.

Revisar y eliminar periódicamente usuarios, roles, permisos, políticas y credenciales no utilizados

Es posible que tenga usuarios, roles, permisos, políticas o credenciales de IAM que ya no necesite en la Cuenta de AWS. IAM ofrece información sobre último acceso para ayudar a identificar usuarios, roles, permisos, políticas y credenciales que ya no se necesitan y poder eliminarlos. Esto ayuda a reducir la cantidad de usuarios, roles, permisos, políticas y credenciales que hay que monitorear. También puede utilizar esta información para ajustar las políticas de IAM de modo que cumplan mejor con el objetivo de permisos de privilegios mínimos. Para obtener más información, consulte Perfeccionar los permisos con la información sobre los últimos accesos en AWS .

Utilizar condiciones en las políticas de IAM para restringir aún más el acceso

Puede especificar las condiciones en las que se aplica una instrucción de política. De esa forma, puede conceder acceso a acciones y recursos, pero solo si la solicitud de acceso cumple con determinadas condiciones. Por ejemplo, puede escribir una condición de política para especificar que todas las solicitudes deben enviarse utilizando SSL. También puede utilizar condiciones para conceder acceso a acciones de servicios, pero solo si se emplean a través de un determinado Servicio de AWS, como, por ejemplo, AWS CloudFormation. Para obtener más información, consulte Elementos de política JSON de IAM: Condition .

Verificar el acceso público y entre cuentas a los recursos con IAM Access Analyzer

Antes de conceder permisos de acceso público o entre cuentas en AWS, se recomienda verificar si tal acceso es necesario. Puede utilizar IAM Access Analyzer como ayuda para obtener una vista previa y analizar el acceso público y entre cuentas de los tipos de recursos admitidos. Para ello, consulte los hallazgos que genera IAM Access Analyzer. Estos hallazgos ayudan a verificar que los controles de acceso a los recursos conceden el acceso que se espera. Además, a medida que actualice los permisos públicos y entre cuentas, puede verificar el efecto de los cambios antes de implementar nuevos controles de acceso en los recursos. IAM Access Analyzer también monitorea continuamente los tipos de recursos admitidos y genera un hallazgo para aquellos recursos que permitan el acceso público o entre cuentas. Para obtener más información, consulte Vista previa del acceso con las API de IAM Access Analyzer.

Utilizar IAM Access Analyzer para validar las políticas de IAM con objeto de garantizar la seguridad y funcionalidad de los permisos

Valide las políticas que cree para asegurarse de que respetan el lenguaje de las políticas de IAM (JSON) y las prácticas recomendadas para IAM. Puede validar las políticas mediante la validación de políticas de IAM Access Analyzer. IAM Access Analyzer proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. A medida que se crean nuevas políticas o se editan políticas existentes en la consola, IAM Access Analyzer proporciona recomendaciones para ayudar a ajustarlas y validarlas antes de guardarlas. Además, se recomienda revisar y validar todas las políticas existentes. Para obtener más información, consulte Validación de políticas de IAM Access Analyzer. Para obtener más información sobre las verificaciones de políticas que proporciona IAM Access Analyzer, consulte Referencia de la verificación de políticas de IAM Access Analyzer.

Establecer barreras de protección de permisos en varias cuentas

A medida que vaya ampliando las cargas de trabajo, sepárelas utilizando varias cuentas que se gestionen con AWS Organizations. Se recomienda utilizar políticas de control de servicio (SCP) de Organizations para establecer barreras de protección de permisos con objeto de controlar el acceso de todos los usuarios y roles de IAM en las cuentas. Las SCP son un tipo de política de organización que se puede utilizar para administrar los permisos en la organización en el nivel de la organización, unidad organizativa o cuenta de AWS. Las barreras de protección de permisos que se establecen se aplican a todos los usuarios y roles de las cuentas relacionadas. No obstante, las SCP por sí solas no bastan para conceder permisos a las cuentas de la organización. Con ese fin, el administrador debe adjuntar políticas basadas en identidad o en recursos a los usuarios de IAM, los roles de IAM o los recursos de las cuentas. Para obtener más información, consulte AWS Organizations, cuentas y barreras de protección de IAM.

Utilizar límites de permisos para delegar la administración de permisos de una cuenta

En algunas situaciones, es posible que desee delegar la administración de permisos de una cuenta en otras personas. Por ejemplo, puede dejar que los desarrolladores creen y administren roles para sus cargas de trabajo. Cuando delegue permisos en otras personas, utilice límites de permisos para establecer los permisos máximos que delega. Un límite de permisos es una característica avanzada para utilizar una política administrada con el fin de establecer los permisos máximos que una política basada en identidad puede conceder a un rol de IAM. Un límite de permisos no concede permisos por sí mismo. Para obtener más información, consulte Límites de permisos para las entidades de IAM .