Credenciales de seguridad de AWS - AWS Identity and Access Management

Credenciales de seguridad de AWS

Al interactuar con AWS, debe especificar las credenciales de seguridad de AWS con el fin de demostrar quién es usted y si tiene permiso para acceder a los recursos que solicita. AWS utiliza las credenciales de seguridad para autenticar y autorizar sus solicitudes.

Por ejemplo, si desea descargar un archivo protegido de un bucket de Amazon Simple Storage Service (Amazon S3), sus credenciales deben permitir ese tipo de acceso. Si sus credenciales no muestran que está autorizado para descargar el archivo, AWS le denegará la solicitud. Sin embargo, sus credenciales de seguridad de AWS no son necesarias para descargar un archivo de un bucket de Amazon S3 que se comparte públicamente.

Hay diferentes tipos de usuarios en AWS. Todos los usuarios de AWS tienen credenciales de seguridad. Están el propietario de la cuenta (usuario raíz), usuarios en AWS IAM Identity Center, los usuarios federados y los usuarios de IAM.

Los usuarios tienen credenciales de seguridad temporales o a largo plazo. El usuario raíz, el usuario de IAM y las claves de acceso tienen credenciales de seguridad a largo plazo que no caducan. Para proteger las credenciales a largo plazo, utilice procesos a fin de administrar claves de acceso, cambiar contraseñas y habilitar la MFA.

Los roles de IAM, usuarios en AWS IAM Identity Center y los usuarios federados poseen credenciales de seguridad temporales. Las credenciales de seguridad temporales caducan después de un periodo definido o cuando el usuario finaliza la sesión. Las credenciales temporales funcionan prácticamente igual que las credenciales a largo plazo, con las siguientes diferencias:

  • Las credenciales de seguridad temporales son a corto plazo, tal como su nombre indica. Se pueden configurar para durar entre unos cuantos minutos y varias horas. Cuando las credenciales caduquen, AWS dejará de reconocerlas o permitirá todo tipo de acceso a las solicitudes realizadas desde API que las utilicen.

  • Las credenciales de seguridad temporales no se guardan con el usuario, sino que se generan de forma dinámica y se proporcionan al usuario cuando se solicitan. Cuando las credenciales de seguridad temporales caducan (o incluso antes), el usuario puede solicitar nuevas credenciales, siempre y cuando el usuario que las solicite tenga permiso para hacerlo.

Como resultado, las credenciales temporales tienen las siguientes ventajas con respecto a las credenciales a largo plazo:

  • No tiene que distribuir ni incrustar credenciales de seguridad de AWS a largo plazo con una aplicación.

  • Puede proporcionar acceso a sus recursos de AWS a usuarios, sin necesidad de definir una identidad de AWS para ellos. Las credenciales temporales son la base de los roles y las identidades federadas.

  • Las credenciales de seguridad temporales tienen un ciclo de vida limitado, por lo que no tiene que actualizarlas ni revocarlas de forma explícita cuando ya no las necesite. Cuando las credenciales de seguridad temporales caducan, ya no se pueden volver a utilizar. Puede especificar el tiempo de validez de las credenciales, hasta un límite máximo.

Consideraciones de seguridad

Recomendamos que tenga en cuenta la siguiente información al determinar las disposiciones de seguridad para su Cuenta de AWS:

  • Al crear una Cuenta de AWS, creamos el usuario raíz de la cuenta. Las credenciales del usuario raíz (propietario de la cuenta) permiten el acceso completo a todos los recursos de la cuenta. La primera tarea que debe realizar con el usuario raíz es conceder a otro usuario permisos administrativos para su Cuenta de AWS a fin de minimizar el uso del usuario raíz.

  • No puede utilizar las políticas de IAM para denegar al usuario raíz el acceso a los recursos de forma explícita. Solo puede usar una política de control de servicios (SCP) de AWS Organizations para limitar los permisos del usuario raíz.

  • Si olvida o pierde la contraseña de usuario raíz, debe tener acceso a la dirección de correo electrónico asociada a su cuenta para poder restablecerla.

  • Si pierde las claves de acceso de usuario raíz, debe poder iniciar sesión en su cuenta como usuario raíz para crear otras nuevas.

  • No utilice el usuario raíz para las tareas cotidianas. Utilícelo para realizar las tareas que solo puede realizar el usuario raíz. Para obtener la lista completa de tareas que requieren que inicie sesión como usuario raíz, consulte Tareas que requieren credenciales de usuario raíz.

  • Las credenciales de seguridad son específicas de la cuenta. Si tiene acceso a varias Cuentas de AWS, tiene credenciales independientes para cada cuenta.

  • Las políticas determinan qué acciones puede realizar un usuario, un rol o un miembro de un grupo de usuarios, en qué recursos de AWS y en qué condiciones. Con las políticas, puede controlar de forma segura el acceso a los recursos y Servicios de AWS de su Cuenta de AWS. Si debe modificar o revocar los permisos en respuesta a un evento de seguridad, elimine o modifique las políticas en lugar de realizar cambios directamente en la identidad.

  • Asegúrese de guardar las credenciales de inicio de sesión de su usuario de IAM de Acceso de emergencia y cualquier clave de acceso que haya creado para el acceso programático en una ubicación segura. Si pierde sus claves de acceso, debe iniciar sesión en su cuenta para crear otras nuevas.

  • Le recomendamos que utilice las credenciales temporales proporcionadas por los roles de IAM y los usuarios federados en lugar de las credenciales a largo plazo proporcionadas los usuarios de IAM y las claves de acceso.

