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

Prácticas recomendadas de seguridad en IAM

Para ayudar a proteger sus recursos de AWS, siga estas recomendaciones para el servicio de AWS Identity and Access Management (IAM).

Proteger las claves de acceso de usuario raíz de Cuenta de AWS

Puede utilizar una clave de acceso (un ID de clave de acceso y una clave de acceso secreta) para realizar solicitudes mediante programación a AWS. Sin embargo, no utilizar su clave de acceso de usuario raíz de Cuenta de AWS. La clave de acceso para su usuario raíz Cuenta de AWS concede permiso para obtener acceso completo a todos los recursos para todos los servicios de AWS, incluida la información de facturación. No puede reducir los permisos asociados a la clave de acceso de su usuario raíz de Cuenta de AWS.

Por lo tanto, proteja la clave de acceso de su usuario raíz al igual que lo haría con los números de tarjetas de crédito u otros datos confidenciales. A continuación se muestran algunas formas de hacerlo:

  • Recomendamos encarecidamente que no utilice el usuario raíz en sus tareas cotidianas, ni siquiera en las tareas administrativas. En su lugar, utilice las credenciales de usuario raíz solo para crear un usuario administrador de IAM. A continuación, guarde las credenciales del usuario raíz en un lugar seguro y utilícelas tan solo para algunas tareas de administración de cuentas y servicios. Para las tareas cotidianas, no utilice el usuario administrador de IAM. En su lugar, utilice roles para delegar permisos.

  • Si ya tiene una clave de acceso para su usuario raíz de Cuenta de AWS, elimínela. Si debe conservarla, cambie la clave de acceso de forma periódica. Para eliminar o cambiar sus claves de acceso , diríjase a la página Mis credenciales de seguridad en la AWS Management Console e inicie sesión con la dirección de correo electrónico y contraseña de su cuenta. Puede administrar sus claves de acceso en la sección Access keys (Claves de acceso). Para obtener más información acerca de la rotación de las claves de acceso, consulte Rotación de las claves de acceso.

  • Nunca comparta las claves de acceso ni la contraseña de su usuario raíz Cuenta de AWS con otras personas. Las secciones restantes de este documento tratan varias maneras de evitar tener que compartir sus credenciales de usuario raíz de Cuenta de AWS con otros usuarios. También explican cómo evitar tener que integrarlas en una aplicación.

  • Utilice una contraseña segura para proteger el acceso de nivel de cuenta a la AWS Management Console. Para obtener información sobre la gestión de su usuario raíz de Cuenta de AWS, consulte Cambio de la contraseña de usuario raíz de la cuenta de AWS.

  • Active la autenticación multifactor (MFA) de AWS en su cuenta de usuario raíz de Cuenta de AWS. Para obtener más información, consulte Uso de autenticación multifactor (MFA) en AWS.

Utilizar roles para delegar permisos

Puede asumir un rol de IAM mediante operaciones de AWS Security Token Service o puede cambiar a un rol en la AWS Management Console para recibir una sesión de rol de credenciales temporales. Esto es más seguro que usar su contraseña a largo plazo o las credenciales de clave de acceso. Una sesión tiene una duración limitada, lo que reduce el riesgo si sus credenciales se ven comprometidas.

Como práctica recomendada, utilice las credenciales temporales del rol de IAM a fin de acceder solo a los recursos que necesita para realizar su trabajo (otorgar privilegios mínimos). Configure AWS Single Sign-On para permitir que los usuarios de su origen de identidad externo accedan a los recursos de AWS de sus cuentas. En una sola cuenta, puede configurar un rol de IAM a fin de permitir que identidades desde un origen de SAML o de una identidad web asuman el rol.

Para los usuarios de IAM, cree roles independientes destinados a tareas de trabajo específicas y asuma esos roles para esas tareas. No utilice a su usuario administrador de IAM para su trabajo diario.

Para obtener más información acerca de la terminología de roles, consulte Términos y conceptos de roles.

Conceder privilegios mínimos

Al crear políticas de IAM, siga los consejos de seguridad estándar de concesión de privilegios mínimos o garantizando solo los permisos necesarios para realizar una tarea. Determine las tareas que tienen que realizar los usuarios (y las funciones) y elabore políticas que les permitan realizar solo esas tareas.

Comience con un conjunto mínimo de permisos y conceda permisos adicionales según sea necesario. Por lo general, es más seguro que comenzar con permisos que son demasiado tolerantes e intentar hacerlos más estrictos más adelante.

