Esta página descreve como configurar namespaces isentos no Policy Controller.
Namespaces isentos removem um namespace da aplicação do webhook de admissão com o Policy Controller, mas qualquer violação ainda é informada na auditoria. Se você não configurar namespaces, apenas o namespace gatekeeper-system
estará, como pré-configuração, isento da aplicação do webhook de admissão do Policy Controller.
Configurar namespaces isentos
A configuração de um namespace isento permite que você aplique a
identificação admission.gatekeeper.sh/ignore
para isentar o namespace da aplicação
do webhook de admissão do Controlador de política. Se você remover um namespace isento posteriormente, o Controlador de políticas não removerá o identificador admission.gatekeeper.sh/ignore
do namespace.
Como isentar namespaces da aplicação
É possível isentar namespaces durante a instalação do Policy Controller ou após a instalação. O processo a seguir mostra como isentar namespaces após a instalação.
Console
- No console do Google Cloud, acesse a página Política do GKE Enterprise na seção Gerenciamento de postura.
- Na guia Configurações, na tabela de clusters, selecione Editar edit na coluna Editar configuração.
- Expanda o menu Editar configuração do Policy Controller.
- No campo Namespaces isentos, forneça uma lista de namespaces válidos. Os objetos nesses namespaces são ignorados por todas as políticas. Os namespaces ainda não precisam existir.
- Selecione Salvar alterações.
Policy Controller da gcloud
Para adicionar namespaces à lista de namespaces que podem ser isentos da aplicação pelo webhook de admissão, execute o seguinte comando:
gcloud container fleet policycontroller update \
--memberships=MEMBERSHIP_NAME \
--exemptable-namespaces=[NAMESPACE_LIST]
Substitua:
MEMBERSHIP_NAME
: o nome de assinatura do cluster registrado para isentar namespaces. Você pode especificar várias associações separadas por uma vírgula.NAMESPACE_LIST
: uma lista separada por vírgulas de namespaces que você quer que o Policy Controller isente da aplicação.
Este comando isenta recursos somente do webhook de admissão. Os recursos ainda são auditados. Para isentar namespaces da auditoria, defina a isenção no nível do pacote de políticas:
gcloud container fleet policycontroller content bundles set BUNDLE_NAME \
--memberships=MEMBERSHIP_NAME \
--exempted-namespaces=[NAMESPACE_LIST]
Substitua:
BUNDLE_NAME
pelo nome do bundle que você quer atualizar com namespaces isentos.MEMBERSHIP_NAME
: o nome de assinatura do cluster registrado para isentar namespaces. Você pode especificar várias associações separadas por uma vírgula.NAMESPACE_LIST
: uma lista separada por vírgulas de namespaces que você quer que o Policy Controller isente da aplicação.
gcloud ConfigManagement
Para isentar um namespace da aplicação, adicione o nome do namespace em
spec.policyController.exemptableNamespaces
:# apply-spec.yaml applySpecVersion: 1 spec: # Set to true to install and enable Policy Controller policyController: enabled: true exemptableNamespaces: ["NAMESPACE_NAME"] ...
Substitua NAMESPACE_NAME pelo nome do namespace que você quer isentar da aplicação.
Também é possível isentar vários namespaces. Por exemplo, para isentar os namespaces
not-applicable
ealso-not-applicable
, você aplicaria o seguinte manifesto:# apply-spec.yaml applySpecVersion: 1 spec: # Set to true to install and enable Policy Controller policyController: enabled: true exemptableNamespaces: ["not-applicable","also-not-applicable"] ...
Aplique as alterações ao arquivo
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Substitua:
- MEMBERSHIP_NAME: adicione o cluster registrado ao qual você quer aplicar essa configuração. Se você registrou o cluster no Console do Google Cloud, o nome da assinatura é igual ao nome do cluster.
- CONFIG_YAML: adicione o caminho para seu arquivo
apply-spec.yaml
. - PROJECT_ID: adicione o ID do projeto.
Identifique seu namespace isento para que o webhook de admissão do Controlador de política não aplique o conteúdo dele:
kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"
Substitua NAMESPACE_NAME pelo nome do namespace que você quer isentar da aplicação.
Namespaces que serão isentos da aplicação
Estes são alguns namespaces que podem ser criados pelo Google Kubernetes Engine (GKE) e produtos relacionados. É recomendável isentá-los da aplicação para evitar um impacto indesejado:
- anthos-creds
- anthos-identity-service
- apigee
- apigee-system
- asm-system
- capi-kubeadm-bootstrap-system
- capi-system
- cert-manager
- cnrm-system
- config-management-monitoring
- config-management-system
- gke-connect
- gke-gmp-system
- gke-managed-cim
- gke-managed-filestorecsi
- gke-managed-metrics-server
- gke-managed-system
- gke-system
- gmp-public
- gmp-system
- hnc-system
- istio-system
- kube-node-lease
- kube-public
- kube-system
- poco-trial
- resource-group-system
- vm-system