Prepara el entorno

Antes de crear una canalización de Image Builder, primero debes preparar tu Google Cloud entorno. Para preparar tu entorno, completa las siguientes tareas:

Antes de comenzar

  • Si aún no lo hiciste, configura la autenticación. La autenticación verifica tu identidad para acceder a los Google Cloud servicios y las APIs. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    Selecciona la pestaña según cómo planeas usar las muestras en esta página:

    Console

    Cuando usas la Google Cloud consola de para acceder a los Google Cloud servicios y las APIs, no necesitas configurar la autenticación.

    gcloud

    1. Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada. Después de acceder, inicializa Google Cloud CLI con el siguiente comando:

      gcloud init
  • Configura una región y una zona predeterminadas.
  • REST

    Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.

      Instala Google Cloud CLI y, luego, accede a gcloud CLI con tu identidad federada.

    Para obtener más información, consulta Autentícate para usar REST en la Google Cloud documentación de autenticación de.

Roles obligatorios

Para obtener los permisos que necesitas para preparar tu entorno, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Solicitud de integración

Image Builder está en versión preliminar. Para incorporar tu Google Cloud proyecto a la canalización de personalización de imágenes, envía este formulario de solicitud de acceso o comunícate con tu Google Cloud representante de cuenta.

Habilita las APIs

Image Builder requiere que habilites las APIs de Compute Engine, Cloud Build, Artifact Registry, Service Usage y Resource Manager. Para habilitar las APIs con la Google Cloud consola de o Google Cloud CLI, selecciona una de las siguientes pestañas:

Console

Habilita las APIs de Compute Engine, Cloud Build, Artifact Registry, Service Usage y Cloud Resource Manager.

Roles necesarios para habilitar las APIs

Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol Propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.

Habilitar las API

gcloud

Habilita las APIs de Compute Engine, Cloud Build, Artifact Registry, Service Usage y Cloud Resource Manager:

Roles necesarios para habilitar las APIs

Para habilitar las APIs, necesitas el permiso serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol Propietario (roles/owner). De lo contrario, puedes obtener este permiso a través del rol Administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén información para otorgar roles.

gcloud services enable compute.googleapis.com cloudbuild.googleapis.com artifactregistry.googleapis.com serviceusage.googleapis.com cloudresourcemanager.googleapis.com

Configura la cuenta de servicio de Image Builder

El orquestador de Image Builder se ejecuta con una cuenta de servicio administrada por el usuario. Cuando ejecutas una canalización de compilación de imágenes, Cloud Build adjunta esta cuenta de servicio a instancias temporales de VM de trabajador y de prueba para realizar acciones de personalización y validación. Esta cuenta de servicio necesita los siguientes roles:

  • Administrador de Compute (roles/compute.admin): Administra instancias de VM, discos persistentes y sistemas operativos invitados.
  • Usuario de cuenta de servicio (roles/iam.serviceAccountUser): Permite que Cloud Build adjunte la cuenta de servicio a las instancias efímeras de VM de trabajador y de prueba.
  • Administrador de Storage (roles/storage.admin): Lee y escribe artefactos y registros de compilación temporales en el bucket de etapa de pruebas workdir de Cloud Storage.
  • Escritor de registros de Logging (roles/logging.logWriter): Escribe registros de ejecución en Cloud Logging.
  • Lector de Service Usage (roles/serviceusage.serviceUsageViewer): Verifica los estados del servicio del proyecto durante la ejecución de la canalización.
  • Editor de Cloud Build (roles/cloudbuild.builds.editor): Activa y ejecuta trabajos de Cloud Build y exporta imágenes.
  • (Opcional) Administrador de Artifact Registry (roles/artifactregistry.admin): Sube archivos tar de imagen de SO generados a Artifact Registry.

Puedes usar una cuenta de servicio existente o crear una nueva cuenta de servicio dedicada para tu canalización de compilación. Para crear una nueva cuenta de servicio dedicada y otorgar los roles necesarios con la Google Cloud consola de o la gcloud CLI, selecciona una de las siguientes pestañas:

