Quizás el peor error de seguridad que puede cometer es dejar claves de acceso secretas altamente confidenciales en un servidor web. Entonces, cuando llega el momento de instalar y autenticar la CLI de AWS en una instancia EC2 remota, ¿cómo se configura?
Debería utilizar usuarios de IAM
La respuesta definitivamente es no usar sus claves de acceso raíz; estos son los tokens más importantes de su cuenta y pueden omitir cualquier dispositivo de autenticación multifactor que haya configurado. (En realidad puedes configurar Acceso API protegido por MFA pero no para la cuenta raíz).
AWS proporciona un servicio para solucionar este problema. La consola “Administración de identidad y acceso” (IAM) le permite crear usuarios secundarios separados de su cuenta raíz. Pueden ser usuarios de servicios con acceso a API o cuentas de usuario completas (con acceso a la Consola de administración de AWS) que puede usar para cuentas de empleados.
Cada usuario de IAM ha administrado el acceso a los recursos de AWS dentro de su cuenta. El acceso se controla con Políticas, que otorgan un conjunto de permisos que controlan lo que puede hacer cada usuario. Estas políticas detalladas pueden controlar casi todas las acciones que puede realizar en la Consola de administración de AWS.
También puede establecer manualmente un límite de permisos, que actúa como un permiso máximo que un usuario no puede superar, anulando cualquier política que pueda otorgarles más. Es una característica avanzada que se utiliza para delegar la gestión de permisos a los empleados de IAM y les permite crear roles de servicio adicionales sin escalamiento de privilegios.
Cómo configurar usuarios de IAM
Desde el Consola de administración de IAMhaga clic en la pestaña “Usuarios” y seleccione “Agregar usuario”.
Asígnele un nombre y luego seleccione cómo desea que este usuario acceda a AWS. El acceso programático le brinda un ID de clave de acceso y una clave de acceso secreta, que se utilizan para autenticarse con la API y la CLI de AWS.
El acceso a la Consola de administración permite al usuario acceder a la consola web, que es lo que habilita si otorga acceso a los empleados. Si está configurando esto, AWS proporciona de forma predeterminada una contraseña generada automáticamente y obliga al empleado a cambiarla cuando inicia sesión.
Puedes dar ambos tipos de acceso si lo deseas.
A continuación, configura los permisos. AWS proporciona muchas políticas prediseñadas que puede adjuntar directamente al usuario. También puede crear un grupo y agregar el usuario a ese grupo, lo que le permite administrar más fácilmente varios usuarios.
Realmente, no recomendamos utilizar la mayoría de estas políticas predefinidas. Realmente no desea otorgar “Acceso total” a ningún servicio individual, y la otra alternativa suele ser “Solo lectura”, que probablemente no sea suficiente acceso por sí sola. Algunos de los permisos más ajustados están bien, pero deberías crear los tuyos propios.
Verás rápidamente por qué el “acceso total” es una mala idea. Supongamos que está configurando un servidor que necesita acceder a S3 y cargar objetos. Es posible que desee darle acceso de “Escritura”, pero esto también le permite al usuario eliminar depósitos completos, lo cual no es nada ideal. Una mejor solución es otorgar el permiso “PutObject”, que permite realizar solicitudes PUT.
Estos permisos son bastante intensivos y varían de un servicio a otro, pero siempre puede hacer clic en el signo de interrogación junto al nombre del permiso para obtener una definición rápida. De lo contrario, puedes leer nuestra guía de permisos de IAM aprender más.
Puede (y probablemente debería) restringir el acceso a ciertos recursos mediante su nombre de recurso de Amazon (ARN), lo que deshabilita el acceso a toda la cuenta. También hay ciertas condiciones que puede adjuntar a los permisos, como la fecha y la hora, que AWS verifica antes de permitir que se realice una acción.
Una vez que haya terminado de adjuntar permisos, puede crear el usuario (opcionalmente, agregue etiquetas primero). Se le dirigirá a una pantalla donde puede descargar o copiar las claves de acceso y, si está agregando acceso a la consola de administración, aparecerá un enlace de inicio de sesión que podrá enviar al empleado que posee la cuenta.
Reemplace su cuenta raíz con un usuario de IAM
De hecho, AWS recomienda encarecidamente esto para cuentas organizativas. En lugar de usar su cuenta raíz para cosas como su CLI personal, debe crear un usuario de IAM “Administrador” con acceso a la consola de administración y usar el token de acceso para autenticar su terminal personal.
Esto no significa que deba tratar las credenciales de este usuario de IAM como menos seguras que su cuenta raíz; aún así le arruinaría el día si su cuenta de administrador estuviera comprometida, por lo que debe continuar usando cuentas de servicio para aplicaciones remotas y Definitivamente aún debes habilitar la autenticación multifactor para tu cuenta de administrador IAM. Sin embargo, utilizar un usuario de IAM en lugar de la cuenta raíz es más seguro, ya que existen ciertas acciones en toda la cuenta que solo la cuenta raíz real puede realizar.
Con esta configuración, lo único que utiliza su cuenta raíz son las cosas súper seguras que están vinculadas directamente a su cuenta raíz, como el mantenimiento de la cuenta y la facturación. Para todo lo demás, los permisos de administrador son suficientes y le permiten realmente elimine sus claves de acceso raíz para que solo pueda acceder a la cuenta raíz iniciando sesión manualmente (y pasando MFA).