Instalar o Policy Controller
Esta página mostra como instalar o Policy Controller. O Policy Controller verifica, audita e reforça a conformidade de seus clusters com políticas relacionadas a segurança, regulamentos ou regras de negócios.
O Policy Controller está disponível se você usa o Anthos ou o Google Kubernetes Engine (GKE). Com o GKE, o Policy Controller é um recurso pago. Para saber mais, consulte Preços. Também é possível criar um relatório para testar o Policy Controller antes de instalá-lo sem nenhum custo.
Antes de começar
Antes de começar, veja se você realizou as seguintes tarefas:
Instale e inicialize a Google Cloud CLI, que fornece os comandos
gcloud
,gsutil
,kubectl
enomos
usados nestas instruções. Se você usa o Cloud Shell, a Google Cloud CLI já vem pré-instalada.Se você estiver usando o Anthos Config Management pela primeira vez, ative o Anthos Config Management.
Crie ou verifique se você tem acesso a um cluster que executa uma versão 1.14.x ou posterior do Kubernetes. O Policy Controller pode parecer que está sendo executado nas versões do Kubernetes anteriores à 1.14.x, mas o produto não se comporta corretamente.
Se você planeja usar a Google Cloud CLI para configurar o Policy Controller, registre seu cluster em uma frota agora. Se você planeja usar o Console do Google Cloud, registre seus clusters ao instalar o Policy Controller.
Instalar o Policy Controller
Siga estas etapas para configurar o Anthos Config Management para instalar o
controlador de admissão dinâmica Policy Controller no cluster. Ao instalar o
Config Sync usando o Console do Google Cloud ou a Google Cloud CLI, não
é possível usar comandos kubectl
depois para alterar a configuração.
Console
Registre seus clusters
Para usar o Anthos Config Management, primeiro registre os clusters. O registro dos clusters permite que eles compartilhem um conjunto comum de configurações e políticas.
Para registrar seus clusters, conclua as seguintes tarefas:
-
No console do Google Cloud:
Se você usa o Google Kubernetes Engine, acesse a página Política do GKE na seção Configuração e política.
Se você usa o Anthos, acesse a página Política do Anthos na seção Configuração e política.
Selecione Instalar o Controlador de políticas.
Na página Selecionar clusters registrados para o Config Management, localize a tabela Clusters não registrados deste projeto e encontre o cluster que você quer registrar.
Clique em Registrar ao lado do cluster que você quer registrar.
Depois que o cluster for registrado, ele aparecerá na tabela Selecionar clusters registrados para o Config Management.
Configurar o Policy Controller
Para configurar o Policy Controller no console do Google Cloud, siga estas etapas:
- Na página Selecionar clusters registrados para o Config Management, selecione o cluster registrado em que você quer ativar o Policy Controller e selecione Avançar.
- Deixe a caixa de seleção Ativar Policy Controller marcada.
- Opcional: para definir configurações adicionais, clique em Mostrar configurações avançadas.
Opcional: para mudar recursos, deixe a caixa de seleção Ativar webhook de mutação marcada.
Opcional: para instalar uma biblioteca de modelos de restrição para tipos comuns de política, deixe a caixa de seleção Instalar biblioteca de modelos padrão marcada.
Opcional: no campo Intervalo de auditoria, adicione o período em segundos entre sincronizações consecutivas. O padrão é 60 segundos. Se você definir o intervalo de auditoria como 0, a auditoria será desativada.
Opcional: no campo Namespaces isentos, forneça uma lista de namespaces. Os objetos nesses namespaces são ignorados por todas as políticas. Os namespaces não precisam existir atualmente.
Opcional: para ativar restrições referenciais, marque a caixa de seleção Ativar a capacidade de usar modelos de restrição que fazem referência a objetos diferentes do objeto que está sendo avaliado.
Opcional: se você não quiser instalar o Config Sync, clique em Próximo e desmarque a caixa de seleção Ativar Config Sync.
Para concluir a instalação, clique em Concluir. Você será redirecionado para a página Config Management.
Após alguns minutos, você verá Instalado na coluna de status do Policy Controller ao lado dos clusters configurados.
gcloud
- Prepare a configuração criando um novo manifesto
apply-spec.yaml
ou usando um existente. Se você escolher a última opção, é possível configurar um cluster com as mesmas configurações usadas por outro.
Criar novo manifesto
Para definir o Config Sync com novas configurações para o cluster, crie
um arquivo chamado apply-spec.yaml
e copie o seguinte arquivo YAML nele:
# apply-spec.yaml
applySpecVersion: 1
spec:
policyController:
# Set to true to install and enable Policy Controller
enabled: true
# Uncomment to prevent the template library from being installed
# templateLibraryInstalled: false
# Uncomment to enable support for referential constraints
# referentialRulesEnabled: true
# Uncomment to disable audit, adjust value to set audit interval
# auditIntervalSeconds: 0
# Uncomment to log all denies and dryrun failures
# logDeniesEnabled: true
# Uncomment to enable mutation
# mutationEnabled: true
# Uncomment to exempt namespaces
# exemptableNamespaces: ["namespace-name"]
# Uncomment to change the monitoring backends
# monitoring:
# backends:
# - cloudmonitoring
# - prometheus
# ...other fields...
Adicione um campo spec.policyController
e defina o valor de
enabled
como true
. É possível ativar outros recursos do Policy Controller. Entretanto, o suporte para restrições referenciais está desativado por padrão. Antes de ativá-lo, familiarize-se com as advertências sobre consistência posterior.
Usar manifesto existente
Para definir o cluster com as mesmas configurações usadas por outro cluster, recupere as configurações de um cluster registrado:
gcloud alpha container fleet config-management fetch-for-apply \
--membership=MEMBERSHIP_NAME \
--project=PROJECT_ID \
> CONFIG_YAML_PATH
Substitua:
MEMBERSHIP_NAME
: o nome da assinatura do cluster registrado que contém as configurações do Policy Controller que você quer usarPROJECT_ID
: ID do projetoCONFIG_YAML_PATH
: o caminho para o arquivoapply-spec.yaml
2. Aplique o arquivo apply-spec.yaml
:
gcloud beta container fleet config-management apply \
--membership=MEMBERSHIP_NAME \
--config=CONFIG_YAML \
--project=PROJECT_ID
Substitua:
MEMBERSHIP_NAME
: o nome da assinatura do cluster registrado que contém as configurações do Policy Controller que você quer usarCONFIG_YAML
: adicione o caminho para seu arquivoapply-spec.yaml
.PROJECT_ID
: adicione o ID do projeto.
O pod é criado e o Policy Controller começa a verificar e aplicar as restrições.
Instalar o Policy Controller em um cluster particular
Se você estiver usando uma versão anterior à 1.8.0 e instalando o controlador de políticas em um cluster particular no Google Kubernetes Engine (GKE), será necessário realizar outras etapas para concluir a instalação. Em clusters privados, o firewall bloqueia o plano de controle para alcançar os nós na porta 8443, que é onde o plano de controle tenta se conectar ao Policy Controller. É possível criar uma regra de firewall para que o plano de controle possa alcançar a porta 8443 (ou qualquer outra porta personalizada). Também é possível fazer o pod ser executado na porta privilegiada 443. Para mais informações, consulte Como executar em nós de cluster particular do GKE na documentação do Gatekeeper.
Verifique a instalação do Policy Controller
Depois de instalar o Policy Controller, você pode verificar se ele foi concluído com sucesso.
Console
Siga estas etapas:
-
No console do Google Cloud:
Se você usa o Google Kubernetes Engine, acesse a página Política do GKE na seção Configuração e política.
Se você usa o Anthos, acesse a página Política do Anthos na seção Configuração e política.
- Na guia Configurações, verifique a coluna Status do Controlador de políticas na tabela do cluster. Uma instalação bem-sucedida tem um status de Instalada.
gcloud
Execute este comando:
gcloud beta container fleet config-management status \
--project=PROJECT_ID
Substitua PROJECT_ID
pelo ID do projeto.
O resultado será semelhante a:
Name Status Last_Synced_Token Sync_Branch Last_Synced_Time Policy_Controller
CLUSTER_NAME SYNCED a687c2c 1.0.0 2021-02-17T00:15:55Z INSTALLED
Uma instalação bem-sucedida terá o status INSTALLED
na
coluna "Controlador de política".
Verificar a instalação da biblioteca de modelos de restrição
Ao instalar o Policy Controller, a biblioteca de modelos de restrição é instalada por padrão, e essa instalação pode levar vários minutos para ser concluída.
Para verificar se a biblioteca de modelos está instalada, liste
todos os objetos ConstraintTemplate
:
kubectl get constrainttemplates
O resultado será semelhante a:
NAME AGE k8sallowedrepos 84s k8scontainerlimits 84s k8spspallowprivilegeescalationcontainer 84s ...[OUTPUT TRUNCATED]...
Quando um modelo de restrição individual é instalado corretamente, o campo status.created
é true
.
Interações do Policy Controller com o Anthos Config Management
O Anthos Config Management gerencia os recursos essenciais para a execução do Policy Controller. Para evitar o conflito entre o Anthos Config Management e o Policy Controller, observe o que é colocado no repositório do Config Management.
Ao usar o Policy Controller, considere os seguintes pontos:
Não é possível sincronizar um modelo de restrição que também faz parte da biblioteca de modelos, a menos que a biblioteca de modelos de restrição esteja desativada.
Se você quiser sincronizar o recurso de configuração armazenado no namespace
gatekeeper-system
, o namespace precisará estar indefinido no repositório ou corresponder à configuração que o Anthos Config Management quer instalar.Se o namespace
gatekeeper-system
for removido do repositório de origem da verdade, talvez o Anthos Config Management não consiga se recuperar. Para recuperar, exclua a configuração do webhook de validação do Policy Controller.
Gerenciar a biblioteca de modelos de restrição
Para informações sobre como desinstalar ou reinstalar modelos de restrição, as restrições associadas ou a biblioteca de modelos de restrição, consulte Criar restrições.
Como isentar namespaces da aplicação
É possível configurar o Policy Controller para ignorar objetos em um namespace. Para mais informações, consulte Excluir namespaces do Policy Controller.
Recursos "mutate"
O Policy Controller também atua como um webhook mutável. Para mais informações, consulte Recursos "mutate".
Ver a versão do Policy Controller
Para ver qual versão do Policy Controller do Gatekeeper está usando, execute o seguinte comando para ver a tag de imagem:
kubectl get deployments -n gatekeeper-system gatekeeper-controller-manager \
-o="jsonpath={.spec.template.spec.containers[0].image}"
No Anthos Config Management versão 1.3.2 e posterior, a tag (ou hash) do Git usada para criar o Gatekeeper e o número da versão do Anthos Config Management estão incluídos na tag de imagem da seguinte maneira:
.../gatekeeper:VERSION_NUMBER-GIT_TAG.gBUILD_NUMBER
Por exemplo, para a seguinte imagem:
gcr.io/config-management-release/gatekeeper:anthos1.3.2-480baac.g0
anthos1.3.2
é o número da versão;480baac
é a tag do Git;0
é o número do build.
Também é possível ver uma lista de todas as versões do Anthos Config Management com o
manifesto, a instalação e as versões binárias de nomos
correspondentes
na Matriz de versões de lançamento.
Fazer upgrade do Policy Controller
O Policy Controller é atualizado sempre que você faz upgrade do Anthos Config Management. Para saber mais, consulte Fazer upgrade do Anthos Config Management.
Desinstalar o Policy Controller
Siga estas etapas para desinstalar o Policy Controller dos clusters.
Console
Para desativar o Policy Controller nos clusters, conclua as tarefas a seguir:
-
No console do Google Cloud:
Se você usa o Google Kubernetes Engine, acesse a página Política do GKE na seção Configuração e política.
Se você usa o Anthos, acesse a página Política do Anthos na seção Configuração e política.
- Na guia Configurações, ao lado do cluster em que você quer desativar o Controlador de políticas, clique no menu de contexto more_vert > edit Editar configuração.
- Desmarque a caixa de seleção Ativar Policy Controller.
- Clique em Concluir.
gcloud
Para desinstalar o Policy Controller:
Edite a configuração do Anthos Config Management no seu arquivo
apply-spec.yaml
e definapolicyController.enabled
comofalse
.Aplique as alterações no arquivo
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Substitua:
- CLUSTER_NAME: adicione o cluster registrado ao qual você quer aplicar essa configuração.
- CONFIG_YAML: adicione o caminho para seu arquivo
apply-spec.yaml
. - PROJECT_ID: adicione o ID do projeto.
Depois que o Anthos Config Management remover
o finalizador policycontroller.configmanagement.gke.io
, a desinstalação será
concluída.
Se você quiser desinstalar totalmente o Anthos Config Management, consulte Desinstalar o Anthos Config Management.
A seguir
- Saiba mais sobre o Policy Controller.
- Resolver problemas do Policy Controller.
- Saiba como criar uma restrição.
- Use a biblioteca de modelos de restrição fornecida pelo Google.
- Saiba como usar restrições em vez de PodSecurityPolicies.
- Veja como usar as restrições da política de Mercado CIS do Kubernetes.