Requisitos previos para usar el orquestador de políticas

En esta página se describen los requisitos previos para usar la función de orquestador de políticas en Gestor de VMs.

Comandos de la interfaz de línea de comandos de gcloud para los requisitos previos del orquestador de políticas

En esta sección se enumeran todos los comandos de gcloud que debes ejecutar antes de poder usar la función de orquestador de políticas.

Proyecto

Los siguientes comandos realizan las tareas necesarias para crear orquestaciones a nivel de proyecto:

  # Enable OS Config API
  gcloud services enable osconfig.googleapis.com

  # Enable Progressive Rollout API
  gcloud services enable progressiverollout.googleapis.com

  # Create an OS config service agent
  gcloud beta services identity create --service=osconfig.googleapis.com  --project=PROJECT_NUMBER

  # Create a Progressive Rollout service agent
  gcloud beta services identity create --service=progressiverollout.googleapis.com  --project=PROJECT_NUMBER

  # Grant the required role to the OS config rollout service agent
  gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/osconfig.rolloutServiceAgent"

  # Grant the required role to the OS config service agent
  gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/osconfig.serviceAgent"

  # Grant the required role to the Progressive Rollout service agent
  gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/progressiverollout.serviceAgent"

Haz los cambios siguientes:

  • PROJECT_ID: el ID numérico del proyecto en el que quieres crear el agente de servicio.
  • PROJECT_NUMBER: el número de recurso del proyecto que Google asignó cuando creaste el proyecto.

Para obtener más información, consulta el artículo El recurso de proyecto.

Carpeta

Los siguientes comandos realizan las tareas necesarias para crear orquestaciones a nivel de carpeta:

  # Set up the quota project
  gcloud config set billing/quota_project QUOTA_PROJECT_ID

  # Enable OS Config API
  gcloud services enable osconfig.googleapis.com

  # Create an OS config service agent
  gcloud beta services identity create --service=osconfig.googleapis.com  --folder=FOLDER_NUMBER

  # Create a Progressive Rollout service agent
  gcloud beta services identity create --service=progressiverollout.googleapis.com  --folder=FOLDER_NUMBER

  # Grant the required role to the OS config rollout service agent
  gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
  --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/osconfig.rolloutServiceAgent"

  # Grant the required role to the OS config service agent
  gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
  --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/osconfig.serviceAgent"

  # Grant the required role to the Progressive Rollout service agent
  gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
  --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/progressiverollout.serviceAgent"
  

Haz los cambios siguientes:

  • QUOTA_PROJECT_ID: el ID del proyecto de cuota. Puedes elegir cualquier proyecto con la facturación habilitada.
  • FOLDER_NUMBER: el ID numérico de la carpeta en la que quieres crear el agente de servicio.

Organización

Los siguientes comandos realizan las tareas necesarias para crear orquestaciones a nivel de organización:

  # Set up the quota project
  gcloud config set billing/quota_project QUOTA_PROJECT_ID

  # Enable OS Config API
  gcloud services enable osconfig.googleapis.com

  # Create an OS config service agent
  gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER

  # Create a Progressive Rollout service agent
  gcloud beta services identity create --service=progressiverollout.googleapis.com  --organization=ORGANIZATION_NUMBER

  # Grant the required role to the OS config rollout service agent
  gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
  --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/osconfig.rolloutServiceAgent"

  # Grant the required role to the OS config service agent
  gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
  --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/osconfig.serviceAgent"

  # Grant the required role to the Progressive Rollout service agent
  gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
  --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
  --role="roles/progressiverollout.serviceAgent"

Haz los cambios siguientes:

  • QUOTA_PROJECT_ID: el ID del proyecto de cuota. Puedes elegir cualquier proyecto con la facturación habilitada.
  • ORGANIZATION_NUMBER con el ID numérico de la organización en la que quieres crear el agente de servicio.

Configurar un proyecto de cuota o de facturación para las orquestaciones de organizaciones y carpetas

Cuando usas orquestadores de políticas para gestionar recursos de políticas de SO en tu organización o en tus carpetas, envías solicitudes a una API basada en cliente. Se necesita un proyecto de cuota para las APIs basadas en clientes. Para obtener más información sobre las APIs basadas en clientes y la configuración de proyectos de cuota, consulta el artículo Descripción general de los proyectos de cuota.

Cuando uses la CLI de gcloud o la API REST para llamar a los métodos del orquestador de políticas, especifica el proyecto de cuota de la siguiente manera:

gcloud

Define tu proyecto de cuota en la propiedad de configuración de gcloud CLI:

gcloud config set billing/quota_project QUOTA_PROJECT_ID

Sustituye QUOTA_PROJECT_ID por el ID del proyecto de cuota.

También puede definir el proyecto de cuota de un comando específico mediante la marca --billing-project, que tiene prioridad sobre la propiedad de configuración.

REST

Añade el encabezado HTTP x-goog-user-project para especificar un proyecto de cuota en cada solicitud. Para obtener más información, consulta Definir el proyecto de cuota con una solicitud REST.

Habilitar la API OS Config

Para usar la función de orquestador de políticas en Gestor de VMs, habilita la API OS Config en los siguientes proyectos:

  • En las orquestaciones a nivel de organización y de carpeta, habilita la API OS Config en el proyecto de cuota.
  • En el caso de las orquestaciones a nivel de proyecto, habilita la API OS Config en el proyecto en el que crees orquestadores de políticas.

Para obtener más información, consulta Habilitar la API OS Config.

Habilita la API Progressive Rollout en los proyectos

Consola

  1. En la Trusted Cloud consola, selecciona el Trusted Cloud proyecto en el que quieras habilitar la API y, a continuación, ve a la página APIs & Services (APIs y servicios):

    Ve a APIs y servicios.

  2. Haz clic en Habilitar APIs y servicios.

  3. Busca "Lanzamiento progresivo".

  4. En los resultados de búsqueda, haz clic en Progressive Rollout API.

  5. Si la API aún no está habilitada, haz clic en Habilitar.

gcloud

  1. Para ver si la API Progressive Rollout está habilitada, ejecuta el siguiente comando después de sustituir PROJECT_ID por el ID del proyecto en el que quieras habilitar la API:

     gcloud services list --project=PROJECT_ID
    

    Si progressiverollout.googleapis.com aparece en el resultado, significa que la API está habilitada.

  2. Si la API no está habilitada, ejecuta el siguiente comando para habilitarla:

     gcloud services enable progressiverollout.googleapis.com
    

    Para obtener más información, consulta gcloud services.

Configurar los agentes de servicio de configuración del SO

El orquestador de políticas usa los agentes de servicio de configuración del SO para realizar acciones en tus proyectos. También depende de la API de lanzamiento progresivo, que tiene sus propios agentes de servicio. Para obtener más información, consulta Agentes de servicio.

Debe crear los agentes de servicio de cada proyecto, carpeta u organización en los que cree el orquestador de políticas. Para que el orquestador de políticas funcione correctamente, otorga los siguientes roles de gestión de identidades y accesos obligatorios a estos agentes de servicio en el recurso principal del orquestador:

  • Agente de servicio de OSConfig (roles/osconfig.serviceAgent) de la cuenta @gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com
  • Agente de servicio de implementación de OSConfig (roles/osconfig.rolloutServiceAgent) de la cuenta @gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com
  • Agente de servicio de implementación progresiva (roles/progressiverollout.serviceAgent) de la cuenta @gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com

Para conceder roles de gestión de identidades y accesos a los agentes de servicio, usa la Trusted Cloud consola o el comando add-iam-policy-binding. Para obtener más información, consulta Conceder un rol al agente de servicio.

