Restringir cargas de trabalho privilegiadas do GKE em organizações

É possível usar políticas para controlar quais cargas de trabalho privilegiadas podem ser executadas em clusters do Google Kubernetes Engine (GKE) na sua organização do Cloud de Confiance by S3NS . Este documento mostra como usar políticas para definir fontes de carga de trabalho aprovadas e aplicar práticas recomendadas para melhorar sua postura de segurança.

Este documento é destinado a administradores de contas e identidades que querem permitir que apenas cargas de trabalho privilegiadas aprovadas sejam executadas em qualquer lugar da organização. Você já precisa conhecer os conceitos nas seguintes páginas:

Como o controle de admissão de carga de trabalho privilegiada funciona para organizações

Por padrão, o GKE Autopilot aplica um conjunto de medidas de segurança para cargas de trabalho. A única maneira de executar cargas de trabalho que violam essas restrições é instalar listas de permissão para elas. Para instalar uma lista de permissões de uma origem específica, o cluster precisa estar configurado para aceitar listas de permissões dessa origem.

Por padrão,as organizações Cloud de Confiance permitem que os administradores da plataforma configurem clusters para aceitar listas de permissões de parceiros do GKE e projetos de código aberto verificados. Se a organização tiver requisitos de segurança para limitar cargas de trabalho privilegiadas a um conjunto explícito conhecido de fontes, use uma política da organização para modificar o comportamento padrão.

Ao aplicar uma lista de fontes aprovadas na lista de permissões para sua organização, pasta ou projeto, os administradores da plataforma só podem especificar essas fontes ao criar ou atualizar clusters do Autopilot ou Standard. Se um cluster for criado ou atualizado com uma origem não aprovada especificada, a operação vai falhar.

As políticas da organização que você precisa configurar dependem do seu caso de uso, como segue:

Antes de começar

  1. Enable the Resource Manager API.

    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 API

  2. Se suas equipes tiverem listas de permissões para cargas de trabalho privilegiadas, peça a elas para fornecer os caminhos dessas listas no Cloud Storage.

Papéis e permissões necessárias

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, pasta ou projeto. 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 usando papéis personalizados ou outros papéis predefinidos.

Configurar uma política da organização para listas de permissão

É possível controlar as fontes aprovadas de listas de permissão para uma organização, pasta ou projeto criando ou atualizando uma política da organização com base na restrição gerenciada constraints/container.managed.autopilotPrivilegedAdmission. Quando você aplica essa política da organização, os administradores de cluster podem instalar listas de permissões apenas das fontes definidas na política.

Além dessas etapas, recomendamos que você aplique uma política da organização que permita apenas a execução de clusters do Autopilot no seu ambiente. Quando não há clusters padrão no ambiente, apenas as cargas de trabalho privilegiadas aprovadas podem ser executadas. Para mais informações, consulte a seção Configurar uma política da organização para permitir apenas clusters do Autopilot.

Para configurar uma política da organização para listas de permissão de carga de trabalho privilegiada aprovadas, selecione uma das seguintes opções:

Console

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

    Acessar a página Políticas da organização

  2. Na tabela de restrições, encontre a restrição gerenciada container.managed.autopilotPrivilegedAdmission.

  3. Clique em Ações > Editar política. A página Editar política é aberta.

  4. Na seção Origem da política, selecione Substituir política principal.

  5. Na seção Regras, clique em Adicionar regra.

  6. Na seção Aplicação, selecione Ativada. A seção Parâmetros aparece.

  7. Para controlar se as listas de permissões aprovadas pelo GKE podem ser instaladas, siga estas etapas:

    1. No parâmetro allowAnyGKEPath, clique em Editar. O painel Editar valores de parâmetro é aberto.
    2. Na seção Tipo de valor, selecione Definido pelo usuário.
    3. Na seção Valores definidos pelo usuário, selecione uma das seguintes opções:

      • Verdadeiro: os administradores podem configurar clusters para executar listas de permissão de qualquer caminho que comece com gke://. Esse é o valor padrão.
      • Falso: os administradores podem configurar clusters para executar listas de permissão somente nos caminhos especificados no parâmetro allowPaths da política da organização. Se você não especificar caminhos no parâmetro allowPaths, os clusters não poderão executar nenhuma lista de permissões de nenhuma origem.
    4. Clique em Salvar. O painel Editar valores de parâmetro é fechado.

  8. Para definir as listas de permissões específicas que podem ser instaladas, siga estas etapas:

    1. No parâmetro allowPaths, clique em Editar. O painel Editar valores de parâmetro é aberto.
    2. Na seção Tipo de valor, selecione Definido pelo usuário.
    3. Na seção Valores definidos pelo usuário, especifique um ou mais caminhos para fontes na lista de permissões. Para mais informações sobre o que você pode especificar, consulte Caminhos da lista de permissões.
    4. Clique em Salvar. O painel Editar valores de parâmetro é fechado.
    5. Na seção Editar regra, clique em Concluído.
  9. Opcional: para testar o impacto da aplicação da política da organização, clique em Testar mudanças. Para mais informações, consulte Testar alterações na política da organização com o Simulador de política.

  10. Para aplicar a política no modo de teste, clique em Definir política de teste.

  11. Depois de verificar se a política da organização funciona como esperado no modo de simulação, clique em Definir política para definir a política ativa.

