Execute agentes de VMs em todos os nós do GKE em todas as organizações

Esta página descreve como garantir que o VM Manager está ativado em todas as instâncias do Compute Engine, incluindo as VMs do Google Kubernetes Engine numa organização, numa pasta ou num projeto, através do serviço de políticas da organização.

Este guia destina-se a equipas de segurança que querem garantir que todos os programas necessários, como agentes de segurança e monitorização, são executados em todas as instâncias numa organização, pasta ou projeto. Para aplicar a configuração apenas com a política da organização, use este guia. Para uma abordagem de configuração como código, use o Config Sync. A sincronização de configuração permite-lhe configurar e controlar muitos aspetos dos seus clusters e oferece valor além das políticas da organização.

Antes de ler esta página, certifique-se de que já conhece o VM Manager e as restrições do Resource Manager.

Este guia mostra como aplicar a utilização 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 de SO. Para ver essas instruções, consulte o artigo Crie uma atribuição de política do SO.

Acerca do VM Manager

O VM Manager é um conjunto de ferramentas que podem gerir sistemas operativos para frotas de máquinas virtuais (VMs) de grandes dimensões com Windows e Linux no Compute Engine. Pode usar o Gestor de VMs para aplicar políticas de SO para personalizar os programas executados em VMs. Por exemplo, pode definir uma política para instalar um agente num recurso e reutilizar essa política em vários recursos. O VM Manager está desativado por predefinição nos projetos do Google Cloud.Trusted Cloud

Pode refinar o local onde o VM Manager aplica políticas através de OSPolicyAssignments, que lhe permitem restringir as políticas do SO a VMs específicas através de seletores. Por exemplo, todas as VMs de nós do GKE têm a etiqueta goog-gke-node, que pode segmentar com uma atribuição de política de SO.

Políticas da organização e Gestor de VMs

Se a sua Trusted Cloud organização tiver vários níveis de hierarquia como pastas e subpastas, a ativação do VM Manager em todos estes projetos manualmente pode causar sobrecarga de gestão desnecessária. Pode exigir que todos os projetos em pastas ou numa organização ativem o VM Manager em todas as VMs através do serviço de políticas da organização com a restrição constraints/compute.requireOsConfig. Seguem-se algumas das vantagens da aplicação do Gestor de VMs através de uma política da organização:

  • Todos os novos projetos adicionam a etiqueta de metadados enable-osconfig=TRUE a todos os projetos e VMs.
  • Se alguém tentar remover esta etiqueta ou defini-la para um valor diferente de true, essa alteração é rejeitada.
  • Se alguém tentar criar ou atualizar uma VM de forma a definir a chave de metadados enable-osconfig para um valor diferente de true, essa alteração é rejeitada.

Antes de começar

Antes de começar, certifique-se de que realizou as seguintes tarefas:

  • Ative a API Google Kubernetes Engine.
  • Ative a API Google Kubernetes Engine
  • Se quiser usar a CLI gcloud para esta tarefa, instale-a e, em seguida, inicialize-a. Se instalou anteriormente a CLI gcloud, execute gcloud components update para obter a versão mais recente.
  • Certifique-se de que já está a usar o VM Manager com políticas de SO e atribuições de políticas de SO para executar agentes nas suas VMs. Para ver instruções, consulte o artigo Crie uma atribuição de política do SO.
  • Enable the Cloud Resource Manager API, OS Config API APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Limitações

A política organizacional constraints/compute.requireOsConfig tem as seguintes limitações:

  • Os recursos com violações pré-existentes não são afetados pela nova política da organização. Pode definir os metadados da política manualmente ou através de gcloud em recursos existentes.
  • Qualquer pessoa com autorização para alterar 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 MV é apresentada como não estando em conformidade no painel de controlo do Gestor de MVs. Por exemplo, isto pode acontecer se um utilizador desativar manualmente o agente.

Funções necessárias

Para receber as autorizações de que precisa para gerir políticas de organização, peça ao seu administrador que lhe conceda a função de IAM de administrador de políticas de organização (roles/orgpolicy.policyAdmin) na organização. 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.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Ative compute.requireOsConfig numa organização

Depois de ativar o VM Manager e definir um âmbito OSPolicyAssignment para as suas VMs, pode garantir que o VM Manager está ativado por predefinição em quaisquer novos projetos com a política da organização constraints/compute.requireOsConfig. A forma como aplica constraints/compute.requireOsConfig depende da versão da API que usa.

API Organization Policy v2

Pode aplicar a restrição constraints/compute.requireOsConfig num recurso, como uma pasta ou uma organização, através da CLI gcloud ou da consola Trusted Cloud .Trusted Cloud

gcloud

  1. Confirme se a restrição compute.requireOsConfig ainda não está aplicada:

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

    Substitua ORGANIZATION_ID pelo seu ID da organização.

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

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

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

  2. Crie um ficheiro 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 é aplicada:

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

    O resultado do comando é semelhante ao seguinte:

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

consola

  1. Na Trusted Cloud consola, aceda à página Políticas de organização.

    Aceda às políticas da organização

  2. No seletor de projetos, selecione o projeto, a pasta ou a organização para os quais quer editar as políticas de 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 Gerir política para atualizar a política da organização para este recurso.

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

  7. Selecione Adicionar uma regra.

  8. Em Aplicação, altere a aplicação desta 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 ainda não está aplicada:

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

    Substitua ORGANIZATION_ID pelo seu ID da organização.

    Se uma política não estiver definida, este comando devolve uma política incompleta, como no exemplo seguinte:

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

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

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

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

    O resultado do comando é semelhante ao seguinte:

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

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

    O resultado do comando é semelhante ao seguinte:

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

As alterações às políticas da organização podem demorar até 15 minutos a serem totalmente aplicadas.

Para mais informações sobre outras políticas que pode aplicar ou como modificar ou eliminar políticas, consulte a documentação do Resource Manager.

O que se segue?

Saiba mais sobre o registo de auditoria do GKE.