Roles obligatorios

  • Para obtener los permisos que necesitas para conceder acceso a los agentes de servicio, pide a tu administrador que te asigne los siguientes roles de gestión de identidades y accesos en el proyecto, la carpeta o la organización a los que quieras conceder acceso:

    Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    Estos roles predefinidos contienen los permisos necesarios para conceder acceso a los agentes del servicio. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

    Permisos obligatorios

    Para conceder acceso a los agentes del servicio, se necesitan los siguientes permisos:

    • Para dar acceso a los agentes de servicio a un proyecto, sigue estos pasos:
      • resourcemanager.projects.getIamPolicy
      • resourcemanager.projects.setIamPolicy
    • Para conceder acceso a una carpeta a los agentes de servicio, sigue estos pasos:
      • resourcemanager.folders.getIamPolicy
      • resourcemanager.folders.setIamPolicy
    • Concede acceso a una organización a los agentes de servicio:
      • resourcemanager.organizations.getIamPolicy
      • resourcemanager.organizations.setIamPolicy

    También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Para crear los agentes de servicio, sigue estos pasos.

  1. Revisa el formato de la dirección de correo del agente de servicio de cada recurso:

    Proyecto

    • service-PROJECT_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com

    Sustituye PROJECT_NUMBER por el ID numérico del proyecto en el que crees los orquestadores de políticas.

    Carpeta

    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com

    Sustituye FOLDER_NUMBER por el ID numérico de la carpeta en la que crees los orquestadores de políticas.

    Organización

    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com

    Sustituye ORGANIZATION_NUMBER por el ID numérico de la organización en la que crees los orquestadores de políticas.

  2. Para crear el agente de servicio de una API y un recurso específicos, usa el comando gcloud beta services identity create:

    Proyecto

    # Create an OS config service agent
    gcloud beta services identity create --service=osconfig.googleapis.com  --project=PROJECT_NUMBER
    
    # Create a Progressive Rollout service agent
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --project=PROJECT_NUMBER
    

    Sustituye PROJECT_NUMBER por el ID numérico del proyecto en el que quieras crear el agente de servicio.

    Carpeta

    # Create an OS config service agent
    gcloud beta services identity create --service=osconfig.googleapis.com  --folder=FOLDER_NUMBER
    
    # Create a Progressive Rollout service agent
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --folder=FOLDER_NUMBER
    

    Sustituye FOLDER_NUMBER por el ID numérico de la carpeta en la que quieras crear el agente de servicio.

    Organización

    # Create an OS config service agent
    gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER
    
    # Create a Progressive Rollout service agent
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --organization=ORGANIZATION_NUMBER
    

    Sustituye ORGANIZATION_NUMBER por el ID numérico de la organización en la que quieras crear el agente de servicio.

Conceder roles de gestión de identidades y accesos a los agentes de servicio

Para asignar roles al agente de servicio, ejecuta el gcloud add-iam-policy-binding de la siguiente manera:

Proyecto

# Grant the required role to the OS config rollout service agent
 gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"

 # Grant the required role to the OS config service agent
 gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"

 # Grant the required role to the Progressive Rollout service agent
 gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

Sustituye PROJECT_NUMBER por el ID numérico del proyecto al que se va a añadir el enlace de la política de gestión de identidades y accesos.

Carpeta

# Grant the required role to the OS config rollout service agent
gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"

# Grant the required role to the OS config service agent
gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"

# Grant the required role to the Progressive Rollout service agent
gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
--member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

Sustituye FOLDER_NUMBER por el ID numérico de la carpeta a la que se va a añadir el enlace de la política de gestión de identidades y accesos.

Organización

# Grant the required role to the OS config rollout service agent
gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"

 # Grant the required role to the OS config service agent
 gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.s3ns-system.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"

 # Grant the required role to the Progressive Rollout service agent
 gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
--member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.s3ns-system.iam.gserviceaccount.com" \
--role="roles/progressiverollout.serviceAgent"

Sustituye ORGANIZATION_NUMBER por el ID numérico de la organización a la que se va a añadir el enlace de la política de gestión de identidades y accesos.

Siguientes pasos