Executar agentes de VM em todos os nós do GKE nas organizações


Esta página descreve como garantir que o VM Manager esteja ativado em todas as instâncias do Compute Engine, incluindo VMs do Google Kubernetes Engine em uma organização, pasta ou projeto, usando o Serviço de política da organização.

Este guia é destinado a equipes de segurança que querem garantir que todos os programas necessários, como agentes de segurança e monitoramento, sejam executados em todas as instâncias de uma organização, pasta ou projeto. Para aplicar a configuração somente com a política da organização, use este guia. Para uma abordagem de configuração como código, use o Config Sync. O Config Sync permite configurar e controlar muitos aspectos dos clusters e oferece valor além das políticas da organização.

Antes de ler esta página, confira se você já conhece o VM Manager e as restrições do Resource Manager.

Este guia mostra como aplicar o uso do VM Manager em todos os projetos de uma organização ou pasta. Este guia não mostra como configurar e usar o VM Manager com políticas do SO. Para essas instruções, consulte Criar uma atribuição de política do SO.

Sobre o VM Manager

O VM Manager é um conjunto de ferramentas que pode gerenciar sistemas operacionais para grandes frotas de máquina virtual (VM) que executam o Windows e o Linux no Compute Engine. É possível usar o VM Manager para aplicar políticas do SO e personalizar os programas executados em VMs. Por exemplo, é possível definir uma política para instalar um agente em um recurso e reutilizar essa política em vários recursos. O VM Manager fica desativado por padrão nos projetos do Google Cloud .

É possível refinar onde o VM Manager aplica políticas usando OSPolicyAssignments, que permite definir o escopo das políticas do SO para VMs específicas usando seletores. Por exemplo, todas as VMs de nó do GKE têm o rótulo goog-gke-node, que pode ser segmentado com uma atribuição de política do SO.

Políticas da organização e VM Manager

Se a sua Google Cloud organização tiver vários níveis de hierarquia, como pastas e subpastas, a ativação manual do VM Manager em todos esses projetos pode causar uma sobrecarga de gerenciamento desnecessária. É possível exigir que todos os projetos em pastas ou uma organização ativem o VM Manager em todas as VMs usando o serviço de política da organização com a restrição constraints/compute.requireOsConfig. Alguns dos benefícios de aplicar o VM Manager usando uma política da organização incluem:

  • Todos os novos projetos adicionam o rótulo de metadados enable-osconfig=TRUE a todos os projetos e VMs.
  • Se alguém tentar remover esse marcador ou defini-lo como um valor diferente de true, a mudança será rejeitada.
  • Se alguém tentar criar ou atualizar uma VM de modo que defina a chave de metadados enable-osconfig como um valor diferente de true, essa mudança será rejeitada.

Antes de começar

Antes de começar, veja se você realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ativar a API Google Kubernetes Engine
  • Se você quiser usar a CLI do Google Cloud para essa tarefa, instale e, em seguida, inicialize a CLI gcloud. Se você instalou a gcloud CLI anteriormente, instale a versão mais recente executando gcloud components update.
  • Verifique se você já está usando o VM Manager com políticas do SO e atribuições de políticas do SO para executar agentes nas VMs. Para instruções, consulte Criar uma atribuição de política do SO.
  • Enable the Cloud Resource Manager API, OS Config API APIs.

    Enable the APIs

Limitações

A política da organização constraints/compute.requireOsConfig tem as seguintes limitações:

  • Os recursos com violações anteriores não são alterados pela nova política da organização. É possível definir os metadados da política manualmente ou usando gcloud em recursos atuais.
  • Qualquer pessoa com permissão para mudar os metadados em instâncias do Compute Engine no projeto pode desativar o osconfig-agent na VM definindo o campo de metadados osconfig-disabled-features.
  • Se o osconfig-agent não estiver em execução, a VM vai aparecer como fora de conformidade no painel do VM Manager. Isso pode acontecer, por exemplo, se um usuário desativou o agente manualmente.

Funções exigidas

Para receber as permissões necessárias a fim de gerenciar as políticas da organização, peça ao administrador para conceder a você o papel do IAM de Administrador de políticas da organização (roles/orgpolicy.policyAdmin) na organização. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Ativar compute.requireOsConfig em uma organização

Depois de ativar o VM Manager e definir um OSPolicyAssignment para suas VMs, você pode garantir que o VM Manager seja ativado por padrão em todos os novos projetos com a política da organização constraints/compute.requireOsConfig. A forma de aplicar constraints/compute.requireOsConfig depende da versão da API que você usa.

API Organization Policy v2

É possível aplicar a restrição constraints/compute.requireOsConfig em um recurso do Google Cloud , como uma pasta ou uma organização, usando a CLI gcloud ou o console Google Cloud .

gcloud

  1. Confirme se a restrição compute.requireOsConfig não foi aplicada:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig \
        --organization=ORGANIZATION_ID
    

    Substitua ORGANIZATION_ID pelo ID da organização.

    Se uma política não for definida, o comando vai retornar um erro NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

    Se a política existir, o comando vai retornar a política atual. A aplicação de uma nova política substitui a política atual, se houver uma.

  2. Crie um arquivo temporário /tmp/policy.yaml para armazenar a política:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    
  3. Execute o comando set-policy:

    gcloud org-policies set-policy /tmp/policy.yaml
    
  4. Confirme se a nova política foi aplicada:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig --effective \
        --organization=ORGANIZATION_ID
    

    A saída deste comando é semelhante a:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    

Console

  1. No console do Google Cloud , acesse a página Políticas da organização.

    Acessar as políticas da organização

  2. No seletor de projetos, selecione o projeto, a pasta ou a organização em que você quer editar as políticas da organização.

  3. Na página Políticas da organização, use o filtro para pesquisar compute.requireOsConfig.

  4. Clique no nome da política para abrir a página Detalhes da política.

  5. Clique em Gerenciar política para atualizar a política da organização para este recurso.

  6. Na página Editar política, selecione Substituir a política do editor principal.

  7. Selecione Adicionar uma regra.

  8. Em Aplicação, mude a aplicação dessa política da organização para ativada.

  9. Para aplicar a política, clique em Definir política.

API Resource Manager v1

  1. Confirme se a restrição compute.requireOsConfig não foi aplicada:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    Substitua ORGANIZATION_ID pelo ID da organização.

    Se uma política não for definida, o comando vai retornar uma política incompleta, como no exemplo abaixo:

    constraint: "constraints/compute.requireOsConfig"
    etag: BwVJi0OOESU=
    

    Se a política existir, o comando vai retornar a política atual. A aplicação de uma nova política substitui a política atual, se houver uma.

  2. Defina a política a ser aplicada na organização:

    gcloud resource-manager org-policies enable-enforce constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    A saída deste comando é semelhante a:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    etag: BwVJitxdiwY=
    
  3. Confirme se a nova política foi aplicada:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --effective \
        --organization ORGANIZATION_ID
    

    A saída deste comando é semelhante a:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    

As alterações nas políticas da organização podem levar até 15 minutos para serem totalmente aplicadas.

Para mais informações sobre outras políticas que podem ser aplicadas ou como modificar ou excluir políticas, consulte a documentação do Resource Manager.

A seguir

Saiba mais sobre a geração de registros de auditoria do GKE.