En esta página, se describen los requisitos previos para usar la función del orquestador de políticas en VM Manager.
Comandos de gcloud CLI 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 del orquestador de políticas.
Proyecto
Los siguientes comandos realizan las tareas necesarias para crear orquestaciones a nivel del proyecto:
- Habilita la API de OS Config para el proyecto en el que creas el orquestador de políticas del SO.
- Habilita la API de Progressive Rollout para el proyecto en el que creas el organizador de políticas de SO.
- Crea los agentes de servicio necesarios, si aún no se crearon.
- Otorga 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.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.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.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
Reemplaza lo siguiente:
PROJECT_ID: Es el ID numérico del proyecto en el que deseas crear el agente de servicio.PROJECT_NUMBER: Es el número de recurso del proyecto que Google asignó cuando creaste el proyecto.
Para obtener más información, consulta El recurso project.
Carpeta
Los siguientes comandos realizan las tareas necesarias para crear orquestaciones a nivel de la carpeta:
- Configura un proyecto de cuota.
- Habilita la API de OS Config para el proyecto en el que creas el orquestador de políticas del SO.
- Crea los agentes de servicio necesarios, si aún no se crearon.
- Otorga 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.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.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.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
Reemplaza lo siguiente:
QUOTA_PROJECT_ID: Es el ID del proyecto de cuota. Puedes elegir cualquier proyecto que tenga habilitada la facturación.FOLDER_NUMBER: Es el ID numérico de la carpeta en la que deseas crear el agente de servicio.
Organización
Los siguientes comandos realizan las tareas necesarias para crear orquestaciones a nivel de la organización:
- Configura un proyecto de cuota.
- Habilita la API de OS Config para el proyecto en el que creas el orquestador de políticas del SO.
- Crea los agentes de servicio necesarios, si aún no se crearon.
- Otorga 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.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.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.iam.gserviceaccount.com" \ --role="roles/progressiverollout.serviceAgent"
Reemplaza lo siguiente:
QUOTA_PROJECT_ID: Es el ID del proyecto de cuota. Puedes elegir cualquier proyecto que tenga habilitada la facturación.ORGANIZATION_NUMBERpor el ID numérico de la organización en la que deseas crear el agente de servicio.
Configura un proyecto de cuota o facturación para las orquestaciones de la organización y la carpeta
Cuando usas orquestadores de políticas para administrar recursos de políticas del SO en tu organización o tus 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 usas la 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
Establece 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.
También puedes configurar 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 del orquestador de políticas en VM Manager, habilita la API de OS Config en los siguientes proyectos:
- Para las orquestaciones a nivel de la organización y de la carpeta, habilita la API de OS Config para el proyecto de cuota.
- Para las orquestaciones a nivel del proyecto, habilita la API de OS Config en el proyecto en el que creas los orquestadores de políticas.
Para obtener más información, consulta Habilita la API de OS Config.
Habilita la API de Progressive Rollout para los proyectos
Console
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:
Haz clic en Habilitar APIs y servicios.
Busca "Lanzamiento progresivo".
En los resultados de la búsqueda, haz clic en Progressive Rollout API.
Si la API no está habilitada, haz clic en Habilitar.
gcloud
Para ver si la API de Progressive Rollout está habilitada, enumera los servicios habilitados para tu proyecto:
gcloud services list --project=PROJECT_ID
Reemplaza
PROJECT_IDpor el ID del proyecto para el que deseas habilitar la API.Si
progressiverollout.googleapis.comaparece en el resultado, 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
Configura los agentes del servicio de OS Config
El organizador de políticas usa los agentes de servicio de OS Config 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 u organización en los que crees el orquestador de políticas. Para que el orquestador de políticas funcione correctamente, otorga los siguientes roles de IAM obligatorios a estos agentes de servicio en el recurso principal 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 OSConfig (
roles/osconfig.rolloutServiceAgent) para la cuenta @gcp-sa-osconfig-rollout.iam.gserviceaccount.com - Agente de servicio de Progressive Rollout (
roles/progressiverollout.serviceAgent) para la cuenta @gcp-sa-progrollout.iam.gserviceaccount.com
Para otorgar roles de IAM a los agentes de servicio, usa la Google Cloud consola o el comando add-iam-policy-binding.
Para obtener más información, consulta Cómo otorgar un rol al agente de servicio.
Roles obligatorios
-
Para obtener los permisos que necesitas para 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:
-
Otorga a los agentes de servicio acceso a un proyecto: Administrador de IAM de proyecto (
roles/resourcemanager.projectIamAdmin) -
Otorga a los agentes de servicio acceso a una carpeta:
Administrador de carpetas (
roles/resourcemanager.folderAdmin) -
Otorga 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 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.
-
Otorga a los agentes de servicio acceso a un proyecto: Administrador de IAM de proyecto (
Para crear los agentes de servicio, haz lo siguiente:
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.comservice-PROJECT_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.comservice-PROJECT_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com
Reemplaza
PROJECT_NUMBERpor 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.comservice-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.comservice-folder-FOLDER_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com
Reemplaza
FOLDER_NUMBERpor el ID numérico de la carpeta en la que crearás los orquestadores de políticas.Organización
service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig.iam.gserviceaccount.comservice-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.comservice-org-ORGANIZATION_NUMBER@gcp-sa-progrollout.iam.gserviceaccount.com
Reemplaza
ORGANIZATION_NUMBERpor el ID numérico de la organización en la que creas los orquestadores de políticas.Para crear el agente de servicio para una API y un recurso especificados, 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
Reemplaza
PROJECT_NUMBERpor el ID numérico del proyecto en el que deseas 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
Reemplaza
FOLDER_NUMBERpor el ID numérico de la carpeta en la que deseas 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
Reemplaza
ORGANIZATION_NUMBERpor 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 otorgar los roles de agente de servicio, ejecuta 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.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.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.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
# 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.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.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.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ítica de IAM.
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.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.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.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 la política de IAM.
Configura el acceso para proyectos en perímetros de Controles del servicio de VPC
Si usas orquestadores de políticas a nivel de la organización o de la carpeta en proyectos protegidos por los Controles del servicio de VPC, debes otorgar al agente de servicio de OSConfig Rollout acceso al perímetro de servicio de los Controles del servicio de VPC. Si no otorgas este acceso, el organizador de políticas no podrá crear, actualizar ni borrar asignaciones de políticas del SO para estos proyectos.
Roles obligatorios
Para obtener los permisos que necesitas para configurar los orquestadores de políticas del SO para su uso dentro de los perímetros de los Controles del servicio de VPC,
pídele a tu administrador que te otorgue el rol de IAM de Editor de Access Context Manager (roles/accesscontextmanager.policyEditor) en tu organización.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para configurar los orquestadores de políticas del SO para su uso dentro de los perímetros de los Controles del servicio de VPC. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para configurar organizadores de políticas del SO para su uso dentro de los perímetros de los Controles del servicio de VPC:
-
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.
Crea las reglas de entrada
Para permitir que el agente de servicio acceda a los recursos protegidos por los Controles del servicio de VPC, agrega una regla de entrada al perímetro de servicio pertinente.
Para obtener más información sobre cómo crear reglas de entrada, consulta Configura políticas de entrada y salida.
Carpeta
Console
- En la consola de Google Cloud , ve a la página Controles del servicio de VPC.
- Selecciona tu organización.
- En la página Controles del servicio de VPC, selecciona la política de acceso que contiene el perímetro de servicio que deseas actualizar.
- Haz clic en el nombre del perímetro de servicio que quieres actualizar y, luego, en Editar.
- Haz clic en Política de entrada.
- Haz clic en Agregar una regla de entrada.
- En la sección De, especifica la identidad del agente de servicio:
- En Identidades > Identidad, selecciona Seleccionar identidades y grupos.
- Haz clic en Agregar identidades.
- Ingresa la dirección de correo electrónico que identifica al siguiente agente de servicio de implementación de OSconfig:
service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.comReemplaza
FOLDER_NUMBERpor el ID numérico de la carpeta.
- En la sección Para, especifica las operaciones permitidas:
- En Recursos > Proyectos, selecciona Todos los proyectos.
- En Operaciones o roles de IAM, selecciona Operaciones seleccionadas.
- Haz clic en Agregar operaciones y, luego, agrega la siguiente operación:
- Agrega el servicio
osconfig.googleapis.com. - Haz clic en Todos los métodos.
- Agrega el servicio
- Haz clic en Listo.
- Haz clic en Guardar.
gcloud
Para agregar la regla de entrada, crea un archivo YAML que la contenga y usa el comando gcloud access-context-manager perimeters update con la marca --set-ingress-policies.
Crea un archivo YAML de política de entrada llamado
ingress_policy.yamlcon el siguiente contenido:- ingressFrom: identities: - serviceAccount:service-folder-FOLDER_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: osconfig.googleapis.com methodSelectors: - method: "*" resources: - "*"Reemplaza
FOLDER_NUMBERpor el ID numérico de la carpeta.Agrega la política de entrada al perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress_policy.yamlReemplaza
PERIMETER_NAMEpor el nombre de tu perímetro de servicio. Por ejemplo,accessPolicies/1234567890/servicePerimeters/example_perimeter
Organización
Console
- En la consola de Google Cloud , ve a la página Controles del servicio de VPC.
- Selecciona tu organización.
- En la página Controles del servicio de VPC, selecciona la política de acceso que contiene el perímetro de servicio que deseas actualizar.
- Haz clic en el nombre del perímetro de servicio que quieres actualizar y, luego, en Editar.
- Haz clic en Política de entrada.
- Haz clic en Agregar una regla de entrada.
- En la sección De, especifica la identidad del agente de servicio:
- En Identidades > Identidad, selecciona Seleccionar identidades y grupos.
- Haz clic en Agregar identidades.
- Ingresa la dirección de correo electrónico que identifica al siguiente agente de servicio de implementación de OSconfig:
service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.comReemplaza
ORGANIZATION_NUMBERpor el ID numérico de la organización.
- En la sección Para, especifica las operaciones permitidas:
- En Recursos > Proyectos, selecciona Todos los proyectos.
- En Operaciones o roles de IAM, selecciona Operaciones seleccionadas.
- Haz clic en Agregar operaciones y, luego, agrega la siguiente operación:
- Agrega el servicio
osconfig.googleapis.com. - Haz clic en Todos los métodos.
- Agrega el servicio
- Haz clic en Listo.
- Haz clic en Guardar.
gcloud
Para agregar la regla de entrada, crea un archivo YAML que la contenga y usa el comando gcloud access-context-manager perimeters update con la marca --set-ingress-policies.
Crea un archivo YAML de política de entrada llamado
ingress_policy.yamlcon el siguiente contenido:- ingressFrom: identities: - serviceAccount:service-org-ORGANIZATION_NUMBER@gcp-sa-osconfig-rollout.iam.gserviceaccount.com sources: - accessLevel: '*' ingressTo: operations: - serviceName: osconfig.googleapis.com methodSelectors: - method: "*" resources: - "*"Reemplaza
ORGANIZATION_NUMBERpor el ID numérico de la organización.Agrega la política de entrada al perímetro:
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress_policy.yamlReemplaza
PERIMETER_NAMEpor el nombre de tu perímetro de servicio. Por ejemplo,accessPolicies/1234567890/servicePerimeters/example_perimeter
Próximos pasos
- Obtén más información para administrar asignaciones de políticas del SO con el organizador de políticas.
- Obtén más información para ver y editar los orquestadores de políticas.