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:
- Habilita la API OS Config en el proyecto en el que crees el orquestador de políticas de SO.
- Habilita la API Progressive Rollout en el proyecto en el que crees el orquestador de políticas de SO.
- Crea los agentes de servicio necesarios, si aún no se han creado.
- Concede roles de IAM a los agentes de servicio.
# 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:
- Configura un proyecto de cuota.
- Habilita la API OS Config en el proyecto en el que crees el orquestador de políticas de SO.
- Crea los agentes de servicio necesarios, si aún no se han creado.
- Concede roles de IAM a los agentes de servicio.
# 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:
- Configura un proyecto de cuota.
- Habilita la API OS Config en el proyecto en el que crees el orquestador de políticas de SO.
- Crea los agentes de servicio necesarios, si aún no se han creado.
- Concede roles de IAM a los agentes de servicio.
# 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
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):
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 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:
-
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 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.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.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
- 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.