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
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):
Haz clic en Habilitar APIs y servicios.
Busca "Lanzamiento progresivo".
En los resultados de búsqueda, haz clic en Progressive Rollout API.
Si la API aún no está habilitada, haz clic en Habilitar.
gcloud
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.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.
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.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:
-
Concede acceso a un proyecto a los agentes de servicio:
Administrador de gestión de identidades y accesos de proyectos (
roles/resourcemanager.projectIamAdmin
) -
Para conceder acceso a agentes de servicio a una carpeta, sigue estos pasos:
Administrador de carpetas (
roles/resourcemanager.folderAdmin
) -
Concede a los agentes de servicio acceso a proyectos, carpetas y organizaciones:
Administrador de la organización (
roles/resourcemanager.organizationAdmin
)
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.
-
Concede acceso a un proyecto a los agentes de servicio:
Administrador de gestión de identidades y accesos de proyectos (
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
- Consulta cómo gestionar las asignaciones de políticas de SO con el orquestador de políticas.
- Consulta cómo ver y editar orquestadores de políticas.