Identidad federada

Las identidades federadas son usuarios con identidades externas a los que se les otorgan credenciales de AWS temporales que pueden usar para acceder a recursos seguros de la Cuenta de AWS. Las identidades externas pueden proceder de un almacén de identidades corporativas (por ejemplo, LDAP o Windows Active Directory) o de un tercero (como Login with Amazon, Facebook o Google). Las identidades federadas no inician sesión con la AWS Management Console o el portal de acceso de AWS.

Para permitir que las identidades federadas inicien sesión en AWS, debe crear una URL personalizada que incluya https://signin.aws.amazon.com/federation. Para obtener más información, consulte Permitir el acceso del agente de identidades personalizadas a la consola de AWS.

Para obtener más información acerca de las identidades federadas, consulte Federación y proveedores de identidades.

Multi-Factor authentication (MFA)

La autenticación multifactor (MFA) proporciona un nivel de seguridad adicional para los usuarios que pueden acceder a su Cuenta de AWS. Para aumentar la seguridad, le recomendamos que exija la MFA en las credenciales de Usuario raíz de la cuenta de AWS y todos los usuarios de IAM. Para obtener más información, consulte Uso de autenticación multifactor (MFA) en AWS.

Al activar la MFA e iniciar sesión en su Cuenta de AWS, se le solicitarán las credenciales de inicio de sesión y una respuesta generada por un dispositivo de MFA, como un código, un toque o un escaneo biométrico. Al agregar MFA, la configuración y los recursos de su Cuenta de AWS están más seguros.

De forma predeterminada, la MFA no está activada. Puede habilitar y administrar dispositivos de MFA para el Usuario raíz de la cuenta de AWS en la página Credenciales de seguridad o en el panel IAM de la AWS Management Console. Para obtener más información sobre la activación de MFA para usuarios de IAM, consulte Habilitación de dispositivos MFA para usuarios en AWS.

Para obtener más información sobre el inicio de sesión con autenticación multifactor (MFA), consulte Uso de dispositivos MFA con la página de inicio de sesión de IAM.

Acceso programático

Usted proporciona sus claves de acceso de AWS para realizar llamadas a AWS mediante programación o para utilizar la AWS Command Line Interface o AWS Tools for PowerShell. Cuando sea posible, le recomendamos utilizar claves de acceso a corto plazo.

Cuando crea una clave de acceso a largo plazo, crea el ID de clave de acceso (por ejemplo, AKIAIOSFODNN7EXAMPLE) y la clave de acceso secreta (por ejemplo, wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY) como un conjunto. La clave de acceso secreta solo está disponible para descarga en el momento en que se crea. Si no descarga su clave de acceso secreta o la pierde, tendrá que crear una nueva.

En muchos casos, no se requieren claves de acceso a largo plazo que nunca caducan (como cuando crea claves de acceso para un usuario de IAM). En su lugar, puede crear roles de IAM y generar credenciales de seguridad temporales. Las credenciales de seguridad temporales incluyen un ID de clave de acceso y una clave de acceso secreta, pero también incluyen un token de seguridad que indica cuándo caducan las credenciales. Después de caducar, ya no son válidas.

Los ID de clave de acceso que comienzan por AKIA son claves de acceso a largo plazo para un usuario de IAM o un usuario raíz de la Cuenta de AWS. Los ID de clave de acceso que comienzan por ASIA son claves de acceso de credenciales temporales que se crean mediante operaciones de AWS STS.

Los usuarios necesitan acceso programático si desean interactuar con AWS fuera de la AWS Management Console. La forma de conceder el acceso programático depende del tipo de usuario que acceda a AWS:

Para conceder acceso programático a los usuarios, elija una de las siguientes opciones.

¿Qué usuario necesita acceso programático? Para B

Identidad del personal

(Usuarios administrados en el IAM Identity Center)

Utilice credenciales a largo plazo para firmar las solicitudes programáticas a la AWS CLI, los SDK de AWS o las API de AWS.

Siga las instrucciones de la interfaz que desea utilizar:

IAM Utilice credenciales a largo plazo para firmar las solicitudes programáticas a la AWS CLI, los SDK de AWS o las API de AWS. Siguiendo las instrucciones de Uso de credenciales temporales con recursos de AWS de la Guía del usuario de IAM.
IAM

(No recomendado)

