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 VM Manager.

Configura un proyecto de cuota para las orquestaciones de organización y carpetas

Cuando usas orquestadores de políticas para administrar recursos de políticas del SO en tu organización o carpetas, realizas solicitudes a una API basada en el cliente. Se requiere un proyecto de cuota para las APIs basadas en el cliente. Para obtener más información sobre las APIs basadas en el cliente y la configuración de proyectos de cuota, consulta Descripción general del proyecto de cuota.

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

gcloud

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

gcloud config set billing/quota_project QUOTA_PROJECT_ID

Reemplaza QUOTA_PROJECT_ID por el ID del proyecto de cuota.

Como alternativa, configura el proyecto de cuota para un comando específico con la marca --billing-project, que tiene prioridad sobre la propiedad de configuración.

REST

Agrega el encabezado HTTP x-goog-user-project para especificar un proyecto de cuota en cada solicitud. Para obtener más detalles, consulta Configura el proyecto de cuota con una solicitud de REST.

Habilita la API de OS Config

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

  • Para orquestaciones a nivel de la organización y de la carpeta, habilita la API de configuración del SO para el proyecto de cuota.
  • Para orquestaciones a nivel del proyecto, habilita la API de configuración del SO en el proyecto en el que creas orquestadores de políticas.

Para obtener más información, consulta Habilita la API de configuración del SO.

Habilita la API de lanzamiento progresivo para los proyectos

Console

  1. En la consola de Google Cloud, selecciona el proyecto de Google Cloud para el que deseas habilitar la API y, luego, ve a la página 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 la búsqueda, haz clic en API de Progressive Rollout.

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

gcloud

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

     gcloud services list --project=PROJECT_ID
    

    Si progressiverollout.googleapis.com aparece en el resultado, 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

Configura 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 Progressive Rollout, que tiene sus propios agentes de servicio. Para obtener más información, consulta Agentes de servicio.

Debes crear los agentes de servicio para cada proyecto, carpeta o organización en los que crees el orquestador de políticas.

Para crear los agentes de servicio, haz lo siguiente:

  1. Revisa el formato de la dirección de correo electrónico del agente de servicio para 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

    Reemplaza PROJECT_NUMBER por el ID numérico del proyecto en el que creas 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

    Reemplaza FOLDER_NUMBER por el ID numérico de la carpeta en la que creas 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

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

  2. Para crear el agente de servicio de una API y un recurso especificados, 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
    

    Reemplaza PROJECT_NUMBER por el ID numérico del proyecto en el que deseas 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
    

    Reemplaza FOLDER_NUMBER por el ID numérico de la carpeta en la que deseas 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
    

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

Otorga roles de IAM a los agentes de servicio

Para que el orquestador de políticas funcione correctamente, debes otorgar todos los roles de agente de servicio necesarios a las cuentas de servicio correspondientes, en el recurso superior del orquestador:

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

Para otorgar roles de IAM a los agentes de servicio, usa la consola de Google Cloud o el comando add-iam-policy-binding. Para obtener más información, consulta Otorga un rol al agente de servicio.

Roles obligatorios

  • Para obtener los permisos que necesitas a fin de otorgar acceso a los agentes de servicio, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto, la carpeta o la organización a los que otorgas acceso:

    Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

    Estos roles predefinidos contienen los permisos necesarios para otorgar acceso a los agentes de servicio. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

    Permisos necesarios

    Se requieren los siguientes permisos para otorgar acceso a los agentes de servicio:

    • Otorga a los agentes de servicio acceso a un proyecto:
      • resourcemanager.projects.getIamPolicy
      • resourcemanager.projects.setIamPolicy
    • Otorga a los agentes de servicio acceso a una carpeta:
      • resourcemanager.folders.getIamPolicy
      • resourcemanager.folders.setIamPolicy
    • Otorga a los agentes de servicio acceso a una organización:
      • resourcemanager.organizations.getIamPolicy
      • resourcemanager.organizations.setIamPolicy

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

Para otorgar los roles de agente de servicio, ejecuta 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"

Reemplaza PROJECT_NUMBER por el ID numérico del proyecto al que se agrega la vinculación de la política de IAM.

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"

Reemplaza FOLDER_NUMBER por el ID numérico de la carpeta a la que se agrega la vinculación de políticas de IAM.

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"

Reemplaza ORGANIZATION_NUMBER por el ID numérico de la organización a la que se agrega la vinculación de políticas de IAM.

Próximos pasos