SEC02-BP02 Usar credenciales temporales - Pilar de seguridad

SEC02-BP02 Usar credenciales temporales

Al realizar cualquier tipo de autenticación, es mejor utilizar credenciales temporales en lugar de credenciales de larga duración para reducir o eliminar riesgos, tales como que las credenciales se divulguen, compartan o roben de forma inadvertida.

Resultado deseado: para reducir el riesgo que implican las credenciales de larga duración, utilice credenciales temporales siempre que sea posible tanto para las identidades humanas como para las de las máquinas. Las credenciales de larga duración entrañan muchos riesgos; por ejemplo, pueden subirse en el código en repositorios públicos de GitHub. Al utilizar credenciales temporales, reducirá enormemente las posibilidades de que las credenciales se vean comprometidas.

Antipatrones usuales:

  • Desarrolladores que utilizan claves de acceso de larga duración de IAM users en lugar de obtener credenciales temporales de la CLI mediante federación.

  • Desarrolladores que incrustan claves de acceso de larga duración en su código y suben ese código a repositorios de Git públicos.

  • Desarrolladores que incrustan claves de acceso de larga duración en aplicaciones móviles que luego se ponen a disposición de todo el mundo en las tiendas de aplicaciones.

  • Usuarios que comparten claves de acceso de larga duración con otros usuarios, o empleados que abandonan la empresa con claves de acceso de larga duración aún en su poder.

  • Utilizar claves de acceso de larga duración para identidades de máquinas cuando podrían utilizarse credenciales temporales.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto

Guía para la implementación

Utilice credenciales de seguridad temporales en lugar de credenciales de larga duración para todas las solicitudes de la API y la CLI de AWS. Las solicitudes de la API y la CLI a los servicios de AWS deben, en prácticamente todos los casos, firmarse utilizando claves de acceso de AWS. Estas solicitudes pueden firmarse con credenciales temporales o de larga duración. El único caso en que debe utilizar credenciales de larga duración, que también se conocen como claves de acceso de larga duración, es cuando utiliza un usuario de IAM o el usuario raíz de la Cuenta de AWS. Si se federa a AWS o asume un rol de IAM a través de otros métodos, se generan credenciales temporales. Incluso cuando accede a la AWS Management Console utilizando credenciales de inicio de sesión, se generan credenciales temporales para que pueda realizar llamadas a los servicios de AWS. Hay pocas situaciones en las que necesite credenciales de larga duración y casi todas las tareas se pueden realizar utilizando credenciales temporales.

Evitar el uso de credenciales de larga duración en favor de credenciales temporales debería acompañarse de una estrategia de reducción del uso de usuarios de IAM en favor de la federación y los roles de IAM. Aunque en el pasado se han utilizado usuarios de IAM tanto para identidades humanas como de máquinas, ahora recomendamos no utilizarlos para evitar los riesgos que conlleva el uso de claves de acceso de larga duración.

Pasos para la implementación

Para identidades humanas, como las de empleados, administradores, desarrolladores, operadores y clientes:

En el caso de las identidades de máquina, puede que necesite utilizar credenciales de larga duración. En estos casos, debe exigir que las cargas de trabajo utilicen credenciales temporales con roles de IAM para acceder a AWS.

Hay escenarios en los que las credenciales temporales no son una opción y puede que necesite utilizar credenciales de larga duración. En estas situaciones, audite y rote las credenciales periódicamente y rote las claves de acceso con regularidad para los casos de uso que requieran credenciales de larga duración. Algunos ejemplos que podrían requerir credenciales de larga duración son los plugins de WordPress y los clientes de AWS de terceros. En situaciones en las que deba utilizar credenciales de larga duración, o para credenciales que no sean claves de acceso de AWS, como inicios de sesión en bases de datos, puede utilizar un servicio diseñado para administrar secretos, como AWS Secrets Manager. Secrets Manager simplifica la administración, la rotación y el almacenamiento seguro de secretos cifrados mediante servicios compatibles. Si desea obtener más información sobre la rotación de las credenciales de larga duración, consulte Rotación de las claves de acceso.

Recursos

Prácticas recomendadas relacionadas:

Documentos relacionados:

Vídeos relacionados: