Esta página descreve os pré-requisitos para usar a funcionalidade de orquestração de políticas no VM Manager.
Comandos da CLI gcloud para pré-requisitos do orquestrador de políticas
Esta secção apresenta todos os comandos gcloud
que tem de executar antes de poder usar a funcionalidade de orquestração de políticas.
Projeto
Os seguintes comandos executam as tarefas necessárias para criar orquestrações ao nível do projeto:
- Ative a API OS Config para o projeto no qual cria o orquestrador de políticas do SO.
- Ative a API Progressive Rollout para o projeto no qual cria o orquestrador de políticas do SO.
- Crie os agentes de serviço necessários, se ainda não tiverem sido criados.
- Conceda funções de IAM aos agentes do serviço.
# 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"
Substitua o seguinte:
PROJECT_ID
: o ID numérico do projeto no qual quer criar o agente do serviço.PROJECT_NUMBER
: o número do recurso do projeto atribuído pela Google quando criou o projeto.
Para mais informações, consulte o artigo O recurso de projeto.
Pasta
Os seguintes comandos executam as tarefas necessárias para criar orquestrações ao nível da pasta:
- Configure um projeto de quota.
- Ative a API OS Config para o projeto no qual cria o orquestrador de políticas do SO.
- Crie os agentes de serviço necessários, se ainda não tiverem sido criados.
- Conceda funções de IAM aos agentes do serviço.
# 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"
Substitua o seguinte:
QUOTA_PROJECT_ID
: o ID do projeto do projeto de quota. Pode escolher qualquer projeto com a faturação ativada.FOLDER_NUMBER
: o ID numérico da pasta na qual quer criar o agente do serviço.
Organização
Os seguintes comandos executam as tarefas necessárias para criar orquestrações ao nível da organização:
- Configure um projeto de quota.
- Ative a API OS Config para o projeto no qual cria o orquestrador de políticas do SO.
- Crie os agentes de serviço necessários, se ainda não tiverem sido criados.
- Conceda funções de IAM aos agentes do serviço.
# 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"
Substitua o seguinte:
QUOTA_PROJECT_ID
: o ID do projeto do projeto de quota. Pode escolher qualquer projeto com a faturação ativada.ORGANIZATION_NUMBER
com o ID numérico da organização na qual quer criar o agente de serviço.
Configure um projeto de quota ou faturação para orquestrações de pastas e organizações
Quando usa orquestradores de políticas para gerir recursos de políticas do SO na sua organização ou pastas, faz pedidos a uma API baseada no cliente. É necessário um projeto de quota para APIs baseadas no cliente. Para mais informações sobre as APIs baseadas no cliente e a configuração de projetos de quota, consulte o artigo Vista geral do projeto de quota.
Quando usa a CLI gcloud ou a API REST para chamar os métodos do orquestrador de políticas, especifique o projeto de quota da seguinte forma:
gcloud
Defina o projeto de quota 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 do projeto de quota.
Em alternativa, defina o projeto de quota para um comando específico através da 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 quota em cada pedido. Para ver detalhes, consulte o artigo
Defina o projeto de quota com um pedido REST.
Ative a API OS Config
Para usar a funcionalidade de orquestração de políticas no VM Manager, ative a API OS Config nos seguintes projetos:
- Para orquestrações ao nível da organização e da pasta, ative a API OS Config para o projeto de quota.
- Para orquestrações ao nível do projeto, ative a API OS Config no projeto onde cria orquestradores de políticas.
Para mais informações, consulte o artigo Ative a API OS Config.
Ative a API de implementação progressiva para os projetos
Consola
Na Google Cloud consola, selecione o Google Cloud projeto para o qual quer ativar a API e, de seguida, aceda à página APIs e serviços:
Clique em Ativar APIs e serviços.
Pesquise "Implementação progressiva".
Nos resultados da pesquisa, clique em API de implementação progressiva.
Se a API ainda não estiver ativada, clique em Ativar.
gcloud
Para ver se a API Progressive Rollout está ativada, execute o seguinte comando depois de substituir
PROJECT_ID
pelo ID do projeto para o qual quer ativar a API:gcloud services list --project=PROJECT_ID
Se
progressiverollout.googleapis.com
aparecer no resultado, a API está ativada.Se a API não estiver ativada, execute o seguinte comando para a ativar:
gcloud services enable progressiverollout.googleapis.com
Para mais informações, consulte
gcloud services
.
Configure os agentes do serviço de configuração do SO
O orquestrador de políticas usa os agentes do serviço OS Config para realizar ações nos seus projetos. Também depende da API de implementação progressiva, que tem os seus próprios agentes de serviço. Para mais informações, consulte o artigo Agentes de serviços.
Tem de criar os agentes de serviço para cada projeto, pasta ou organização em que cria o orquestrador de políticas. Para que o orquestrador de políticas funcione corretamente, conceda as seguintes funções do IAM necessárias a estes agentes de serviço no recurso principal 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 implementação do OSConfig (
roles/osconfig.rolloutServiceAgent
) para a conta @gcp-sa-osconfig-rollout.iam.gserviceaccount.com - Agente do serviço de implementação progressiva (
roles/progressiverollout.serviceAgent
) para a conta @gcp-sa-progrollout.iam.gserviceaccount.com
Para conceder funções IAM aos agentes de serviço, use a Google Cloud consola
ou o comando add-iam-policy-binding
.
Para mais informações, consulte o artigo Conceda uma função ao agente de serviço.
Funções necessárias
-
Para receber as autorizações de que precisa para conceder acesso aos agentes de serviço, peça ao seu administrador que lhe conceda as seguintes funções do IAM no projeto, na pasta ou na organização aos quais está a conceder acesso:
-
Conceda aos agentes de serviço acesso a um projeto:
Administrador de IAM do projeto (
roles/resourcemanager.projectIamAdmin
) -
Conceda aos agentes de serviço acesso a uma pasta:
Administrador da pasta (
roles/resourcemanager.folderAdmin
) -
Conceda 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 atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para conceder acesso aos agentes de serviço. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações 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
-
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
-
Conceda aos agentes de serviço acesso a um projeto:
Administrador de IAM do projeto (
Para criar os agentes de serviço, faça o seguinte.
Reveja o formato do endereço de email 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 onde 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 onde 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 na qual cria os orquestradores de políticas.Para criar o agente de serviço para uma API e um recurso especificados, use o comando
gcloud beta services identity create
:Projeto
# 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
Substitua
PROJECT_NUMBER
pelo ID numérico do projeto no qual quer criar o agente de serviço.Pasta
# 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
Substitua
FOLDER_NUMBER
pelo ID numérico da pasta na qual quer criar o agente de serviço.Organização
# 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
Substitua
ORGANIZATION_NUMBER
pelo ID numérico da organização na qual quer criar o agente de serviço.
Conceda funções IAM aos agentes do serviço
Para conceder as funções de agente do serviço, execute o comando gcloud add-iam-policy-binding
da seguinte forma:
Projeto
# 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"
Substitua PROJECT_NUMBER
pelo ID numérico do projeto ao qual a associação da política de IAM está a ser adicionada.
Pasta
# 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"
Substitua FOLDER_NUMBER
pelo ID numérico da pasta à qual a associação da política de IAM está a ser adicionada.
Organização
# 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"
Substitua ORGANIZATION_NUMBER
pelo ID numérico da organização à qual a associação da política de IAM está a ser adicionada.
O que se segue?
- Saiba como gerir atribuições de políticas de SO através do orquestrador de políticas.
- Saiba como ver e editar orquestradores de políticas.