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
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:
Clique em Ativar APIs e serviços.
Pesquise por "Implantação progressiva".
Nos resultados da pesquisa, clique em API Progressive Rollout.
Se a API ainda não estiver ativada, clique em Ativar.
gcloud
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.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.
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.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:
-
Conceder aos agentes de serviço acesso a um projeto:
Administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin
) -
Conceder aos agentes de serviço acesso a uma pasta:
Administrador de pastas (
roles/resourcemanager.folderAdmin
) -
Conceder aos agentes de serviço acesso a projetos, pastas e organizações:
Administrador da organização (
roles/resourcemanager.organizationAdmin
)
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.
-
Conceder aos agentes de serviço acesso a um projeto:
Administrador do IAM do projeto (
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
- Saiba como gerenciar atribuições de políticas do SO usando o Policy Orchestrator.
- Saiba como acessar e editar os orquestradores de políticas.