Secure your AKS kubernetes secret using Azure Key Vault provider and CSI driver

Mr DevOps 🐳 ☸ ☁️ 🌐
5 min readMar 14, 2023


In today’s world, securing sensitive data is paramount for any organization. One way to achieve this is by using Azure Key Vault, a cloud-based service that allows you to securely store and manage cryptographic keys, certificates, and secrets. However, managing secrets in a Kubernetes environment can be challenging, especially when scaling to large deployments with thousands of containers. This is where the Container Storage Interface (CSI) driver for Azure Key Vault comes in. In this article, we will explore the benefits of using the CSI driver with Azure Key Vault to manage secrets in Kubernetes, including enhanced security, simplified secrets management, better compliance, improved scalability, and enhanced automation. We will also discuss how to configure and use the CSI driver with Azure Key Vault in your Kubernetes environment, as well as some best practices for managing secrets in Kubernetes. By the end of this article, you will have a deeper understanding of how the CSI driver for Azure Key Vault can help you securely manage secrets in Kubernetes and improve the overall security and compliance of your containerized applications.

This is a quick end to end example of securing your secrets in AKS using the Azure Key Vault provider for secret store CSI driver. The example uses a managed user identity to access the secrets stored in Azure Key Vault.

General flow

Create an AKS cluster

Create a resource group for the AKS cluster:

az group create --name avaxia-dev --location eastus

Create an AKS cluster while enabling Azure Key Vault Provider for Secrets Store CSI Driver:

az aks create \
--resource-group avaxia-dev \
--name avaxia-dev \
--network-plugin azure \
--enable-managed-identity \
--enable-addons azure-keyvault-secrets-provider

If you have already a ready cluster , you have just to enable the addon using the below Azure CLI command:

az aks enable-addons --addons…