secrets-store-csi-driver-provider-azure
Secrets-Store-CSI-Driver-Provider-Azure Overview
Secure your stack with a hardened Secrets-Store-CSI-Driver-Provider-Azure image freshly-built by Minimus. Minimus images always include the most up-to-date package version for all packages and dependencies contained in the image.
Secrets-Store-CSI-Driver-Provider-Azure is the Azure Key Vault plugin for the Kubernetes Secrets Store CSI Driver. It allows pods to mount secrets, keys, and certificates from Azure Key Vault as volumes, so applications can consume them without environment variables or Kubernetes Secrets.
Try It Out
Prerequisites
- A running Kubernetes cluster (v1.21 or higher is recommended)
- Helm v3 (Installation instructions)
kubectlinstalled and configured- An existing Azure Key Vault populated with at least one secret
- An Azure identity (such as Microsoft Entra Workload Identity or a service principal) configured for authenticating to the Key Vault
Step 1: Add Repository to your Local Client
Add the Helm chart to your local Helm client. This chart installs both the Secrets Store CSI Driver and the Azure Key Vault provider.
helm repo add csi-secrets-store-provider-azure https://azure.github.io/secrets-store-csi-driver-provider-azure/charts
helm repo updateStep 2: Deploy via Helm Chart
Deploy the driver and provider using the Minimus image:
helm install csi csi-secrets-store-provider-azure/csi-secrets-store-provider-azure \
--namespace kube-system \
--set linux.image.repository=reg.mini.dev/secrets-store-csi-driver-provider-azure \
--set linux.image.tag=latestConfirm the provider Pods are running:
kubectl -n kube-system get pods -l app=csi-secrets-store-provider-azureStep 3: Create a SecretProviderClass
Define which Key Vault objects to mount, using your own Key Vault name and tenant ID:
cat <<EOF | kubectl apply -f -
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: azure-kvname
spec:
provider: azure
parameters:
keyvaultName: "kvname"
tenantId: "tid"
objects: |
array:
- |
objectName: secret1
objectType: secret
EOFStep 4: Mount the Secret in a Pod
Reference the SecretProviderClass from a pod's CSI volume:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: secrets-store-test
spec:
containers:
- name: busybox
image: registry.k8s.io/e2e-test-images/busybox:1.29-4
command: ["sleep", "3600"]
volumeMounts:
- name: secrets-store-inline
mountPath: "/mnt/secrets-store"
readOnly: true
volumes:
- name: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: "azure-kvname"
EOFVerify the secret was mounted:
kubectl exec secrets-store-test -- ls /mnt/secrets-storeStep 5: Clean Up
kubectl delete pod secrets-store-test
kubectl delete secretproviderclass azure-kvname
helm uninstall csi -n kube-systemTechnical Considerations
The Secrets-Store-CSI-Driver-Provider-Azure image provided by Minimus is a slim, security-hardened alternative to the public image. The images are largely interchangeable, with a few differences as noted below.
Secrets-Store-CSI-Driver-Provider-Azure built by Minimus:
- Runs as root to support required functions in alignment with the public image.
- Drill down on the version specification tab to see the default user, listening ports, entrypoint, volumes, environment variables, etc.
The Payoff
A hardened, minimal image that will remain more secure for the long run and accrue vulnerabilities at a slower rate.
- See the risk reduction dashboard for a detailed CVE comparison over the past 30 days.
- Review the compliance report to see the default hardening and security configurations for the image.
Terms & Info
Trademark
This catalog is published by Minimus. All product names, logos, and marks, other than those belonging to Minimus, shown are owned by their respective rights holders and appear here only to identify the open source software each image contains. Minimus claims no ownership of those marks and implies no affiliation with, endorsement by, certification by, or sponsorship by any rights holder.
Disclaimer
Images are provided "as-is" without warranty of any kind. "Hardened" refers to the security configuration applied at the time of build and does not constitute a guarantee of ongoing security or absence of vulnerabilities. The free tier is provided without support, SLA, or guaranteed patching timelines. Security updates may be applied to paid subscriptions before or instead of free tier images. By pulling or using any image you agree to our Terms of Use.