Como alternativa a los privilegios mínimos, puede utilizar las políticas administradas de AWS o las políticas con comodín de permisos de * para empezar a usar políticas. Considere el riesgo de seguridad de conceder a sus entidades principales más permisos de los que necesitan para realizar su trabajo. Supervise esas entidades principales para saber qué permisos están utilizando. A continuación, escriba políticas de privilegios mínimos.

IAM proporciona varias opciones para ayudarle a refinar los permisos que concede.

  • Comprender las agrupaciones a nivel de acceso - Puede utilizar las agrupaciones de nivel de acceso para conocer el nivel de acceso que concede una política. Las acciones de política se clasifican como List, Read, Write, Permissions management o Tagging. Por ejemplo, puede elegir acciones de los niveles de acceso List y Read para a conceder acceso de solo lectura a los usuarios. Para obtener información sobre cómo utilizar los resúmenes de políticas para entender los permisos de nivel de acceso, consulte Utilizar niveles de acceso para revisar permisos de IAM.

  • Valide las políticas: puede realizar la validación de políticas mediante IAM Access Analyzer cuando cree y edite políticas JSON. Le recomendamos que revise y valide todas las políticas existentes. IAM Access Analyzer proporciona más de 100 verificaciones de políticas para validar sus políticas. Genera advertencias de seguridad cuando una declaración de su política permite el acceso que consideramos excesivamente permisivo. Puede utilizar las recomendaciones procesables que se proporcionan a través de las advertencias de seguridad mientras trabaja para conceder privilegios mínimos. Para obtener más información sobre las verificaciones de políticas proporcionadas por IAM Access Analyzer, consulte Validación de políticas de IAM Access Analyzer.

  • Generar una política basada en la actividad de acceso - Para ayudarle a refinar los permisos que concede, puede generar una política de IAM que esté basada en la actividad de acceso de una entidad de IAM (usuario o rol). El analizador de acceso de IAM revisa los registros de AWS CloudTrail y genera una plantilla de política que contiene los permisos que ha utilizado la entidad en el intervalo de tiempo especificado. Puede utilizar la plantilla para crear una política administrada con permisos detallados y, a continuación, adjuntarla a la entidad de IAM. De esta forma, solo concede los permisos que el usuario o rol necesita para interactuar con los recursos de AWS para su caso de uso específico. Para obtener más información, consulte Generar políticas basadas en la actividad de acceso.

  • Usar la información de acceso reciente — Otra característica que puede ayudarle con menos privilegios es Información de acceso reciente. Encontrará esta información en la pestaña Asesor de acceso de la página de detalles de la consola de IAM de un usuario, grupo, rol o política de IAM. La información del último acceso también incluye información sobre algunas acciones a las que se accedió por última vez para algunos servicios como Amazon EC2, IAM, Lambda y Amazon S3. Si inicia sesión con las credenciales de cuenta administración de AWS Organizations, podrá ver la información de acceso reciente del servicio en la sección AWS Organizations de la consola de IAM. También puede utilizar AWS CLI o la API de AWS para recuperar un informe con información de acceso reciente de las entidades o políticas de IAM o de Organizations. Puede utilizar esta información para identificar permisos innecesarios, de modo que pueda perfeccionar sus políticas de IAM o de Organizations para que cumplan mejor con el principio de privilegio mínimo. Para obtener más información, consulte Perfeccionar los permisos con la información sobre los últimos accesos en AWS.

  • Revisar eventos de cuenta en AWS CloudTrail: para reducir aún más los permisos, puede observar los eventos de su cuenta en el Historial de eventos de AWS CloudTrail. Los registros de eventos de CloudTrail de incluyen información detallada que usted puede utilizar para reducir los permisos de la política. Los registros solo incluyen las acciones y los recursos que sus entidades de IAM necesitan. Para obtener más información, consulte Ver eventos de CloudTrail en la consola de CloudTrail en la Guía del usuario de AWS CloudTrail.

Para obtener más información, consulte los siguientes:

Introducción sobre el uso de permisos con políticas administradas de AWS

Recomendamos utilizar políticas que otorguen el menor privilegio, o que concedan solo los permisos necesarios para realizar una tarea. La forma más segura de conceder menos privilegios es escribir una política personalizada que tenga solamente los permisos necesarios para su equipo. Debe crear un proceso para permitir que su equipo solicite más permisos cuando sea necesario. Se necesita tiempo y experiencia para crear políticas de IAM administradas por el cliente que proporcionen a su equipo solo los permisos necesarios.

