Habilitar Aprobación de acceso con Terraform

Terraform es una herramienta de software de código abierto de infraestructura como código que te permite gestionar tus solicitudes de aprobación de acceso. Terraform te permite realizar todas las acciones que puedes llevar a cabo con las APIs de Aprobación de acceso.

En esta página se describe cómo habilitar Aprobación de acceso con Terraform. En este tutorial se usa el Google Cloud proveedor de Terraform.

Objetivo

En este tutorial se explica cómo crear un archivo de configuración de Terraform que haga lo siguiente:

  • Define las direcciones de correo electrónico para las notificaciones de solicitudes de aprobación de acceso.
  • Habilita Aprobación de acceso en todos los productos compatibles. Google Cloud Para ver la lista completa de productos compatibles con Aprobación de acceso, consulta Servicios admitidos. Google Cloud

Antes de empezar

  • Para usar Aprobación de acceso y Transparencia de acceso, tu organización debe cumplir determinados requisitos de asistencia. Para obtener más información, consulta los requisitos para usar Aprobación de acceso.
  • Habilita Transparencia de acceso en tu organización. Para obtener más información, consulta el artículo sobre cómo habilitar Transparencia de acceso.
  • Asegúrate de tener el rol de Gestión de Identidades y Accesos (IAM) Editor de configuración de aprobaciones de acceso (roles/accessapproval.configEditor). Para obtener más información sobre los roles de gestión de identidades y accesos de la aprobación de accesos, consulta el artículo sobre los roles de la aprobación de accesos.

Crear un Google Cloud proyecto

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Access Approval API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Enable the Access Approval API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. Instalar Google Cloud CLI

    Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

    gcloud init

    Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Cuando se te solicite, elige el proyecto que has seleccionado o creado antes.

    Si ya tienes instalada la CLI de Google Cloud, actualízala con el siguiente comando:

    gcloud components update
    

    Crear un archivo de configuración de Terraform

    1. Abre Cloud Shell para iniciar una sesión independiente de Cloud Shell.
    2. Abre un espacio de trabajo.
    3. Crea una carpeta.
    4. Añade a esta carpeta un archivo de configuración de Terraform llamado main.tf.
    5. Copia el siguiente recurso y pégalo en el archivo main.tf.

      main.tf

      variable "parent_value" {
      type        = string
      }
      
      variable "email_1" {
      type        = string
      }
      
      variable "email_2" {
      type        = string
      }
      
      resource "google_folder" "my_folder" {
      display_name = "my-folder"
      parent       = var.parent_value
      # parent = "organizations/123456789"
      }
      
      resource "google_folder_access_approval_settings" "folder_access_approval" {
      folder_id           = google_folder.my_folder.folder_id
      notification_emails = [var.email_1, var.email_2]
      
      enrolled_services {
        cloud_product = "all"
        }
      }
      

      Introduce valores para las siguientes variables:

      • email_1 y email_2: indica las direcciones de correo de los usuarios a los que quieres asignar el rol de revisor de las solicitudes de acceso a este proyecto.
      • parent_value: nombre de la carpeta en la que quieres crear la carpeta my_folder. Para obtener más información sobre las carpetas, consulta el artículo Crear y gestionar carpetas.

    Ejecutar el archivo de configuración de Terraform

    Ejecuta los siguientes comandos en Cloud Shell.

    1. Inicializa Terraform en el directorio.

      terraform init
      
    2. Ejecuta el archivo de configuración de Terraform que has creado.

      terraform apply
      
    3. Cuando se te pida que confirmes si quieres ejecutar el archivo de configuración, introduce yes.

    Para obtener más información sobre cómo usar Aprobación de acceso con Terraform, consulta este documento de Terraform: google_folder_access_approval_settings.

    Siguientes pasos