Con el tirada de Grafana 9.4, Grafana administrada por Amazon Se agregó soporte para cuentas de servicio, que se han convertido en el método de autenticación recomendado para las aplicaciones que interactúan con Grafana administrada por Amazon, reemplazando el sistema API Key antecedente.
Si admisiblemente las claves API se crean con un papel específico que determina su nivel de acercamiento, las cuentas de servicio ofrecen un enfoque más flexible y mantenible. Admiten múltiples tokens, se pueden habilitar o deshabilitar de forma independiente y no están vinculados a usuarios individuales, lo que permite que las aplicaciones permanezcan autenticadas incluso si se elimina un beneficiario. Los permisos se pueden asignar directamente a las cuentas de servicio utilizando el control de acercamiento basado en roles, simplificando la papeleo del acercamiento de larga vida para entidades no humanas como aplicaciones o scripts.
En esta publicación de blog, pasamos por cómo portar desde las claves de API a los tokens de cuentas de servicio al automatizar la papeleo de posibles de Grafana administrados por Amazon. Asimismo mostraremos cómo juntar de forma segura los tokens usando AWS Secrets Manager y automatizar la rotación de token con AWS Lambda. Toda la infraestructura se implementa utilizando Terraform, aunque el patrón se puede adaptar a su entorno de disyuntiva de infraestructura como código.
¿Qué son las cuentas y tokens de servicio?
A cuenta de servicio está diseñado para autenticar herramientas y sistemas automatizados con Grafana administrado por Amazon y está destinado a acercamiento programático. A token de cuenta de servicio es una credencial segura emitida a una cuenta de servicio y se puede utilizar para autenticar solicitudes a la API HTTP administrada por Amazon. Múltiples tokens pueden asociarse con una sola cuenta de servicio, y los tokens pueden revocarse o rotarse individualmente sin afectar otros servicios o requerir cambios en las cuentas de los usuarios.
Para una comprensión más profunda, ver el Documentación de la cuenta de servicio de Grafana.
Descripción universal de la opción
En esta opción, le mostramos cómo crear una cuenta de servicio, hacer remisión a su pila de Terraform y luego implementar la rotación del token asociado con ella utilizando Lambda y Secrets Manager como se muestra en el ulterior diagrama:

Diagrama de casa que ilustra la integración entre Terraform, AWS Secrets Manager Secret Store y un espacio de trabajo de Grafana administrado por Amazon, con funcionalidad de rotación secreta.
Los siguientes son los pasos básicos para configurar la opción.
- Configure el Grafana administrado por Amazon con cuentas de servicio.
- Actualice el secreto en Secrets Manager con el valencia del token.
- Automatice la creación de posibles en Amazon administrado Grafana utilizando tokens de cuenta de servicio en Terraform.
- Cree una cuenta de servicio y token en su espacio de trabajo de Grafana administrado por Amazon.
- Acumular el token de forma segura utilizando de forma segura Secrets Manager.
- Use Terraform para automatizar la creación de posibles de Grafana administrados por Amazon con el token.
- Automatice la rotación del token de cuenta de servicio.
Repositorio de Github para clonar el código e implementar la pila de Terraform.
Requisitos previos
Antiguamente de comenzar este tutorial, asegúrese de tener lo ulterior:
Tutorial de la opción
Use los siguientes pasos para configurar y configurar la opción.
Medios de provisión utilizando la pila de Terraform
El código fuente completo de la opción está en muestra-migrato-desde-apikeys-grafana y se implementa usando Terraform.
- Clon el repositorio.
- Inicializar un plan Terraform.
- Cree infraestructura para los secretos y la instancia de Grafana administrada por Amazon.
Recuperar el token de la cuenta de servicio del espacio de trabajo Grafana administrado por Amazon
Debe tener privilegios administrativos en su espacio de trabajo de Grafana administrado por Amazon para realizar este paso. Esto se aplica si está utilizando el Centro de identidad IAM o un proveedor de identidad forastero para la autenticación.
- Para cambiar el papel de un beneficiario en el Centro de identidad de AWS IAM (consola)
- Cascar el Grafana administrada por Amazon consola.
- En el panel de navegación, elija Espacios de trabajo.
- Seleccione el espacio de trabajo que desea cuidar.
- En el Centro de identidad de AWS IAMelige el Usuarios asignados pestaña.
- Seleccione la fila del beneficiario que desea modificar.
- Para Entusiasmoelija lo ulterior:
- Confirmar el cambio de roles.
- Seleccione la URL del espacio de trabajo e inicie sesión con sus credenciales, debería poder crear una cuenta de servicio bajo el nombre
grafana-sa
(o el nombre de la variable definida en /variables.tf
).
- Asignar el
Editor
Rol en la cuenta de servicio para permitirle crear paneles y carpetas. Obtenga más información sobre los roles de la cuenta de servicio en el Asignar roles a una cuenta de servicio en Grafana. - Una vez creado la cuenta de servicio, agregue un token de cuenta de servicio, nuevamente el nombre debe ser similar al definido en /
variables.tf
.
Agregue el token a Secrets Manager y cree el resto de los posibles
A posteriori de completar este paso, el token de acercamiento se almacenará en Secrets Manager y se utilizará automáticamente en la definición del proveedor durante las ejecuciones futuras de terraform apply
.
- Copie el token de la cuenta de servicio.
- Pételo en la sección de texto sin formato del secreto del administrador de secretos creado en la sección antecedente
- Con el token de acercamiento almacenado en Secrets Manager, ya no es necesario restringir la operación de aplicación al módulo de rotación utilizando el
--target
bandera. Use el ulterior código para eliminar la restricción.
Eliminar
Para evitar incurrir en cargos futuros, use el ulterior comando para eliminar las cuentas de servicio de Grafana administradas por Amazon no utilizadas y los posibles administrados por Terraform ejecutan el comando CLI terraform destroy
.
Notas de seguridad
Para proteger la seguridad de su estructura, recomendamos las siguientes mejores prácticas:
- Sigue siempre los principios de beocio privilegio. Otorgue los permisos mínimos necesarios a la cuenta de servicio (por ejemplo, editor en circunscripción de administrador).
- Consolidar que Amazon Simple Queue Service (Amazon SQS) colas, secretos de secretos secretos, y Registros de Amazon CloudWatch están encriptados con una secreto KMS administrada por el cliente si su estructura lo requiere.
- Gire los secretos regularmente para minimizar la exposición.
Conclusión
En esta publicación, demostramos cómo portar desde las claves API a los tokens de cuenta de servicio de Grafana administrados por Amazon utilizando Terraform, con un almacenamiento seguro en AWS Secrets Manager y rotación de token automatizada opcional a través de AWS Lambda. Este enfoque reciente mejoramiento la seguridad, la escalabilidad y la auditoría en sus tuberías de automatización.
Para más información, consulte el Documentación de la cuenta de servicio de Grafana administrada por Amazon.
Sobre los autores