HCP Control
Proyectos
Los proyectos permiten que organices los workspaces y scope de acceso a los workspaces. Cada proyecto tiene un conjunto de permisos separado que puedes usar para conceder a los equipos acceso a todos los workspaces en el proyecto, definiendo límites. Los permisos a nivel de proyecto son más granulares que los permisos a nivel de organización.
Al decidir cómo estructurar tus proyectos, considera qué grupos de recursos necesitan reglas de acceso distintas. Puedes desear definir proyectos por unidades de negocio, departamentos, subsidiarias o equipos técnicos.
Cada workspace obligatoriamente pertenece a un proyecto siendo el proyecto Default ya definido por defecto.
Para crear un proyecto es necesario que tu cuenta sea miembro de un equipo con permiso de Manage All Projects.
Mejores prácticas:
- Evita tener todo dentro de un único proyecto
Default. Crear nuevos proyectos garantizan un scope cerrado para un determinado equipo mejorando la seguridad con permisos específicos para este equipo. - Un proyecto permite que tengas un conjunto de variables que serán heredadas en todos los workspaces del proyecto, por ejemplo las variables de credenciales.
- Además de crear los proyectos vía interfaz gráfica, podemos utilizar el propio Terraform para eso con el proveedor TFE. Generalmente los nombres que damos a ese proyecto de gestión de HCP Terraform son
landing zone,groundwork, etc. - Restringir el número de administradores por proyecto para mantener principio de seguridad del menor privilegio.
- Utilizar credenciales dinámicas evitando codificación de credenciales estáticas de larga duración.
- Definir tags que serán utilizados en todos los recursos del mismo proyecto.
Workspaces
Como vimos anteriormente, un workspace es un grupo de recursos de infraestructura gestionados por Terraform. Cuando ejecutamos localmente, Terraform gestiona los recursos de infraestructura en un directorio local, que contiene una configuración, datos de estados y variables.
HCP Terraform gestiona colecciones de infraestructura con workspaces en lugar de directorios. Un workspace contiene todo lo que Terraform necesita para gestionar una determinada colección de infraestructura, y workspaces separados funcionan como directorios de trabajo completamente separados.