Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official.

Configurações de TLS

Alterar as configurações padrão de TLS depende do método de instalação escolhido.

Executando o Rancher em um cluster Kubernetes altamente disponível

Quando você instala um cluster Kubernetes gerenciado pelo Rancher, o TLS é descarregado no controlador de entrada do cluster. Traefik é o controlador de entrada padrão para K3s e pode ser usado com RKE2, consulte Opções de TLS para mais informações.

Executando o Rancher em um único contêiner Docker

A configuração padrão de TLS aceita apenas TLS 1.2 e suítes de cifras TLS seguras. Você pode alterar isso definindo as seguintes variáveis de ambiente:

Parâmetro Descrição Default Opções disponíveis

CATTLE_TLS_MIN_VERSION

Versão mínima do TLS

1.2

1.0, 1.1, 1.2, 1.3

CATTLE_TLS_CIPHERS

Suítes de cifras TLS permitidas

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305

Veja constantes TLS do Golang

Aplicação de TLS do Agente

A configuração agent-tls-mode controla como os agentes do Rancher (cluster-agent, fleet-agent e system-agent) validam o certificado do Rancher.

Quando o valor é definido como strict, os agentes do Rancher confiam apenas em certificados gerados pela Autoridade Certificadora contida na configuração cacerts. Quando o valor é definido como system-store, os agentes do Rancher confiam em qualquer certificado gerado por uma Autoridade Certificadora pública contida no armazenamento de confiança do sistema operacional, incluindo aqueles assinados por autoridades como Let’s Encrypt. Isso pode representar um risco de segurança, uma vez que qualquer certificado gerado por essas autoridades externas, que estão fora do controle do usuário, é considerado válido nesse estado.

Enquanto a opção strict habilita um nível mais elevado de segurança, ela exige que o Rancher tenha acesso à CA que gerou o certificado visível para os agentes. No caso de certas configurações de certificado (notavelmente, certificados externos), isso não é automático, e configuração extra é necessária. Veja o guia de instalação para mais informações sobre quais cenários requerem configuração extra.

No Rancher v2.9.0 e versões posteriores, essa configuração padrão é strict em novas instalações. Para usuários instalando ou atualizando a partir de uma versão anterior do Rancher, está definido como system-store.

Preparando para a Mudança de Configuração

Cada cluster contém uma condição no campo de status chamada AgentTlsStrictCheck. Se AgentTlsStrictCheck estiver definido como "True", isso indica que os agentes do cluster estão prontos para operar em modo strict. Você pode inspecionar manualmente cada cluster para ver se estão prontos usando a interface do Rancher ou um comando kubectl como o seguinte:

## the below command skips ouputs $CLUSTER_NAME,$STATUS for all non-local clusters
kubectl get cluster.management.cattle.io -o jsonpath='{range .items[?(@.metadata.name!="local")]}{.metadata.name},{.status.conditions[?(@.type=="AgentTlsStrictCheck")].status}{"\n"}{end}'

Mudando a Configuração

Você pode alterar a configuração usando a interface do Rancher ou a opção agentTLSMode do helm chart.

Se você especificar o valor através do helm chart, poderá modificar o valor apenas com o Helm.

Dependendo da sua configuração, pode ser necessária uma ação adicional, como o upload da Autoridade Certificadora que assinou seus certificados. Revise o guia de instalação antes de alterar a configuração para ver se algum requisito adicional se aplica à sua configuração.

Para alterar o valor da configuração através da interface, navegue até a página Configurações Globais e encontre a configuração agent-tls-mode perto da parte inferior da página. Quando você altera a configuração através da interface, o Rancher primeiro verifica se todos os clusters downstream têm a condição AgentTlsStrictCheck definida como "True" antes de permitir a solicitação. Isso previne interrupções devido a uma incompatibilidade de certificado.

Substituindo as Verificações de Validação da Configuração

Em alguns casos, você pode querer substituir a verificação que garante que todos os agentes possam aceitar a nova configuração TLS:

O Rancher verifica o status de todos os clusters downstream para evitar interrupções. Substituir essa verificação não é recomendado e deve ser feito com grande cautela.

  1. Como administrador, gere um kubeconfig para o cluster local. Nos exemplos abaixo, isso foi salvo no arquivo local_kubeconfig.yaml.

  2. Recupere a configuração atual e salve-a em setting.yaml:

    kubectl get setting agent-tls-mode -o yaml --kubeconfig=local_kubeconfig.yaml > setting.yaml
  3. Atualize o arquivo setting.yaml, substituindo value por strict. Adicionar a anotação cattle.io/force: "true" substitui a verificação da condição do cluster e deve ser feito com muito cuidado:

Incluir a anotação cattle.io/force com qualquer valor (incluindo, por exemplo, "false") substitui a verificação da condição do cluster.

apiVersion: management.cattle.io/v3
customized: false
default: strict
kind: Setting
metadata:
  name: agent-tls-mode
  annotations:
    cattle.io/force: "true"
source: ""
value: strict
  1. Aplique a nova versão da configuração:

    kubectl apply -f setting.yaml --kubeconfig=local_kubeconfig.yaml