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.

Configurar un proyecto de cuota 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 Google Cloud consola, selecciona el Google 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 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.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-PROJECT_NUMBER@gcp-sa-progrollout.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.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-folder-FOLDER_NUMBER@gcp-sa-progrollout.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.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com
    • service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.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

    gcloud beta services identity create --service=osconfig.googleapis.com  --project=PROJECT_NUMBER
    
    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

    gcloud beta services identity create --service=osconfig.googleapis.com  --folder=FOLDER_NUMBER
    
    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

    gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER
    
    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 que el orquestador de políticas funcione correctamente, debes conceder todos los roles de agente de servicio necesarios a las cuentas de servicio correspondientes en el recurso principal del orquestador:

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

Para conceder roles de gestión de identidades y accesos a los agentes de servicio, usa la Google 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 asignar roles al agente de servicio, ejecuta el gcloud add-iam-policy-binding de la siguiente manera:

Proyecto

gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud projects add-iam-policy-binding PROJECT_ID \
 --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-progrollout.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

gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
 --member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud resource-manager folders add-iam-policy-binding FOLDER_NUMBER \
--member="serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-progrollout.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

gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com" \
 --role="roles/osconfig.rolloutServiceAgent"
 gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
 --member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.com" \
 --role="roles/osconfig.serviceAgent"
gcloud organizations add-iam-policy-binding ORGANIZATION_NUMBER \
--member="serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.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