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 umpod
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
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Instale a CLI do Azure e entre na CLI do Azure usando o comando az login.
- Instale o Dockere kubectl para gerenciar a imagem do contêiner e os recursos do Kubernetes.
- Conhecimento básico de contêineres e AKS. Comece a partir da preparação de um aplicativo para o AKS.
Criar recursos do Azure
Crie um grupo de recursos para este tutorial.
az group create \ --name MyResourceGroup \ --location eastus
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
Conecte-se ao cluster com o seguinte comando.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
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
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.
Abra o Serviço do Kubernetes no portal do Microsoft Azure e selecione Conector de Serviço no menu à esquerda.
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. Depois que a conexão for criada, a página do conector de serviço exibirá informações sobre a nova conexão.
Testar a conexão
Clone o repositório de exemplo:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Vá para a pasta de amostra do repositório do Azure Key Vault:
cd serviceconnector-aks-samples/azure-keyvault-csi-provider
Substitua os espaços reservados no arquivo
secret_provider_class.yaml
na pastaazure-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 complementoazureKeyvaultSecretsProvider
. 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
- Substitua
Implante os recursos do Kubernetes em seu cluster com o comando
kubectl apply
. Instalekubectl
localmente usando o comando az aks install-cli se ele não estiver instalado.- Implante o CRD
SecretProviderClass
.
kubectl apply -f secret_provider_class.yaml
- Implante o
pod
. O comando cria um pod chamadosc-demo-keyvault-csi
no namespace padrão do seu cluster do AKS.
kubectl apply -f pod.yaml
- Implante o CRD
Verifique se a implantação foi bem-sucedida visualizando o pod com
kubectl
.kubectl get pod/sc-demo-keyvault-csi
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.