Compartilhar via


Tutorial: Usar o provedor do Azure Key Vault para o driver CSI do Armazenamento de Segredos em um cluster do Serviço de Kubernetes do Azure (AKS)

Saiba como se conectar ao Azure Key Vault usando o driver CSI em um cluster do Serviço de Kubernetes do Azure (AKS) com a ajuda do Conector de Serviço. Neste tutorial, você completa as seguintes tarefas:

  • Crie um cluster do AKS e um Azure Key Vault.
  • Crie uma conexão entre o cluster do AKS e o Azure Key Vault com o Conector de Serviço.
  • Crie um CRD SecretProviderClass e um pod que consome o provedor CSI para testar a conexão.
  • Limpe os recursos.

Importante

O Service Connect no AKS está atualmente em versão prévia. Veja os Termos de Uso Complementares para Versões Prévias do Microsoft Azure para obter termos legais que se aplicam aos recursos do Azure que estão em versão beta, versão prévia ou que, de outra forma, ainda não foram lançados em disponibilidade geral.

Aviso

A Microsoft recomenda usar o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento exige um grau muito alto de confiança no aplicativo e traz riscos que não estão presentes em outros fluxos. Você só deve usar esse fluxo quando outros fluxos mais seguros, como identidades gerenciadas, não forem viáveis.

Pré-requisitos

Criar recursos do Azure

  1. Crie um grupo de recursos para este tutorial.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Crie um cluster do AKS com o seguinte comando ou consulte o tutorial. Esse é o cluster no qual criamos a conexão de serviço, a definição de pod e implantamos o aplicativo de amostra.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
    
  3. Conecte-se ao cluster com o seguinte comando.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Crie um Azure Key Vault com o seguinte comando, ou consulte o tutorial. Esse é o serviço de destino que está conectado ao cluster do AKS e o driver CSI sincroniza segredos a partir dele.

    az keyvault create \
        --resource-group MyResourceGroup \  
        --name MyKeyVault \
        --location EastUS
    
  5. Crie um segredo no Key Vault com o seguinte comando.

    az keyvault secret set \
        --vault-name MyKeyVault \
        --name ExampleSecret \
        --value MyAKSExampleSecret
    

Criar uma conexão de serviço no AKS com o Service Connector (versão prévia)

Crie uma conexão de serviço entre um cluster do AKS e um Azure Key Vault usando o portal do Microsoft Azure ou a CLI do Azure.

  1. Abra o Serviço do Kubernetes no portal do Microsoft Azure e selecione Conector de Serviço no menu à esquerda.

  2. Selecione Criar e preencha as configurações conforme mostrado abaixo. Deixe as outras configurações com seus valores padrão.

    Configuração Opção Descrição
    Namespace do Kubernetes padrão O namespace em que você precisa da conexão no cluster.
    Tipo de serviço Key Vault (habilitar CSI) Escolha o Key Vault como o tipo de serviço de destino e marque a opção para habilitar o CSI.
    Nome da conexão keyvault_conn Use o nome da conexão fornecido pelo Conector de Serviço ou escolha um nome de conexão próprio.
    Assinatura <MySubscription> A assinatura do serviço de destino do Azure Key Vault.
    Key vault <MyKeyVault> O cofre de chaves de destino ao qual você deseja se conectar.
    Tipo de cliente Python A linguagem de código ou a estrutura que você usa para se conectar ao serviço de destino.
  3. Depois que a conexão for criada, a página do conector de serviço exibirá informações sobre a nova conexão.

    Captura de tela do portal do Microsoft Azure, exibindo recursos do Kubernetes criados pelo Conector de Serviço.

Testar a conexão

  1. Clone o repositório de exemplo:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Vá para a pasta de amostra do repositório do Azure Key Vault:

    cd serviceconnector-aks-samples/azure-keyvault-csi-provider
    
  3. Substitua os espaços reservados no arquivo secret_provider_class.yaml na pasta azure-keyvault-csi-provider.

    • Substitua <AZURE_KEYVAULT_NAME> pelo nome do cofre de chaves que criamos e conectamos. Você pode obter o valor no portal do Conector de Serviço do Azure.
    • Substitua <AZURE_KEYVAULT_TENANTID> pela ID do locatário do cofre de chaves. Você pode obter o valor no portal do Conector de Serviço do Azure.
    • Substitua <AZURE_KEYVAULT_CLIENTID> pela ID do cliente de identidade do complemento azureKeyvaultSecretsProvider. Você pode obter o valor no portal do Conector de Serviço do Azure.
    • Substitua <KEYVAULT_SECRET_NAME> pelo nome secreto do cofre de chaves que criamos, por exemplo, ExampleSecret
  4. Implante os recursos do Kubernetes em seu cluster com o comando kubectl apply. Instale kubectl localmente usando o comando az aks install-cli se ele não estiver instalado.

    1. Implante o CRD SecretProviderClass.
    kubectl apply -f secret_provider_class.yaml
    
    1. Implante o pod. O comando cria um pod chamado sc-demo-keyvault-csi no namespace padrão do seu cluster do AKS.
    kubectl apply -f pod.yaml
    
  5. Verifique se a implantação foi bem-sucedida visualizando o pod com kubectl.

    kubectl get pod/sc-demo-keyvault-csi
    
  6. Depois que o pod é iniciado, o conteúdo montado no caminho do volume especificado no YAML de implantação fica disponível. Use os comandos a seguir para validar seus segredos e imprimir um segredo de teste.

    • Mostre os segredos mantidos no repositório de segredos usando o comando a seguir.
    kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
    
    • Exiba um segredo no repositório usando o comando a seguir. Este comando de exemplo mostra o segredo de teste ExampleSecret.
    kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
    

Limpar os recursos

Se você não precisar reutilizar os recursos que criou neste tutorial, exclua todos os recursos que criou excluindo seu grupo de recursos.

az group delete \
    --resource-group MyResourceGroup

Próximas etapas

Leia os artigos a seguir para saber mais sobre os conceitos do Conector de Serviço e como ele ajuda o AKS a se conectar aos serviços.