Para comenzar a agregar permisos a sus identidades de IAM (usuarios, grupos de usuarios y roles), puede utilizar AWSPolíticas administradas por . Las políticas administradas de AWS cubren casos de uso comunes y están disponibles en su cuenta de AWS. las políticas administradas de AWS no otorgan permisos de privilegios mínimos. Considere el riesgo de seguridad de conceder a sus entidades principales más permisos de los que necesitan para realizar su trabajo.

Puede adjuntar políticas administradas de AWS, incluidas las funciones de trabajo, a cualquier identidad de IAM. Para cambiar a permisos de privilegios mínimos, puede ejecutar AWS Identity and Access Management Access Analyzer para supervisar las entidades principales con las políticas administradas de AWS. Después de saber qué permisos están utilizando, puede escribir una política personalizada o generar una política con solo los permisos necesarios para su equipo. Esto es menos seguro, pero proporciona más flexibilidad a medida que aprende cómo usa su equipo AWS.

AWSLas políticas administradas por se han concebido para ofrecer permisos para muchos casos de uso comunes. 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 AWSManaged Policies de para funciones de trabajo.

Validar sus políticas

Es una práctica recomendada validar las políticas que cree. Puede realizar la validación de políticas al crear y editar políticas JSON. IAM identifica cualquier error de sintaxis JSON, mientras que IAM Access Analyzer proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudarle a crear políticas seguras y funcionales. Le recomendamos que revise y valide todas las políticas existentes. Para obtener más información acerca la validación de políticas, consulte Validación de políticas de IAM. Para obtener más información sobre las verificaciones de políticas proporcionadas por IAM Access Analyzer, consulte Validación de políticas de IAM Access Analyzer.

Utilizar políticas administradas por el cliente en lugar de las políticas en línea

Para políticas personalizadas, le recomendamos que utilice políticas administradas en lugar de políticas insertadas. Una ventaja principal del uso de estas políticas es que puede ver todas sus políticas administradas en un único lugar en la consola. También puede ver esta información con una sola operación de la AWS CLI o la API de AWS. Las políticas en línea son políticas que existen solo en una identidad de IAM (usuario, grupo de usuarios o rol). Las políticas administradas son recursos de IAM independientes que puede asociar a varias identidades. Para obtener más información, consulte Políticas administradas y políticas insertadas.

En algunas circunstancias, recomendamos la elección de políticas en línea frente a políticas administradas. Para obtener más información, consulte Elegir entre políticas administradas y políticas insertadas.

Puede convertir políticas en línea en políticas administradas. Para obtener más información, consulte Cómo convertir una política en línea en una política administrada.

Utilizar niveles de acceso para revisar permisos de IAM

Para mejorar la seguridad de su cuenta de AWS, debe revisar y monitorear periódicamente cada una de sus políticas de IAM. Asegúrese de que sus políticas concedan el privilegio mínimo que es necesario para realizar únicamente las acciones necesarias.

Al revisar una política, puede ver el resumen de política que incluye un resumen del nivel de acceso de cada servicio de dicha política. AWS categoriza cada acción de servicio en uno de cinco niveles de acceso en función de lo que haga cada acción: List, Read, Write, Permissions management o Tagging. Puede utilizar estos niveles de acceso para determinar qué acciones deben incluirse en las políticas.

Por ejemplo, en el servicio de Amazon S3, es posible que desee permitir que un gran grupo de usuarios obtengan acceso a las acciones List y Read. Estas acciones permiten a los usuarios enumerar los buckets y obtener objetos en Amazon S3. Sin embargo, debe permitir que solo un pequeño grupo de usuarios obtengan acceso a las acciones Write de Amazon S3 para eliminar buckets o colocar objetos en un bucket de S3. Además, debe reducir los permisos para permitir que solo los administradores obtengan acceso a las acciones Permissions management de Amazon S3. De este modo se garantiza que solo un número limitado de personas pueden administrar las políticas de buckets en Amazon S3. Esto es especialmente importante para las acciones Permissions management de los servicios IAM y AWS Organizations. Permitir las acciones de Tagging concede a un usuario permiso para realizar acciones que solo modifican las etiquetas de un recurso. Sin embargo, algunas acciones de Write como, por ejemplo CreateRole, permiten el etiquetado de un recurso al crear el recurso o modificar otros atributos de ese recurso. Por lo tanto, la denegación del acceso a acciones de Tagging no impide que un usuario etiquete recursos. Para obtener más información y ejemplos de la clasificación del nivel de acceso, consulte Descripción de los resúmenes de nivel de acceso en los resúmenes de políticas.

Para ver la clasificación de nivel de acceso que se asigna a cada acción de un servicio, consulte Acciones, Recursos y Claves de condición para servicios de AWS.

