Pré-requisitos para usar o orquestrador de políticas

Esta página descreve os pré-requisitos para usar o recurso de orquestrador de políticas no VM Manager.

Configurar um projeto de cota para orquestração de organizações e pastas

Quando você usa orquestradores de políticas para gerenciar recursos de políticas do SO na sua organização ou em pastas, faz solicitações a uma API baseada em cliente. Um projeto de cota é necessário para APIs baseadas em cliente. Para mais informações sobre APIs baseadas em cliente e configuração de projetos de cota, consulte Informações gerais do projeto de cota.

Ao usar a CLI gcloud ou a API REST para chamar os métodos do orquestrador de políticas, especifique o projeto de cota da seguinte maneira:

gcloud

Defina o projeto de cota na propriedade de configuração da CLI gcloud:

gcloud config set billing/quota_project QUOTA_PROJECT_ID

Substitua QUOTA_PROJECT_ID pelo ID do projeto da cota.

Como alternativa, defina o projeto de cota para um comando específico usando a flag --billing-project, que tem precedência sobre a propriedade de configuração.

REST

Adicione o cabeçalho HTTP x-goog-user-project para especificar um projeto de cota em cada solicitação. Para detalhes, consulte Definir o projeto de cota com uma solicitação REST.

Ativar a API OS Config

Para usar o recurso de orquestrador de políticas no VM Manager, ative a API OS Config nos seguintes projetos:

  • Para orquestrações no nível da organização e da pasta, ative a API OS Config para o projeto de cota.
  • Para orquestrações no nível do projeto, ative a API OS Config no projeto em que você cria orquestradores de políticas.

Para mais informações, consulte Ativar a API OS Config.

Ative a API Progressive Rollout para os projetos.

Console

  1. No console do Google Cloud, selecione o projeto do Google Cloud para o qual você quer ativar a API e acesse a página APIs e serviços:

    Acessar APIs e serviços

  2. Clique em Ativar APIs e serviços.

  3. Pesquise por "Implantação progressiva".

  4. Nos resultados da pesquisa, clique em API Progressive Rollout.

  5. Se a API ainda não estiver ativada, clique em Ativar.

gcloud

  1. Para saber se a API Progressive Rollout está ativada, execute o seguinte comando depois de substituir PROJECT_ID pelo ID do projeto em que você quer ativar a API:

     gcloud services list --project=PROJECT_ID
    

    Se progressiverollout.googleapis.com aparecer na saída, a API está ativada.

  2. Se a API não estiver ativada, execute o seguinte comando para ativá-la:

     gcloud services enable progressiverollout.googleapis.com
    

    Para ver mais informações, consulte gcloud services.

Configurar os agentes de serviço de configuração do SO

O orquestrador de políticas usa os agentes de serviço de configuração do SO para realizar ações nos seus projetos. Ele também depende da API Progressive Rollout, que tem os próprios agentes de serviço. Para mais informações, consulte Agentes de serviço.

Você precisa criar os agentes de serviço para cada projeto, pasta ou organização em que criar o orquestrador de políticas.

Para criar os agentes de serviço, faça o seguinte.

  1. Revise o formato do endereço de e-mail do agente de serviço para cada recurso:

    Projeto

    • 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

    Substitua PROJECT_NUMBER pelo ID numérico do projeto em que você cria os orquestradores de políticas.

    Pasta

    • 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

    Substitua FOLDER_NUMBER pelo ID numérico da pasta em que você cria os orquestradores de políticas.

    Organização

    • 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

    Substitua ORGANIZATION_NUMBER pelo ID numérico da organização em que você cria os orquestradores de políticas.

  2. Para criar o agente de serviço de uma API e um recurso especificados, use o comando gcloud beta services identity create:

    Projeto

    gcloud beta services identity create --service=osconfig.googleapis.com  --project=PROJECT_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --project=PROJECT_NUMBER
    

    Substitua PROJECT_NUMBER pelo ID numérico do projeto em que você quer criar o agente de serviço.

    Pasta

    gcloud beta services identity create --service=osconfig.googleapis.com  --folder=FOLDER_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --folder=FOLDER_NUMBER
    

    Substitua FOLDER_NUMBER pelo ID numérico da pasta em que você quer criar o agente de serviço.

    Organização

    gcloud beta services identity create --service=osconfig.googleapis.com --organization=ORGANIZATION_NUMBER
    
    gcloud beta services identity create --service=progressiverollout.googleapis.com  --organization=ORGANIZATION_NUMBER
    

    Substitua ORGANIZATION_NUMBER pelo ID numérico da organização em que você quer criar o agente de serviço.

Conceder papéis do IAM aos agentes de serviço

Para que o orquestrador de políticas funcione corretamente, conceda todos os papéis de agente de serviço necessários às respectivas contas de serviço no recurso pai do orquestrador:

  • Agente de serviço do OSConfig (roles/osconfig.serviceAgent) para a conta @gcp-sa-osconfig.iam.gserviceaccount.com
  • Agente de serviço de lançamento do OSConfig (roles/osconfig.rolloutServiceAgent) para a conta @gcp-sa-osconfig-rollout.iam.gserviceaccount.com
  • Agente de serviço do lançamento progressivo (roles/progressiverollout.serviceAgent) para a conta @gcp-sa-progrollout.iam.gserviceaccount.com

Para conceder papéis do IAM aos agentes de serviço, use o console do Google Cloud ou o comando add-iam-policy-binding. Para mais informações, consulte Conceder um papel ao agente de serviço.

Funções exigidas

  • Para receber as permissões necessárias para conceder acesso aos agentes de serviço, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto, na pasta ou na organização a que você está concedendo acesso:

    Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    Esses papéis predefinidos contêm as permissões necessárias para conceder aos agentes de serviço acesso. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

    Permissões necessárias

    As permissões a seguir são necessárias para conceder acesso aos agentes de serviço:

    • Conceda aos agentes de serviço acesso a um projeto:
      • resourcemanager.projects.getIamPolicy
      • resourcemanager.projects.setIamPolicy
    • Conceda aos agentes de serviço acesso a uma pasta:
      • resourcemanager.folders.getIamPolicy
      • resourcemanager.folders.setIamPolicy
    • Conceda aos agentes de serviço acesso a uma organização:
      • resourcemanager.organizations.getIamPolicy
      • resourcemanager.organizations.setIamPolicy

    Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Para conceder os papéis de agente de serviço, execute o gcloud add-iam-policy-binding da seguinte maneira:

Projeto

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"

Substitua PROJECT_NUMBER pelo ID numérico do projeto ao qual a vinculação de política do IAM está sendo adicionada.

Pasta

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"

Substitua FOLDER_NUMBER pelo ID numérico da pasta à qual a vinculação de política do IAM está sendo adicionada.

Organização

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"

Substitua ORGANIZATION_NUMBER pelo ID numérico da organização à qual a vinculação de política do IAM está sendo adicionada.

A seguir