Use políticas de SO para manter as configurações de software consistentes nas instâncias de máquina virtual (VM, na sigla em inglês) do Linux e do Windows.
Antes de começar
- Analise a política do SO e a atribuição da política do SO.
- Revise as cotas de configuração do SO.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Administrador de OSPolicyAssignment (
roles/osconfig.osPolicyAssignmentAdmin
). Contém permissões para criar, excluir, atualizar, receber e listar atribuições de políticas do SO. - Editor de OSPolicyAssignment (
roles/osconfig.osPolicyAssignmentEditor
). Contém permissões para atualizar, receber e listar atribuições de políticas do SO. - Visualizador de OSPolicyAssignment (
roles/osconfig.osPolicyAssignmentViewer
). Contém permissões de acesso somente leitura para receber e listar atribuições de políticas do SO. PROJECT_ID
: o ID do projeto;USER_ID
: o nome de usuário do Google Workspace.- Configure o VM Manager.
- Atribua as permissões necessárias aos usuários.
- Leia a política do SO e a atribuição de política do SO.
- Crie os recursos de políticas do SO.
Para criar e implantar a atribuição de política do SO, use um dos seguintes métodos:
Console
Para criar e implantar uma atribuição de política de SO, siga estas etapas:
- No cliente local, crie ou faça o download de uma política de SO. Precisa ser um arquivo JSON ou YAML. Para mais informações sobre como criar políticas do SO ou ver amostras de políticas do SO, consulte Políticas do SO.
No console do Google Cloud, acesse a página Políticas do SO.
Clique em Criar atribuição de política do SO.
Na seção ID da atribuição, forneça um nome para a atribuição da política do SO. Consulte a Convenção de nomenclatura de recursos.
Na seção Políticas do SO, faça upload do arquivo da política do SO.
Na seção Instâncias de VM de destino, especifique as VMs de destino.
- Selecione a zona que contém as VMs às quais você quer aplicar a política.
- Selecione as famílias do SO.
- Opcional: é possível filtrar ainda mais as VMs especificando inclusões e exclusões.
Por exemplo, é possível selecionar todas as VMs do Ubuntu no ambiente de teste e excluir aquelas que executam o Google Kubernetes Engine. Basta especificar o seguinte:
- Família do SO:
ubuntu
- Incluir:
env:test
,env:staging
- Excluir:
goog-gke-node
Especifique um plano de lançamento.
- Especifica o tamanho da onda (também conhecido como orçamento de interrupção). Por exemplo, 10%.
- Especifique o tempo de espera. Por exemplo, 15 minutes.
Clique em Iniciar lançamento.
gcloud
Para criar e lançar uma atribuição de política de SO em uma zona, siga estas etapas:
Crie um recurso de atribuição de política de SO no formato JSON ou YAML. Esse arquivo define as políticas do SO que você quer aplicar às VMs, as VMs de destino a que as políticas serão aplicadas e a taxa de lançamento em que as políticas do SO serão aplicadas. Para mais informações sobre esse arquivo e amostras de atribuições, consulte Atribuição de política do SO.
Use o comando
os-config os-policy-assignments create
para criar e implantar a atribuição de política do SO em um local especificado.gcloud compute os-config os-policy-assignments create OS_POLICY_ASSIGNMENT_ID \ --location=ZONE \ --file=OS_POLICY_ASSIGNMENT_FILE \ --async
Substitua:
OS_POLICY_ASSIGNMENT_ID
: nome da atribuição da política do SO. Consulte a Convenção de nomenclatura de recursos.ZONE
: zona em que a atribuição de política do SO será criada.OS_POLICY_ASSIGNMENT_FILE
: o caminho absoluto para o arquivo de atribuição de política do SO que você criou na etapa anterior.
Exemplo
gcloud compute os-config os-policy-assignments create my-os-policy-assignment \ --location=asia-south1-a \ --file=/downloads/assignment-config.yaml \ --async
A resposta será semelhante a:
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
Anote o nome do recurso totalmente qualificado para a operação. No exemplo anterior, o nome do recurso totalmente qualificado é:
projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Use esse nome de recurso totalmente qualificado para saber detalhes sobre um lançamento ou cancelar um lançamento. Consulte Lançamentos.
Terraform
Para criar uma atribuição de política do SO, use o recurso
google_os_config_os_policy_assignment
.O exemplo a seguir verifica se o servidor da Web Apache está em execução nas VMs CentOS.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
REST
Para criar uma atribuição de política do SO em seu cliente local, conclua as etapas a seguir:
Crie uma atribuição de política do SO. Ele precisa ser um arquivo JSON. Para mais informações sobre como criar atribuições de política do SO ou ver amostras de atribuições de política do SO, consulte Atribuição da política do SO.
Se você quiser usar a atribuição de política de amostra do YAML do SO, será necessário convertê-la em JSON.
Na API, crie uma solicitação
POST
para o métodoprojects.locations.osPolicyAssignments.create
.No corpo da solicitação, cole as especificações de atribuição da política do SO da etapa anterior.
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/OSPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { JSON_OS_POLICY }
Substitua:
PROJECT_ID
: ID do projetoOS_POLICY_ASSIGNMENT_ID
: nome da atribuição de política do SO.JSON_OS_POLICY
: as especificações de atribuição de política do SO criadas na etapa anterior. Ele precisa estar no formato JSON. Para mais informações sobre os parâmetros e o formato, consulteResource: OSPolicyAssignment
.ZONE
: a zona em que a atribuição da política do SO será criada
Exemplo
Por exemplo, para criar uma atribuição de política de SO para o Google Cloud Observability que instala agentes do Logging e Monitoring nas VMs selecionadas usando o exemplo de atribuição de política de SO, conclua as seguintes etapas:
- Converter a amostra em JSON
- Faça a seguinte solicitação:
POST https://osconfig.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/OSPolicyAssignments?osPolicyAssignmentId=OS_POLICY_ASSIGNMENT_ID { "osPolicies": [ { "id": "setup-repo-and-install-package-policy", "mode": "ENFORCEMENT", "resourceGroups": [ { "resources": [ { "id": "setup-repo", "repository": { "yum": { "id": "google-cloud-monitoring", "displayName": "Google Cloud Monitoring Agent Repository", "baseUrl": "https://packages.cloud.google.com/yum/repos/google-cloud-monitoring-el8-x86_64-all", "gpgKeys": [ "https://packages.cloud.google.com/yum/doc/yum-key.gpg", "https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg" ] } } }, { "id": "install-pkg", "pkg": { "desiredState": "INSTALLED", "yum": { "name": "stackdriver-agent" } } } ] } ] } ], "instanceFilter": { "inclusionLabels": [ { "labels": { "used_for": "testing" } } ] }, "rollout": { "disruptionBudget": { "fixed": 10 }, "minWaitDuration": { "seconds": 300 } } }
No console do Google Cloud, acesse a página Políticas do SO.
Clique na guia Atribuições de política do SO.
Na atribuição da política do SO em que você quer cancelar o lançamento, clique em Ação (> Cancelar lançamento.
)Clique em Cancelar lançamento.
- Saiba mais sobre as políticas do SO.
- Gerencie atribuições de políticas do SO.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a gcloud CLI e, em seguida, configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Sistemas operacionais compatíveis
Para ver uma lista completa de sistemas operacionais e versões compatíveis com políticas de SO, consulte Detalhes do sistema operacional.
Permissões
Como é possível usar políticas de SO para instalar e gerenciar pacotes de software em uma VM, a criação e a gestão de políticas de SO equivale a conceder acesso de execução remota de código em uma VM.
Quando você configura políticas do SO, as permissões do IAM são usadas para controlar o acesso aos recursos da política e às atividades são registradas em auditoria. No entanto, os usuários ainda podem executar códigos na VM, o que representa um possível risco de segurança. Para atenuar esse risco, recomendamos que você forneça apenas o acesso necessário para cada usuário.
Os proprietários de um projeto têm acesso total para criar e gerenciar atribuições de política do SO. Para todos os outros usuários, você precisa conceder permissões. É possível conceder um dos seguintes papéis granulares:
Exemplo de comando para definir permissões
Para conceder acesso de administrador a um usuário para atribuições de política do SO, execute o seguinte comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member user:USER_ID@gmail.com \ --role roles/osconfig.osPolicyAssignmentAdmin
Substitua:
Criar uma atribuição de política do SO
Para criar e implantar uma atribuição de política de SO, siga estas etapas:
Lançamentos
As atribuições de políticas do SO são implantadas de acordo com uma taxa de lançamento. Isso significa que as atribuições que visam um conjunto de VMs podem ser implantadas gradualmente e não são aplicadas a todas as VMs imediatamente. As alterações são lançadas gradualmente para que você tenha a oportunidade de intervir e cancelar o lançamento se novas alterações causarem regressão.
Quando as chamadas de método para uma API podem levar muito tempo para serem concluídas, a API retorna uma operação de longa duração (LRO, na sigla em inglês). Para mais informações sobre LROs, consulte Operações de longa duração.
A API OS Config cria uma LRO sempre que você cria, atualiza ou exclui uma atribuição de política do SO. Cada LRO retorna um recurso de operação. Este recurso de operação é semelhante ao seguinte:
Create request issued for: [my-os-policy-assignment] Check operation [projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa] for status.
Cada operação de criação, atualização ou exclusão também gera uma nova revisão de atribuição de política de SO. Para visualizar as revisões de uma atribuição de política do SO, consulte Listar revisões de atribuição de política do SO.
Use a Google Cloud CLI para ver os detalhes de um lançamento ou para cancelá-lo.
Ver detalhes de um lançamento
Para conferir detalhes de um lançamento, use o comando
os-config os-policy-assignments operations describe
.gcloud compute os-config os-policy-assignments operations describe FULLY_QUALIFIED_OPERATION_NAME
Substitua
FULLY_QUALIFIED_OPERATION_NAME
pelo nome de recurso totalmente qualificado da operação que é retornada da operação de criação, atualização ou exclusão.Exemplo
gcloud compute os-config os-policy-assignments operations describe \ projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Exemplo de saída
done: true metadata: '@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignmentOperationMetadata apiMethod: CREATE osPolicyAssignment: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment@cfb78790-41d8-40d1-b8a1-1eaf6011b909 rolloutStartTime: '2021-04-15T00:53:52.963569Z' rolloutState: SUCCEEDED rolloutUpdateTime: '2021-04-15T00:53:53.094041Z' name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/cfb78790-41d8-40d1-b8a1-1eaf6011b909 response: '@type': type.googleapis.com/google.cloud.osconfig.$$api-version$$.OSPolicyAssignment baseline: true description: My test policy instanceFilter: inclusionLabels: - labels: label-key-not-targeting-instances: label-value-not-targeting-instances name: projects/3841234882888/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment osPolicies: - id: q-test-policy mode: ENFORCEMENT resourceGroups: - osFilter: osShortName: centos osVersion: '7' resources: - id: add-repo repository: yum: baseUrl: https://packages.cloud.google.com/yum/repos/google-cloud-ops-agent-el7-x86_64-all
Cancelar um lançamento
Console
gcloud
Para cancelar um lançamento, use o comando
gcloud compute os-config os-policy-assignments operations cancel
.gcloud compute os-config os-policy-assignments operations cancel FULLY_QUALIFIED_OPERATION_NAME
Substitua
FULLY_QUALIFIED_OPERATION_NAME
pelo nome de recurso totalmente qualificado da operação que é retornada da operação de criação, atualização ou exclusão.Exemplo
gcloud compute os-config os-policy-assignments operations cancel \ projects/384123488288/locations/asia-south1-a/osPolicyAssignments/my-os-policy-assignment/operations/fb2011d6-61de-46f1-afdb-bc96bdb3fbaa
Se o comando for bem-sucedido, nenhuma saída será retornada.
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-09-03 UTC.
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"Problema na tradução" },{ "type": "thumb-down", "id": "otherDown", "label":"Outro" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Fácil de entender" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Meu problema foi resolvido" },{ "type": "thumb-up", "id": "otherUp", "label":"Outro" }] -