Para ver los niveles de acceso para una política, primero debe encontrar el resumen de la política. El resumen de la política se incluye en la página Policies (Políticas) de las políticas administradas y en la página Users (Usuarios) de las políticas que están asociadas a un usuario. Para obtener más información, consulte Resumen de política (lista de servicios).

En un resumen de la política, la columna Nivel de acceso muestra que la política ofrece acceso Completo o Limitado a uno o más de los cuatro niveles de acceso de AWS del servicio. También podría mostrar que la política ofrece Full access (Acceso completo) a todas las acciones del servicio. Puede utilizar la información de esta columna Access level (Nivel de acceso) para conocer el nivel de acceso que la política ofrece. A continuación puede tomar las medidas necesarias para que su cuenta de AWS sea más segura. Para obtener más información y ejemplos de la clasificación del nivel de acceso, consulte Descripción de los resúmenes de nivel de acceso en los resúmenes de políticas.

Configurar una política de contraseña segura para los usuarios

Si permite a los usuarios cambiar sus propias contraseñas, cree una política de contraseñas personalizada que les exija crear contraseñas seguras y cambiarlas periódicamente. En la página Configuración de la cuenta de la consola de IAM, puede crear una política de contraseñas personalizada para su cuenta. Actualice la política de contraseñas predeterminada de AWS para definir los requisitos de las contraseñas, como la longitud mínima, si requieren caracteres no alfabéticos y la frecuencia con la que deben cambiarse. Para obtener más información, consulte Configuración de una política de contraseñas de la cuenta para usuarios de IAM.

Habilitar MFA

Para mayor seguridad, le recomendamos exigir la autenticación multifactor (MFA) para todos los usuarios de su cuenta. Con MFA, los usuarios tienen un dispositivo que genera una respuesta a un reto de autenticación. Tanto las credenciales del usuario como la respuesta generada por el dispositivo son necesarios para llevar a cabo el proceso de inicio de sesión. Si la contraseña o las claves de acceso de un usuario se ven comprometidas, los recursos de su cuenta siguen estando seguros debido al requisito de autenticación adicional.

La respuesta se genera de una de las siguientes formas:

  • Los dispositivos MFA virtuales y físicos generan un código que ve en la aplicación o el dispositivo y que, a continuación, escribe en la pantalla de inicio de sesión.

  • La llave de seguridad U2F genera una respuesta cuando pulsa en el dispositivo. El usuario no introduce manualmente un código en la pantalla de inicio de sesión.

Para los usuarios de IAM con privilegios que pueden obtener acceso a recursos confidenciales u operaciones de API, recomendamos utilizar dispositivos U2F o MFA físicos.

Para obtener más información acerca de MFA, consulte Uso de autenticación multifactor (MFA) en AWS.

Para obtener información sobre cómo configurar el acceso mediante API protegida por MFA para claves de acceso, consulte Configuración del acceso a una API protegido por MFA.

Uso de roles para aplicaciones que se ejecuten en instancias de Amazon EC2

Las aplicaciones que se ejecutan en una instancia de Amazon EC2 necesitan credenciales para obtener acceso a otros servicios de AWS. Para proporcionar credenciales a la aplicación de una forma segura, utilice los roles de IAM. Un rol es una entidad que tiene su propio conjunto de permisos, pero que no es un usuario ni un grupo de usuarios. Los roles tampoco tienen su propio conjunto permanente de credenciales al igual que los usuarios de IAM. En el caso de Amazon EC2, IAM proporciona dinámicamente credenciales temporales a la instancia EC2 y estas credenciales cambian automáticamente.

Si lanza una instancia EC2, puede especificar un rol para la instancia como parámetro de lanzamiento. Las aplicaciones que se ejecutan en la instancia EC2 pueden utilizar las credenciales del rol cuando obtengan acceso a los recursos de AWS. Los permisos del rol determinan lo que puede hacer la aplicación.

Para obtener más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias Amazon EC2.

No compartir las claves de acceso

Las claves de acceso ofrecen acceso mediante programación a AWS. No incruste claves de acceso dentro de código sin cifrar ni comparta estas credenciales de seguridad entre usuarios en su cuenta de AWS. Para las aplicaciones que necesitan acceso a AWS, configure el programa para recuperar las credenciales de seguridad temporales utilizando un rol de IAM. Para permitir a los usuarios acceso individual mediante programación, cree un usuario de IAM con claves de acceso personal.

Para obtener más información, consulte Cambio a un rol de IAM (API de AWS) y Administración de las claves de acceso de los usuarios de IAM.

