Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Integración en Terraform

Si usas Terraform para administrar tu infraestructura, puedes usar la versión beta del Proveedor de Google Cloud a fin de definir los siguientes recursos en tu configuración de Terraform.

Define tu repositorio y los permisos específicos de este en un módulo de Terraform.

  1. Crea el archivo del módulo main.tf con el proveedor de google y el recurso del repositorio.

    .

    Mediante la siguiente configuración, se define el proveedor y un repositorio con el nombre del recurso de Terraform my-repo.

    provider "google" {
        project = "PROJECT-ID"
    }
    
    resource "google_artifact_registry_repository" "my-repo" {
      provider = google-beta
    
      location = "LOCATION"
      repository_id = "REPOSITORY"
      description = "DESCRIPTION"
      format = "DOCKER"
      kms_key_name = "KEY"
    }
    

    Donde

    • PROJECT-ID es el ID del proyecto de Google Cloud.
    • REPOSITORY es el nombre del repositorio.
    • LOCATION es la ubicación del repositorio.
    • DESCRIPTION es la descripción opcional del repositorio. No incluyas datos sensibles, ya que las descripciones de los repositorios no están encriptadas.
    • KEY es el nombre de la clave de Cloud Key Management Service, si usas claves de encriptación administradas por el cliente (CMEK) para la encriptación. Omite este argumento para usar la configuración predeterminada, las claves de encriptación administradas por Google.
  2. Para otorgar permisos específicos del repositorio en tu módulo, agrega los recursos google_artifact_registry_repository_iam. En el siguiente ejemplo, se define una cuenta de servicio con el nombre de recurso repo-account y se le otorga acceso de lectura a un repositorio con el nombre de recurso my-repo.

    provider "google" {
        project = "PROJECT-ID"
    }
    
    resource "google_artifact_registry_repository" "my-repo"     {
      provider = google-beta
    
      location = "LOCATION"
      repository_id = "REPOSITORY"
      description = "DESCRIPTION"
      format = "DOCKER"
    }
    
    resource "google_service_account" "repo-account" {
      provider = google-beta
    
      account_id   = "ACCOUNT-ID"
      display_name = "Repository Service Account"
    }
    
    resource "google_artifact_registry_repository_iam_member" "repo-iam" {
      provider = google-beta
    
      location = google_artifact_registry_repository.my-repo.location
      repository = google_artifact_registry_repository.my-repo.name
      role   = "roles/artifactregistry.reader"
      member = "serviceAccount:${google_service_account.repo-account.email}"
    }
    

    ACCOUNT-ID es el ID de la cuenta de servicio. Esta es la parte del campo de correo electrónico de la cuenta de servicio antes del símbolo @.

    Para ver ejemplos adicionales, incluida la asignación de permisos con una política de IAM, consulta la documentación de google_artifact_registry_repository_iam.

  3. Inicializa Terraform mediante este comando:

    terraform init
    
  4. Aplica la configuración de Terraform:

    terraform apply
    

    Para confirmar que deseas aplicar las acciones, ingresa yes.