AWS Identity and Access Management
Guía del usuario

IAM Prácticas recomendadas

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 la 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 use su clave de acceso de usuario Usuario de la cuenta raíz de AWS. La clave de acceso para su Usuario de la cuenta raíz 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 de la cuenta raíz 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:

  • Si aún no tiene una clave de acceso para su Usuario de la cuenta raíz de AWS, no cree una a no ser que sea absolutamente necesario. En cambio, utilice la dirección de correo electrónico y la contraseña de su cuenta para iniciar sesión en la Consola de administración de AWS y cree un usuario de IAM para usted que tenga privilegios administrativos.

  • Si ya tiene una clave de acceso para su Usuario de la cuenta raíz de AWS, elimínela. Si debe conservarla, cambie la clave de acceso de forma periódica. Para eliminar o cambiar sus claves de acceso usuario raíz, diríjase a la página My Security Credentials (Mis credenciales de seguridad) en la Consola de administración de AWS 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 de la cuenta raíz de AWS con otras personas. Las demás secciones de este documento hablan de diversas formas de evitar tener que compartir sus credenciales de cuenta Usuario de la cuenta raíz de AWS con otros usuarios y para evitar tener que incrustar en una aplicación.

  • Utilice una contraseña segura para proteger el acceso de nivel de cuenta a la Consola de administración de AWS. Para obtener información sobre la administración de la contraseña del Usuario de la cuenta raíz 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 de la cuenta raíz de AWS. Para obtener más información, consulte Uso de Multi-Factor Authentication (MFA) en AWS.

Crear usuarios de IAM individuales

No utilice sus credenciales de Usuario de la cuenta raíz de AWS para acceder a AWS y no ofrezca sus credenciales a nadie. En cambio, cree usuarios individuales para aquellos que necesiten obtener acceso a su cuenta de AWS. Cree un usuario de IAM para usted, concédale permisos administrativos y use ese usuario de IAM para todos sus trabajos. Para obtener información acerca de cómo hacerlo, consulte Creación del primer grupo y usuario administrador de IAM.

Si crea un usuario de IAM para cada persona que tiene acceso a la cuenta, puede asignar a cada usuario de IAM un conjunto único de credenciales de seguridad. También puede conceder permisos distintos a cada usuario de IAM. Si fuera necesario, puede cambiar o revocar permisos de usuario de IAM en cualquier momento. (Si da sus credenciales de usuario usuario raíz puede ser difícil de revocar y es imposible restringir sus permisos).

nota

Antes de establecer permisos para usuarios de IAM individuales, consulte el siguiente punto acerca de los grupos.

Utilizar grupos para asignar permisos a usuarios de IAM

En lugar de definir permisos para usuarios de IAM individuales, suele ser más práctico crear grupos relacionados con funciones (administradores, desarrolladores, contables, etc.). A continuación, defina los permisos pertinentes para cada grupo. Por último, asigne usuarios de IAM a dichos grupos. Todos los usuarios de un grupo de IAM heredan los permisos asignados al grupo. De esta forma, puede realizar cambios para todos los usuarios de un grupo en un único lugar. Dado que las personas cambian de puesto en la compañía, puede simplemente cambiar el grupo de IAM al que pertenece el usuario de IAM.

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

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 severos más adelante.

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.

Una característica que puede ayudarle con esto es datos de los últimos servicios a los que se ha accedido. Vea estos datos en la pestaña Access Advisor en la página de detalles de la consola de IAM de un usuario, grupo, función o política de IAM. Si inicia sesión con las credenciales de la cuenta maestra de AWS Organizations, puede ver estos datos en la sección AWS Organizations de la consola IAM. También puede utilizar la AWS CLI o la API de AWS para recuperar un informe para datos de los últimos servicios a los que se ha accedido de las entidades o políticas de IAM o Organizaciones. Puede utilizar esta información para identificar permisos innecesarios, de modo que pueda perfeccionar sus políticas de IAM u organizaciones para que cumplan mejor con el principio de privilegio mínimo. Para obtener más información, consulte Refinado de permisos con datos de los últimos servicios a los que se ha accedido.

Para reducir aún más los permisos, puede observar los eventos de su cuenta en Event history (Historial de eventos) en AWS CloudTrail. Los registros de eventos de CloudTrail incluyen información detallada que 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 temas:

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

Proporcionar a los empleados solo los permisos que necesitan requiere tiempo y conocimientos detallados de las políticas de IAM. Los empleados necesitan tiempo para saber qué servicios de AWS desean o necesitan utilizar. Los administradores necesitan tiempo para conocer y probar IAM.

Para comenzar rápidamente, puede utilizar las políticas administradas de AWS para proporcionar a los empleados los permisos necesarios para comenzar. Estas políticas ya están disponibles en su cuenta y las mantiene y actualiza AWS. Para obtener más información sobre las políticas administradas por AWS, consulte Políticas administradas de AWS.

Las políticas administradas por AWS se han concebido para ofrecer permisos para muchos casos de uso comunes. Las políticas administradas de AWS de acceso completo como AmazonDynamoDBFullAccess y IAMFullAccess definen los permisos para los administradores de servicios otorgando acceso completo a un servicio. Las políticas administradas de AWS de usuarios avanzados como AWSCodeCommitPowerUser y AWSKeyManagementServicePowerUser proporcionan varios niveles de acceso a servicios de AWS, sin permitir permisos de administración de permisos. Las políticas administradas de AWS de acceso parcial como AmazonMobileAnalyticsWriteOnlyAccess y AmazonEC2ReadOnlyAccess proporcionan niveles de acceso específicos a los servicios de AWS. Con las políticas administradas por AWS podrá asignar de forma más sencilla los permisos adecuados a los usuarios, grupos y roles que si tuviera que escribir políticas.