As mudanças na política da organização podem levar até 15 minutos para serem totalmente aplicadas.

gcloud

  1. Crie um arquivo YAML que defina a política da organização:

    name: RESOURCE_TYPE/RESOURCE_ID/policies/container.managed.autopilotPrivilegedAdmission
    spec:
      rules:
      - enforce: true
        parameters:
          allowAnyGKEPath: ALLOW_GKE_PATHS
          allowPaths:
          - ALLOWLIST1_PATH
          - ALLOWLIST2_PATH
    

    Substitua:

    • RESOURCE_TYPE: o tipo de recursoCloud de Confiance . Precisa ser um dos seguintes valores:

      • organizations
      • folders
      • projects
    • RESOURCE_ID: o ID da organização, da pasta ou do ID do projeto.

    • ALLOW_GKE_PATHS: se é permitido usar qualquer lista de permissões aprovada pelo GKE. Especifique um dos seguintes valores:

      • True: permite a configuração do cluster com qualquer carga de trabalho de parceiro do GKE ou cargas de trabalho de código aberto verificadas. Esse é o valor padrão.
      • False: permite a configuração do cluster apenas com os caminhos no campo allowPaths.

    • ALLOWLIST1_PATH,ALLOWLIST2_PATH: o caminho para as listas de permissões. Para mais informações sobre o que você pode especificar, consulte Caminhos da lista de permissões.

    Para tornar a política da organização condicional em uma tag, adicione um bloco condition ao campo rules. Se você adicionar uma regra condicional a uma política da organização, inclua pelo menos uma regra não condicional. Caso contrário, não será possível salvar a política. Para mais informações, consulte Como definir uma política da organização com tags.

  2. Para definir a política da organização no modo de simulação, especifique o valor dryRunSpec para a flag --update-mask no comando gcloud org-policies set-policy:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=dryRunSpec
    

    Substitua POLICY_FILEPATH pelo caminho para o arquivo YAML que você criou na etapa anterior.

  3. Opcional: para testar o impacto da aplicação dessa política da organização, use o comando gcloud policy-intelligence simulate org-policy:

    gcloud policy-intelligence simulate org-policy \
        --organization=ORGANIZATION_ID \
        --policy-path=POLICY_FILEPATH
    

    Substitua ORGANIZATION_ID pelo ID da organização.

  4. Depois de verificar se a política da organização funciona como esperado no modo de simulação, defina a política ativa especificando o valor spec para a flag --update-mask no comando gcloud org-policies set-policy:

    gcloud org-policies set-policy POLICY_FILEPATH \
        --update-mask=spec
    

    As mudanças na política da organização podem levar até 15 minutos para serem totalmente aplicadas.

Configurar uma política da organização para permitir apenas clusters do Autopilot

Nesta seção, mostramos como configurar uma política da organização que permite apenas clusters do Autopilot. Recomendamos que você configure essa política além de criar uma política da organização para listas de permissão, porque os clusters padrão podem executar a maioria das cargas de trabalho privilegiadas. Permitir apenas clusters do Autopilot significa que seu ambiente executa apenas as cargas de trabalho privilegiadas que você permite. As etapas nesta seção são opcionais.

Para configurar essa política, selecione uma das seguintes opções:

