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 con la facturación habilitada.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 con la facturación habilitada.ORGANIZATION_NUMBER
por 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 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.
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 de 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 & Services:
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, 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.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 consola de Google Cloud o el comando add-iam-policy-binding
.
Para obtener más información, consulta Cómo otorgar un rol al agente de servicio.
Roles requeridos
-
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.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 crearás 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.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_NUMBER
por 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_NUMBER
por 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_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 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.
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.