Tutorial: Usar o provedor do Azure Key Vault para o Driver CSI do Secrets Store em um cluster do Serviço Kubernetes do Azure (AKS)

Saiba como se conectar ao Cofre de Chaves do Azure usando o driver CSI em um cluster do Serviço Kubernetes do Azure (AKS) com a ajuda do Service Connector. Neste tutorial, vai concluir as seguintes tarefas:

  • Crie um cluster AKS e um Cofre de Chaves do Azure.
  • Crie uma conexão entre o cluster AKS e o Cofre de Chaves do Azure com o Service Connector.
  • Crie um SecretProviderClass CRD e um pod provedor CSI consumindo para testar a conexão.
  • Limpe os recursos.

Importante

O Service Connect no AKS está atualmente em pré-visualização. Veja Termos de Utilização Complementares da Pré-visualizações do Microsoft Azure para obter os termos legais que se aplicam às funcionalidades do Azure que estão na versão beta, na pré-visualização ou que ainda não foram lançadas para disponibilidade geral.

Aviso

A Microsoft recomenda que você use o fluxo de autenticação mais seguro disponível. O fluxo de autenticação descrito neste procedimento requer um grau muito alto de confiança no aplicativo e acarreta 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 AKS com o seguinte comando ou referindo-se ao tutorial. Este é o cluster onde criamos a conexão de serviço, a definição de pod e implantamos o aplicativo de exemplo.

    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 Cofre da Chave do Azure com o seguinte comando ou fazendo referência ao tutorial. Este é o serviço de destino conectado ao cluster AKS e o driver CSI sincroniza segredos.

    az keyvault create \
        --resource-group MyResourceGroup \  
        --name MyKeyVault \
        --location EastUS
    
  5. Crie um segredo no Cofre da Chave 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 (visualização)

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

  1. Abra o serviço Kubernetes no portal do Azure e selecione Service Connector no menu à esquerda.

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

    Definição Escolha Description
    Espaço de nomes do Kubernetes default O namespace onde você precisa da conexão no cluster.
    Tipo de serviço Cofre de chaves (ativar CSI) Escolha Key Vault como o tipo de serviço de destino e marque a opção para ativar o CSI.
    Nome da ligação keyvault_conn Use o nome da conexão fornecido pelo Service Connector ou escolha seu próprio nome de conexão.
    Subscrição <MySubscription> A subscrição do serviço de destino do Azure Key Vault.
    Cofre de chaves <MyKeyVault> O cofre da chave de destino ao qual você deseja se conectar.
    Tipo de cliente Python A linguagem de código ou estrutura que você usa para se conectar ao serviço de destino.
  3. Depois que a conexão tiver sido criada, a página Service Connector exibirá informações sobre a nova conexão.

    Captura de ecrã do portal do Azure, visualizando recursos kubernetes criados pelo Service Connector.

Testar a ligaçã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 exemplo do repositório para o Azure Key Vault:

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

    • Substitua <AZURE_KEYVAULT_NAME> pelo nome do cofre de chaves que criamos e conectamos. Você pode obter o valor do portal do Azure do Service Connector.
    • Substitua <AZURE_KEYVAULT_TENANTID> pelo ID do locatário do cofre de chaves. Você pode obter o valor do portal do Azure do Service Connector.
    • Substitua <AZURE_KEYVAULT_CLIENTID> pelo ID do cliente de identidade do azureKeyvaultSecretsProvider addon. Você pode obter o valor do portal do Azure do Service Connector.
    • 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 kubectl apply comando. Instale kubectl localmente usando o comando az aks install-cli se não estiver instalado.

    1. Implante o SecretProviderClass CRD.
    kubectl apply -f secret_provider_class.yaml
    
    1. Implante o pod. O comando cria um pod nomeado sc-demo-keyvault-csi no namespace padrão do seu cluster 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 de 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.

    • Mostrar segredos mantidos no armazenamento de segredos usando o seguinte comando.
    kubectl exec sc-demo-keyvault-csi -- ls /mnt/secrets-store/
    
    • Exiba um segredo na loja usando o seguinte comando. Este comando de exemplo mostra o segredo ExampleSecretde teste .
    kubectl exec sc-demo-keyvault-csi -- cat /mnt/secrets-store/ExampleSecret
    

Clean up resources (Limpar recursos)

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

az group delete \
    --resource-group MyResourceGroup

Próximos passos

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