Console

  1. Crie uma restrição personalizada que permita apenas a criação de clusters do Autopilot:

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

      Acessar a página Políticas da organização

    2. Clique em Restrição personalizada. A página Criar restrição personalizada é aberta.

    3. Especifique um nome de exibição e um ID exclusivo para a restrição.

    4. Na seção Aplicação, siga estas etapas:

      1. Na lista Tipo de recurso, selecione container.googleapis.com/Cluster.
      2. Na lista Método de aplicação, selecione Aplicação na criação.
      3. Na seção Condição, clique em Editar condição. O painel Adicionar condição é aberto.
      4. Especifique a seguinte expressão:

        resource.autopilot.enabled == true
        
      5. Clique em Salvar. O painel Adicionar condição é fechado.

      6. Na seção Ação, selecione Permitir.

    5. Clique em Criar restrição.

  2. Crie uma política personalizada da organização que aplique a restrição:

    1. Na tabela de restrições, encontre a restrição personalizada que você criou na etapa anterior.
    2. Clique em Ações > Editar política. A página Editar política é aberta.
    3. Na seção Origem da política, selecione Substituir política principal.
    4. Clique em Adicionar uma regra.
    5. Na seção Aplicação, selecione Ativada.
    6. Para testar o impacto da aplicação da política da organização, clique em Testar mudanças. Para mais informações, consulte Testar alterações na política da organização com o Simulador de política.
    7. Para aplicar a política no modo de teste, clique em Definir política de teste.
    8. Depois de verificar se a política da organização funciona como esperado no modo de simulação, clique em Definir política para definir a política ativa.

    As mudanças na política da organização podem levar até 15 minutos para serem totalmente aplicadas.

gcloud

  1. Crie uma restrição personalizada que permita apenas a criação de clusters do Autopilot:

    1. Crie um arquivo YAML que defina a restrição personalizada:

      name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME
      resourceTypes: container.googleapis.com/Cluster
      methodTypes:
      - CREATE
      condition: resource.autopilot.enabled == true
      actionType: ALLOW
      displayName: "Allow only Autopilot clusters"
      

      Substitua:

      • ORGANIZATION_ID: o código da sua organização.
      • CONSTRAINT_NAME: um nome para a nova restrição.
    2. Defina a restrição personalizada:

      gcloud org-policies set-custom-constraint CONSTRAINT_FILEPATH
      

      Substitua CONSTRAINT_FILEPATH pelo caminho para o arquivo YAML criado na etapa anterior.

    A restrição personalizada está disponível para uso em uma política da organização.

  2. Crie uma política personalizada da organização que aplique a restrição:

    1. Crie um arquivo YAML que defina a política da organização:

      name: RESOURCE_TYPE/RESOURCE_ID/policies/custom.CONSTRAINT_NAME
      spec:
        rules:
        - enforce: true
      

      Substitua:

      • RESOURCE_TYPE: o tipo de recursoCloud de Confiance . Precisa ser um dos seguintes valores:

        • organizations
        • folders
        • projects
      • RESOURCE_ID: o ID da organização, pasta ou projeto.

      Para tornar a política da organização condicional em uma tag, adicione um bloco condition ao campo rules. Se você adicionar uma regra condicional a uma política da organização, inclua pelo menos uma regra não condicional. Caso contrário, não será possível salvar a política. Para mais informações, consulte Como definir uma política da organização com tags.

    2. Para definir a política da organização no modo de simulação, especifique o valor dryRunSpec para a flag --update-mask no comando gcloud org-policies set-policy:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=dryRunSpec
      

      Substitua POLICY_FILEPATH pelo caminho para o arquivo YAML criado na etapa anterior.

    3. Para testar o impacto da aplicação dessa política da organização, use o comando gcloud policy-intelligence simulate org-policy:

      gcloud policy-intelligence simulate org-policy \
          --organization=ORGANIZATION_ID \
          --policy-path=POLICY_FILEPATH
      

      Substitua ORGANIZATION_ID pelo ID da organização.

    4. Depois de verificar se a política da organização funciona conforme o esperado no modo de simulação, defina a política ativa especificando o valor spec para a flag --update-mask no comando gcloud org-policies set-policy:

      gcloud org-policies set-policy POLICY_FILEPATH \
          --update-mask=spec
      

      As mudanças na política da organização podem levar até 15 minutos para serem totalmente aplicadas.

A seguir