Las políticas administradas por AWS de funciones pueden abarcar varios servicios y estar en consonancia con las funciones comunes del sector de TI. Para ver una lista y descripciones de políticas de funciones, consulte Funciones de trabajos de AWS Managed Policies.

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 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.

Si tiene políticas en línea en su cuenta, puede convertirlas en políticas administradas. Para ello, copie la política a una nueva política administrada, asocie la nueva política a la identidad que tiene la política insertada. A continuación, elimine la política insertada. Para ello, puede utilizar las instrucciones que se incluyen a continuación.

Para convertir una política en línea en una política administrada

  1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Groups (Grupos), Users (Usuarios) o Roles.

  3. En la lista, elija el nombre del grupo, usuario o rol que tiene la política que desea quitar.

  4. Elija la pestaña Permissions. Si elige Groups (Grupos), amplíe la sección Inline Policies (Políticas insertadas) de ser necesario.

  5. Para grupos, elija Show Policy (Mostrar política) al lado de la política en línea que desea eliminar. Para usuarios y roles, elija Show n more (Mostrar n más), si es necesario y, a continuación, elija la flecha situada junto a la política en línea que desea eliminar.

  6. Copie el documento de política de JSON de la política.

  7. En el panel de navegación, seleccione Policies.

  8. Elija Crear policy (Crear política) y, a continuación, elija la pestaña JSON.

  9. Reemplace el texto existente con el texto de la política de JSON y, a continuación, elija Review policy (Revisar política).

  10. Escriba un nombre para la política y elija Create policy (Crear política).

  11. En el panel de navegación, seleccione Groups (Grupos), Users (Usuarios) o Roles y vuelva a seleccionar el nombre del grupo, usuario o rol que tenga la política que desea quitar.

  12. Para grupos, seleccione Attach Policy (Asociar política). Para usuarios y roles, elija Add permissions (Agregar permisos).

  13. para grupos, seleccione la casilla que se encuentra junto al nombre de la nueva política y, a continuación, elija Attach Policy (Asociar política). Para usuarios o roles, elija Add permissions (Agregar permisos). En la página siguiente, elija Attach existing policies directly (Asociar directamente políticas existentes), seleccione la casilla de verificación junto al nombre de su nueva política, elija Next: Review (Siguiente: Revisar) y, a continuación, elija Add permissions (Agregar permisos).

    Volverá a la página Summary (Resumen) de su usuario, grupo o rol.

  14. Para grupos, elija Remove Policy (Eliminar política) al lado de la política en línea que desea eliminar. Para usuarios o roles, elija X al lado de la política en línea que desea eliminar.

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.

Utilizar niveles de acceso para revisar permisos de IAM

Para mejorar la seguridad de su cuenta de AWS, debe revisar y monitorizar 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 del nivel de acceso asignada a cada acción de un servicio, consulte Claves de condición, recursos y acciones de los 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 Access level (Nivel de acceso) muestra que la política ofrece acceso Full (Completo) o Limited (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 que los usuarios cambien sus propias contraseñas, exíjales que creen contraseñas seguras y que las cambien periódicamente. En la página Account Settings (Configuración de la cuenta) de la consola de IAM puede crear una política de contraseñas para su cuenta. Puede utilizar la política de contraseñas para definir los requisitos de contraseña, como la longitud mínima, si requiere caracteres no alfabéticos, la frecuencia con la que debe cambiarse, etc.

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 Multi-Factor Authentication (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.

Utilizar roles de aplicaciones que se ejecuten en instancias Amazon EC2

Las aplicaciones que se ejecutan en una instancia 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. 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.

Utilizar roles para delegar permisos

No comparta credenciales de seguridad entre cuentas para permitir a los usuarios de otra cuenta de AWS acceder a los recursos de su cuenta de AWS. En cambio, utilice los roles de IAM. Puede definir un rol que especifique los permisos que tienen los usuarios de IAM en la otra cuenta. También puede designar las cuentas de AWS de los usuarios de IAM que tienen permiso para asumir el rol.

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

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 a su cuenta para exigir a todos los usuarios de IAM que cambien sus contraseñas. También puede elegir la frecuencia con la que esta operación debe realizarse.

Para obtener más información sobre cómo configurar una política de contraseñas 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 Amazon EC2.

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

Monitorización de 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 – Permite registrar las solicitudes del usuario que CloudFront recibe. Para obtener más información, consulte Registros 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 AWS CloudTrail User Guide.

  • Amazon CloudWatch – Permite monitorizar las aplicaciones y recursos en la nube de AWS que se ejecutan 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, roles y políticas de IAM. Por ejemplo, puede utilizar AWS Config para determinar los permisos que pertenecían a un usuario o grupo en un determinado momento. Para obtener más información, consulte la AWS Config Developer Guide.

  • 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 Registro de acceso al servidor de en la Guía para desarrolladores de Amazon Simple Storage Service.

Presentación de vídeo sobre las prácticas recomendadas de IAM

En el siguiente vídeo se incluye una presentación de una conferencia que abarca estas prácticas recomendadas y muestra información adicional sobre cómo trabajar con las características aquí descritas.