Utilice credenciales a largo plazo para firmar las solicitudes programáticas a las API de AWS CLI o AWS (directamente o mediante los AWS SDK).

Siga las instrucciones de la interfaz que desea utilizar:

Alternativas para claves de acceso a largo plazo

Para muchos casos de uso comunes, existen alternativas a las claves de acceso a largo plazo. Para mejorar la seguridad de su cuenta, tenga en cuenta lo siguiente.

  • No inserte claves de acceso a largo plazo ni claves de acceso secretas en el código de la aplicación ni en un repositorio de códigos: en cambio, utilice AWS Secrets Manager u otra solución de administración de secretos para no tener que codificar las claves en texto sin formato. La aplicación o el cliente pueden entonces recuperar los secretos cuando sea necesario. Para obtener más información, consulte ¿Qué es AWS Secrets Manager? en la Guía del usuario de AWS Secrets Manager.

  • Utilice los roles de IAM para generar credenciales de seguridad temporales siempre que sea posible: utilice siempre mecanismos para emitir credenciales de seguridad temporales cuando sea posible, en lugar de claves de acceso a largo plazo. Las credenciales de seguridad temporales son más seguras porque no se almacenan con el usuario, sino que se generan de forma dinámica y se proporcionan al usuario cuando se solicitan. Las credenciales de seguridad temporales tienen una duración limitada, por lo que no es necesario administrarlas ni actualizarlas. Los mecanismos que proporcionan claves de acceso temporales incluyen los roles de IAM o la autenticación de un usuario del Centro de identidades de IAM. Para máquinas que se ejecuten fuera de AWS, puede utilizar AWS Identity and Access Management Roles Anywhere.

  • Utilice alternativas a las claves de acceso a largo plazo para la AWS Command Line Interface (AWS CLI) o aws-shell: las alternativas incluyen lo siguiente.

    • AWS CloudShell es un intérprete de comandos previamente autenticado y basado en el navegador que puede lanzar directamente desde la AWS Management Console. Puede ejecutar comandos de la AWS CLI para los Servicios de AWS con su intérprete de comandos de preferencia (Bash, PowerShell o Z shell). Al hacerlo, no necesita descargar o instalar herramientas de línea de comandos. Para obtener más información, consulte ¿Qué es AWS CloudShell? en la Guía del usuario de AWS CloudShell.

    • Integración de AWS CLI versión 2 con AWS IAM Identity Center (Centro de identidades de IAM). Puede autenticar a los usuarios y proporcionar credenciales a corto plazo para ejecutar comandos de la AWS CLI. Para obtener más información, consulte Integración de la AWS CLI con el Centro de identidades de IAM en la Guía del usuario de AWS IAM Identity Center y Configuración de la AWS CLI para usar el Centro de identidades de IAM en la Guía del usuario de AWS Command Line Interface.

  • No cree claves de acceso a largo plazo para los usuarios humanos que necesiten acceder a las aplicaciones o a los Servicios de AWS: el Centro de identidades de IAM puede generar credenciales de acceso temporales para que los usuarios de proveedores de identidades externos accedan a los Servicios de AWS. De esta manera, no necesita crear y administrar credenciales a largo plazo en IAM. En el Centro de identidades de IAM, cree un conjunto de permisos del Centro de identidades de IAM que conceda acceso a los usuarios de proveedores de identidades externos. A continuación, asigne un grupo del Centro de identidades de IAM al conjunto de permisos de las Cuentas de AWS seleccionadas. Para obtener más información, consulte Qué es AWS IAM Identity Center, Conexión a un proveedor de identidad externo y Conjuntos de permisos en la Guía del usuario de AWS IAM Identity Center.

  • No almacene claves de acceso a largo plazo en un servicio de cómputos de AWS: en cambio, asigne un rol de IAM a los recursos de cómputo. Esto proporciona automáticamente credenciales temporales para conceder el acceso. Por ejemplo, al crear un perfil de instancia asociado a una instancia de Amazon EC2, puede asignar un rol de AWS a la instancia y ponerla a disposición de todas las aplicaciones. Un perfil de instancia contiene el rol y permite a los programas que se encuentran en ejecución en la instancia de Amazon EC2 obtener credenciales temporales. Para obtener más información, consulte Uso de un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias de Amazon EC2.

Acceso a AWS con las credenciales de AWS

AWS requiere diferentes tipos de credenciales de seguridad, según cómo acceda a AWS y qué tipo de usuario de AWS sea. Por ejemplo, usted usa las credenciales de inicio de sesión para la AWS Management Console, pero usa las claves de acceso para realizar llamadas a AWS mediante programación. Además, cada identidad que utilice, ya sea el usuario raíz de la cuenta, un usuario de AWS Identity and Access Management (IAM), un usuario de AWS IAM Identity Center o una identidad federada, contiene credenciales únicas en AWS.

Para obtener instrucciones paso a paso sobre cómo iniciar sesión en AWS según su tipo de usuario, consulte Cómo iniciar sesión en AWS en la Guía de inicio de sesión de AWS.