Implementa una VPC con Terraform

Aprende a usar Infrastructure Manager para implementar una nube privada virtual (VPC).

En esta guía de inicio rápido, se usa una configuración de Terraform que se almacena en un repositorio público de GitHub. La configuración define la VPC que se aprovisionará.

Antes de comenzar

  1. Accede a tu cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. Instala Google Cloud CLI.

  3. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén más información para otorgar roles.
    • Para crear un Google Cloud proyecto de, haz lo siguiente:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  6. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  7. Habilita la API de Infrastructure Manager:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén más información para otorgar roles.

    gcloud services enable config.googleapis.com
  8. Configura la autenticación:

    1. 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 más información para otorgar roles.
    2. Crea la cuenta de servicio:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Reemplaza SERVICE_ACCOUNT_NAME por un nombre para la cuenta de servicio.

    3. Otorga el rol de IAM roles/config.agent a la cuenta de servicio.

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Reemplaza lo siguiente:

      • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
      • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio
  9. Instala Google Cloud CLI.

  10. Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.

  11. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  12. Crea o selecciona un Google Cloud proyecto.

    Roles necesarios para seleccionar o crear un proyecto

    • Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
    • Crear un proyecto: Para crear un proyecto, necesitas el rol de creador de proyectos (roles/resourcemanager.projectCreator), que contiene el resourcemanager.projects.create permiso. Obtén más información para otorgar roles.
    • Para crear un Google Cloud proyecto de, haz lo siguiente:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el Google Cloud proyecto de que estás creando.

    • Selecciona el Google Cloud proyecto de que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre de tu Google Cloud proyecto de.

  13. Verifica que la facturación esté habilitada para tu Google Cloud proyecto.

  14. Habilita la API de Infrastructure Manager:

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el serviceusage.services.enable permiso. Obtén más información para otorgar roles.

    gcloud services enable config.googleapis.com
  15. Configura la autenticación:

    1. 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 más información para otorgar roles.
    2. Crea la cuenta de servicio:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Reemplaza SERVICE_ACCOUNT_NAME por un nombre para la cuenta de servicio.

    3. Otorga el rol de IAM roles/config.agent a la cuenta de servicio.

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=roles/config.agent

      Reemplaza lo siguiente:

      • SERVICE_ACCOUNT_NAME: el nombre de la cuenta de servicio
      • PROJECT_ID: el ID del proyecto en el que creaste la cuenta de servicio

Otorga permisos para los recursos en la configuración

Otorgaste los permisos necesarios para ejecutar Infra Manager, pero también debes otorgar permisos específicos para los recursos que se describen en la configuración que estás implementando.

Otorga permisos para la VPC, que es el recurso definido en la configuración de Terraform.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --role=roles/compute.networkAdmin

Reemplaza lo siguiente:

  • SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio.
  • PROJECT_ID: el ID de tu proyecto

Obtén una vista previa de la implementación

Antes de crear una implementación, puedes crear una vista previa de la implementación. Puedes usar esta vista previa para verificar los recursos que se planean aprovisionar.

El siguiente comando tiene cuatro valores propagados que no tienen un valor predeterminado. Estos valores son: el ID del proyecto, el nombre de la cuenta de servicio, la ubicación us-central1 y el nombre quickstart-vpc para la red que estás creando.

Para crear una vista previa, usa el siguiente comando:

    gcloud infra-manager previews create projects/PROJECT_ID/locations/us-central1/previews/quickstart-preview \
        --service-account projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
        --git-source-directory=modules/vpc \
        --git-source-ref=main \
        --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Después de crear una vista previa, puedes revisar los resultados de la vista previa. En esta guía de inicio rápido, se omite este paso, pero puedes consultar Exporta y visualiza los resultados de la vista previa si quieres obtener más detalles.

Crear una implementación

Usa Infra Manager para crear una implementación. Esto significa que Infra Manager aprovisiona los recursos que se definen en la configuración de Terraform.

La configuración de esta guía de inicio rápido tiene cuatro valores que no tienen un valor predeterminado. El siguiente comando agrega estos valores: el ID del proyecto, el nombre de la cuenta de servicio, la ubicación us-central1 y el nombre quickstart-vpc para la red que estás creando.

gcloud infra-manager deployments apply projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment \
    --service-account=projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
    --git-source-repo=https://github.com/terraform-google-modules/terraform-google-network \
    --git-source-directory=modules/vpc \
    --git-source-ref=main \
    --input-values=project_id=PROJECT_ID,network_name=quickstart-vpc

Cuando finalice la implementación, verás lo siguiente:

Creating the deployment...done

Ahora, la VPC se crea y configura como se describe en la configuración.

Visualiza los resultados de la compilación en Cloud Build

Para ver el trabajo de Cloud Build que usó Infra Manager para crear la implementación, abre la página Historial de compilación en la Google Cloud consola:

Abrir la página Historial de compilación

Visualiza el estado de la implementación

Ahora que se completó la implementación, puedes ver su descripción para revisar la información sobre ella, incluido el estado.

Visualiza la descripción de la implementación:

gcloud infra-manager deployments describe projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

El resultado tiene detalles sobre la implementación, incluida la marca de tiempo de la implementación, el nombre de la revisión más reciente y el estado.

Para el estado, verás ACTIVE.

Visualiza los detalles sobre la VPC aprovisionada

Visualiza los detalles sobre la VPC aprovisionada:

gcloud infra-manager resources list --revision=projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment/revisions/REVISION_ID

Reemplaza REVISION_ID por el ID de la revisión más reciente. Este ID es r-0, a menos que hayas implementado varias veces. Puedes ver el ID de la revisión más reciente en la descripción de la implementación en la sección anterior.

Visualiza la VPC en la consola

Visualiza la VPC en la consola:

Ir a las redes de VPC

Verás la VPC llamada quickstart-vpc. Esta es la VPC que aprovisionó Infra Manager.

Limpia

Para evitar que se apliquen cargos a tu Google Cloud cuenta por los recursos que usaste en esta página, asegúrate de borrar los recursos que ya no necesitas.

Borra la VPC

Borra la VPC y los metadatos sobre la implementación:

gcloud infra-manager deployments delete projects/PROJECT_ID/locations/us-central1/deployments/quickstart-deployment

Opcional: borra el proyecto

Si implementaste la solución en un proyecto de nuevo Google Cloud y ya no lo necesitas, sigue estos pasos para borrarlo:

  1. En la Google Cloud consola, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. Cuando se te solicite, escribe el ID del proyecto y, luego, haz clic en Cerrar.

¿Qué sigue?