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 umpod
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
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Instale a CLI do Azure e entre na CLI do Azure usando o comando az login .
- Instale o Dockere o kubectl, para gerenciar a imagem do contêiner e os recursos do Kubernetes.
- Uma compreensão básica de contêiner e AKS. Comece a preparar uma candidatura 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 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
Conecte-se ao cluster com o seguinte comando.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
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
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.
Abra o serviço Kubernetes no portal do Azure e selecione Service Connector no menu à esquerda.
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. Depois que a conexão tiver sido criada, a página Service Connector exibirá informações sobre a nova conexão.
Testar a ligação
Clone o repositório de exemplo:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Vá para a pasta de exemplo do repositório para o Azure Key Vault:
cd serviceconnector-aks-samples/azure-keyvault-csi-provider
Substitua os espaços reservados no
secret_provider_class.yaml
arquivo naazure-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 doazureKeyvaultSecretsProvider
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
- Substitua
Implante os recursos do Kubernetes em seu cluster com o
kubectl apply
comando. Instalekubectl
localmente usando o comando az aks install-cli se não estiver instalado.- Implante o
SecretProviderClass
CRD.
kubectl apply -f secret_provider_class.yaml
- Implante o
pod
. O comando cria um pod nomeadosc-demo-keyvault-csi
no namespace padrão do seu cluster AKS.
kubectl apply -f pod.yaml
- Implante o
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 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
ExampleSecret
de 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.