Partilhar via


Use autoridades certificadoras personalizadas (CAs) no Azure Kubernetes Service (AKS)

A Autoridade de Certificação Personalizada (CA) permite adicionar até 10 certificados codificados em base64 ao repositório confiável do nó. Esta funcionalidade é frequentemente necessária quando as autoridades certificadoras (CAs) têm de estar presentes no nó, como ao ligar-se a um registo privado.

Este artigo mostra como criar CAs personalizadas e aplicá-las aos seus clusters AKS.

Note

A funcionalidade Custom CA adiciona os seus certificados personalizados ao repositório de confiança do nó AKS. Os certificados adicionados com esta funcionalidade não estão disponíveis para contentores que correm em pods. Se precisares dos certificados dentro de contentores, tens de os adicionar separadamente, adicionando-os à imagem usada pelos teus pods ou em tempo de execução através de scripts e um segredo.

Prerequisites

  • Uma subscrição do Azure. Se você não tiver uma assinatura do Azure, crie uma conta gratuita.
  • Azure CLI versão 2.72.0 ou posterior instalada e configurada. Para encontrar a sua versão da CLI, execute o az --version comando. Se precisar de instalar ou atualizar, consulte Install Azure CLI.
  • Uma cadeia de caracteres de certificado codificada em base64 ou um arquivo de texto com certificado.

Limitations

  • Os pools de nós do Windows não são suportados.
  • Não há suporte para a instalação de CAs diferentes no mesmo cluster.

Criar um ficheiro de certificado

  • Crie um arquivo de texto contendo até 10 certificados separados por linha em branco. Quando passa este ficheiro para o seu cluster, os certificados são instalados nos armazenamentos de confiança do nó AKS.

    Exemplo de arquivo de texto:

        -----BEGIN CERTIFICATE-----
        cert1
        -----END CERTIFICATE-----
    
        -----BEGIN CERTIFICATE-----
        cert2
        -----END CERTIFICATE-----
    

Antes de avançar para o próximo passo, certifique-se de que não há espaços em branco no seu ficheiro de texto para evitar erros.

Passa CAs personalizadas para o teu cluster AKS

  • Passe certificados para o seu cluster usando o comando az aks create ou az aks update, com --custom-ca-trust-certificates definido para o nome do seu ficheiro de certificado.

    # Create a new cluster
    az aks create \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --node-count 2 \
        --custom-ca-trust-certificates <path-to-certificate-file> \
        --generate-ssh-keys
    
    # Update an existing cluster
    az aks update \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --custom-ca-trust-certificates <path-to-certificate-file>
    

    Note

    Esta operação inicia uma atualização do modelo para garantir que todos os nós existentes tenham as mesmas CAs instaladas, assegurando o provisionamento correto. O AKS cria novos nós, drena nós existentes, exclui nós existentes e os substitui por nós que têm o novo conjunto de CAs instalado.

Verifique que as CAs estão instaladas

  • Verifique se as CAs estão instaladas usando o az aks show comando.

    az aks show --resource-group <resource-group-name> --name <cluster-name> | grep securityProfile -A 4
    

    No resultado, a securityProfile secção deve incluir os seus certificados personalizados de CA. Por exemplo:

      "securityProfile": {
        "azureKeyVaultKms": null,
        "customCaTrustCertificates": [
            "values"
    

Resolver erros de formatação do Certificado de Autoridade personalizado

Adicionar certificados a um cluster pode resultar em um erro se o arquivo com os certificados não estiver formatado corretamente. Pode ver um erro semelhante ao seguinte exemplo:

failed to decode one of SecurityProfile.CustomCATrustCertificates to PEM after base64 decoding

Se você encontrar esse erro, verifique se o arquivo de entrada não tem novas linhas, espaços em branco ou dados extras além de certificados formatados corretamente, conforme mostrado no arquivo de exemplo.

Resolver erros de certificado personalizado CA X.509 assinado por Autoridade Desconhecida

O AKS exige que os certificados aprovados estejam devidamente formatados e codificados em base64. Verifique se as ACs que submeteu estão codificadas corretamente em base64 e se os ficheiros com ACs não têm quebras de linha CRLF.

Reiniciar o containerd para recolher novos certificados

Se o containerd não reconhecer novos certificados, execute o comando systemctl restart containerd a partir da shell do nó. Quando o containerd reinicia, o tempo de execução do contentor deverá captar os novos certificados.

Para obter mais informações sobre as práticas recomendadas de segurança do AKS, consulte Práticas recomendadas para segurança de cluster e atualizações no Serviço Kubernetes do Azure (AKS).