secrets-store-csi-driver-provider-aws
Secrets-Store-CSI-Driver-Provider-AWS Overview
Secure your stack with a hardened Secrets-Store-CSI-Driver-Provider-AWS 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-AWS is the AWS plugin for the Kubernetes Secrets Store CSI Driver. It allows pods to mount secrets from AWS Secrets Manager and parameters from AWS Systems Manager Parameter Store as volumes, so applications can consume them without environment variables or Kubernetes Secrets.
Try It Out
Prerequisites
- A running Kubernetes cluster on Amazon EKS (v1.21 or higher is recommended)
- Helm v3 (Installation instructions)
kubectlinstalled and configured- An existing AWS Secrets Manager secret or Parameter Store parameter
- An IAM role configured via IAM Roles for Service Accounts (IRSA), granting
secretsmanager:GetSecretValueandsecretsmanager:DescribeSecret(or the equivalentssm:GetParameterpermission), and associated with the Kubernetes service account used by the provider
Step 1: Add Repositories to your Local Client
Add the Helm charts for both the Secrets Store CSI Driver and the AWS provider:
helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
helm repo add aws-secrets-manager https://aws.github.io/secrets-store-csi-driver-provider-aws
helm repo updateStep 2: Deploy the CSI Driver
helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driverStep 3: Deploy the AWS Provider via Helm Chart
Deploy the provider using the Minimus image:
helm install -n kube-system secrets-provider-aws aws-secrets-manager/secrets-store-csi-driver-provider-aws \
--set image.repository=reg.mini.dev/secrets-store-csi-driver-provider-aws \
--set image.tag=latestConfirm the provider Pods are running:
kubectl -n kube-system get pods -l app=secrets-store-csi-driver-provider-awsStep 4: Create a SecretProviderClass
Define which Secrets Manager or Parameter Store objects to mount:
cat <<EOF | kubectl apply -f -
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
name: aws-secrets
spec:
provider: aws
parameters:
objects: |
- objectName: "MySecret"
objectType: "secretsmanager"
EOFStep 5: Mount the Secret in a Pod
Reference the SecretProviderClass from a pod's CSI volume, using the service account associated with your IAM role:
cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: secrets-store-test
spec:
serviceAccountName: secrets-store-csi-driver-sa
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: "aws-secrets"
EOFVerify the secret was mounted:
kubectl exec secrets-store-test -- ls /mnt/secrets-storeStep 6: Clean Up
kubectl delete pod secrets-store-test
kubectl delete secretproviderclass aws-secrets
helm uninstall secrets-provider-aws -n kube-system
helm uninstall csi-secrets-store -n kube-systemTechnical Considerations
The Secrets-Store-CSI-Driver-Provider-AWS 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-AWS 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.