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.

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 Conector de Serviço

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.