Crear una biblioteca de políticas

Como administrador de una organización, debes definir las políticas que deben seguir los desarrolladores al aplicar la infraestructura como código. El conjunto de políticas de tu organización se representa como una biblioteca de políticas. En esta página se explica cómo crear un repositorio de políticas centralizado y añadir restricciones.

Antes de empezar

  • Necesitas un repositorio de Git vacío para almacenar la biblioteca de políticas de tu organización.
  • Debes configurar Git para conectarte de forma segura. Por ejemplo, si tu repositorio de Git está en GitHub, puedes seguir el proceso descrito en Conectar a GitHub con SSH.

Duplicar la biblioteca de muestras

Google proporciona un repositorio de ejemplo que incluye un conjunto de plantillas de restricciones predefinidas que puedes modificar para tu uso personal.

  1. Clona el repositorio de muestra de la biblioteca de políticas y duplícalo en tu POLICY_LIBRARY_REPO:

    git clone https://github.com/GoogleCloudPlatform/policy-library.git
    cd policy-library
    git remote set-url origin POLICY_LIBRARY_REPO
    git push origin main
    
  2. Consulta las plantillas de restricciones disponibles en policies/templates: ls policies/templates

  3. Selecciona las plantillas de restricciones que quieras usar. En este ejemplo, elige gcp_storage_location_v1.yaml, que aplica la ubicación a los segmentos de Cloud Storage.

  4. Crea archivos YAML de restricciones correspondientes a esas plantillas en policies/constraints.

  5. En la copia local del repositorio policy-library, usa los siguientes comandos para confirmar y enviar los cambios:

    git add --all .
    git commit -m "Initial commit of policy library constraints"
    git push -u origin main
    

Estructura de la biblioteca

Un repositorio de biblioteca de políticas contiene los siguientes directorios:

  • policies/: este directorio contiene dos subdirectorios:

    • constraints/: este directorio está vacío al principio. Coloca aquí los archivos de restricciones.
    • templates/: este directorio contiene plantillas de restricciones predefinidas.
  • validator/: este directorio contiene los archivos .rego y sus pruebas unitarias asociadas. No es necesario que modifiques este directorio, a menos que quieras modificar plantillas de restricciones o crear otras. Al ejecutar make build, se inserta el contenido de Rego en los archivos de plantilla de restricción correspondientes.

Actualizaciones periódicas

Deberías extraer periódicamente los cambios del repositorio público, que puede contener nuevas plantillas y archivos Rego.

git remote add public https://github.com/GoogleCloudPlatform/policy-library.git
git pull public main
git push origin main

Pasos siguientes

La biblioteca de políticas contiene varias plantillas de restricciones y una carpeta samples con restricciones de ejemplo. Consulta Crear restricciones de Terraform o Crear restricciones de CAI para obtener información sobre cómo escribir y usar plantillas de restricciones y restricciones.