Console

    Asegúrate de tener el rol de IAM de creador de cuentas de servicio (roles/iam.serviceAccountCreator) y el rol de administrador de IAM del proyecto (roles/resourcemanager.projectIamAdmin). Obtén información para otorgar roles.
  1. En la Google Cloud consola de, ve a la página Crear cuenta de servicio.

    Ve a Crear cuenta de servicio
  2. Elige tu proyecto.
  3. Escribe un nombre en el campo Nombre de cuenta de servicio. La Google Cloud consola completa el campo ID de cuenta de servicio según este nombre.

    Opcional: en el campo Descripción de la cuenta de servicio, escribe una descripción. Por ejemplo, Service account for quickstart.

  4. Haz clic en Crear y continuar.
  5. Otorga los siguientes roles a la cuenta de servicio: Compute Engine > Administrador de Compute, Cuentas de servicio > Usuario de cuenta de servicio, Cloud Storage > Administrador de Storage, Cloud Logging > Escritor de registros, Service Usage > Lector de Service Usage, Cloud Build > Editor de Cloud Build, Artifact Registry > Administrador de Artifact Registry.

    Para otorgar un rol, busca la lista Selecciona un rol y, luego, selecciona el rol.

    Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.

  6. Haz clic en Continuar.
  7. En el campo Roles de usuarios de cuentas de servicio, ingresa el identificador de la entidad principal que adjuntará la cuenta de servicio a otros recursos, como las instancias de Compute Engine.

    Este suele ser el identificador de un usuario que pertenece a un grupo de identidades de personal. Para obtener más información, consulta Representa a los usuarios del grupo de personal en políticas de IAM.

  8. Haz clic en Listo para terminar de crear la cuenta de servicio.

gcloud

  1. Crea una cuenta de servicio para tu canalización de compilación:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
        --display-name="Image Builder Service Account"
    
  2. Otorga los roles obligatorios (roles/compute.admin, roles/iam.serviceAccountUser, roles/storage.admin, roles/logging.logWriter, roles/serviceusage.serviceUsageViewer y roles/cloudbuild.builds.editor) a tu cuenta de servicio:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/compute.admin"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/storage.admin"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/logging.logWriter"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/serviceusage.serviceUsageViewer"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/cloudbuild.builds.editor"
    
  3. Opcional: Otorga el rol opcional (roles/artifactregistry.admin) a tu cuenta de servicio:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
        --role="roles/artifactregistry.admin"
    

Reemplaza lo siguiente:

  • SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio de compilación que se creará. Por ejemplo, custom-builder-sa.
  • PROJECT_ID: Es el ID del Google Cloud proyecto de.
  • SERVICE_ACCOUNT_EMAIL: Es la dirección de correo electrónico de tu cuenta de servicio de compilación.

Configura la política de la organización de imágenes confiables

Debido a que Image Builder usa internamente herramientas estándar de importación y exportación de imágenes de Compute Engine durante la ejecución de la compilación, la política de imágenes confiables de tu proyecto (compute.trustedImageProjects) debe permitir explícitamente las imágenes del siguiente proyecto:

  • projects/compute-image-import

Si la política de tu organización restringe este proyecto, fallará la fase de exportación de imágenes.

Para actualizar la política de tu organización, haz lo siguiente:

  1. En la política de tu organización para la restricción compute.trustedImageProjects, agrega projects/compute-image-import a tu lista de publicadores permitidos.
  2. Para obtener instrucciones detalladas sobre la configuración de las restricciones de la política de la organización, consulta Configura políticas de imágenes confiables y Exporta una imagen personalizada a Cloud Storage.

Configura Artifact Registry

Para almacenar y administrar tus imágenes de SO personalizadas, los metadatos de seguridad y las certificaciones de procedencia de compilación de SLSA, debes configurar un repositorio genérico en Artifact Registry. Almacenar tus imágenes en Artifact Registry te permite mantener un registro seguro e inmutable de las imágenes publicadas.

Cuando configuras un destino de Artifact Registry, Image Builder realiza los siguientes pasos:

  • Exporta el disco de arranque de la VM finalizado como un archivo tar estándar (.tar.gz).
  • Sube el archivo tar a tu repositorio genérico en Artifact Registry.
  • Genera y firma certificaciones de procedencia de compilación de SLSA para el artefacto para vincularlo a los metadatos de origen.
  • Registra la imagen de Compute Engine lista para producción con Compute Engine mediante el URI del archivo tar de Artifact Registry como la fuente de la plantilla.

Para configurar un Artifact Registry genérico, completa las siguientes tareas:

  1. Asegúrate de que la cuenta de servicio que se usa para ejecutar la canalización de Image Builder tenga el rol de Administrador de Artifact Registry (roles/artifactregistry.admin) en el repositorio o a nivel del proyecto. Para obtener instrucciones detalladas, consulta Configura la cuenta de servicio de Image Builder.

  2. Crea un repositorio con el formato generic. Para crear tu repositorio, ejecuta el gcloud artifacts repositories create comando:

    gcloud artifacts repositories create REPOSITORY_NAME \
        --repository-format=generic \
        --location=REPOSITORY_LOCATION
    

    Reemplaza los marcadores de posición que se indican más abajo:

    • REPOSITORY_NAME: Es un nombre para tu repositorio genérico. Por ejemplo, custom-os-images.
    • REPOSITORY_LOCATION: Es una región compatible. Por ejemplo, us-central1.

¿Qué sigue?