Cambiar las credenciales de forma periódica

Cambie sus propias contraseñas y claves de acceso de forma periódica y asegúrese de que todos los usuarios de IAM de su cuenta también lo hagan. De esta forma, si una contraseña o clave de acceso está expuesta a riesgos sin su conocimiento, puede limitar el tiempo en el que se pueden utilizar las credenciales para obtener acceso a sus recursos. Puede aplicar una política de contraseñas personalizada a su cuenta para exigir a todos los usuarios de IAM que cambien sus contraseñas de la AWS Management Console. También puede elegir la frecuencia con la que esta operación debe realizarse.

Para obtener más información acerca de cómo configurar una política de contraseñas personalizada en su cuenta, consulte Configuración de una política de contraseñas de la cuenta para usuarios de IAM.

Para obtener más información sobre cómo cambiar las claves de acceso de los usuarios de IAM, consulte Rotación de las claves de acceso.

Eliminar credenciales innecesarias

Elimine credenciales de usuario de IAM (contraseñas y claves de acceso) que no sean necesarias. Por ejemplo, si ha creado un usuario de IAM para una aplicación que no utiliza la consola, el usuario de IAM no necesita una contraseña. Del mismo modo, si un usuario solo utiliza la consola, elimine sus claves de acceso. Las contraseñas y claves de acceso que no se han utilizado hace poco probablemente deban eliminarse. Puede encontrar las contraseñas y claves de acceso sin utilizar con la consola, con la CLI o la API o si descarga el informe de credenciales.

Para obtener más información sobre cómo encontrar credenciales de usuario de IAM que no se han usado recientemente, consulte Búsqueda de credenciales no utilizadas.

Para obtener más información sobre cómo eliminar contraseñas de un usuario de IAM, consulte Administración de las contraseñas de los usuarios de IAM.

Para obtener más información sobre cómo desactivar o eliminar claves de acceso de un usuario de IAM, consulte Administración de las claves de acceso de los usuarios de IAM.

Para obtener más información sobre los informes de credenciales de IAM, consulte Obtención de informes de credenciales para la cuenta de AWS.

Utilizar condiciones de política para mayor seguridad

En la medida en que sea práctico, defina las condiciones en las que sus políticas de IAM permitan el acceso a un recurso. Por ejemplo, puede escribir condiciones para especificar un rango de direcciones IP permitidas desde el que debe proceder una solicitud. También puede especificar que una solicitud solo se permita dentro de un intervalo de fechas o de tiempo especificados. También puede definir condiciones que requieren el uso de SSL o MFA (Multi-Factor Authentication). Por ejemplo, puede exigir que un usuario se autentique con un dispositivo MFA para poder finalizar una instancia de Amazon EC2.

Para obtener más información, consulte Elementos de política JSON de IAM: Condition en Elementos de referencia de política de IAM.

Monitorice la actividad de su cuenta de AWS

Puede utilizar características de registro de AWS para determinar las acciones que los usuarios han realizado en su cuenta y los recursos que se han utilizado. Los archivos de registro muestran la hora y la fecha de las acciones, la IP de origen de una acción, las acciones que no se pudieron hacer debido a permisos inadecuados, etc.

Las características de registro están disponibles en los siguientes servicios de AWS:

  • Amazon CloudFront: registra las solicitudes de usuario que recibe CloudFront. Para obtener más información, consulte Logs de acceso en la Guía para desarrolladores de Amazon CloudFront.

  • AWS CloudTrail – Permite registrar llamadas a la API de AWS y eventos relacionados realizados por una cuenta de AWS o en su nombre. Para obtener más información, consulte la Guía del usuario de AWS CloudTrail.

  • Amazon CloudWatch: se utiliza para monitorear los recursos de AWS y las aplicaciones que ejecuta en AWS. Puede establecer alarmas en CloudWatch en función de las métricas que defina. Para obtener más información, consulte la Guía del usuario de Amazon CloudWatch.

  • AWS Config - Ofrece información histórica detallada sobre la configuración de sus recursos de AWS, incluidos los usuarios, grupos de usuarios, roles y políticas de IAM. Por ejemplo, puede utilizar AWS Config para determinar los permisos que pertenecían a un usuario o grupo de usuarios en un determinado momento. Para obtener más información, consulte la Guía para desarrolladores de AWS Config.

  • Amazon Simple Storage Service (Amazon S3)Permite registrar las solicitudes de acceso a sus buckets de Amazon S3. Para obtener más información, consulte el tema sobre registro de acceso al servidor en la Guía del usuario de Amazon Simple Storage Service.