More Info:
Advisory: EncryptionConfiguration with a KMS provider should be enabled for Secret resources so etcd does not store secrets in plaintext.Risk Level
HighAddress
SecurityCompliance Standards
- Cloudanix Best Practice
Triage and Remediation
- Remediation
Remediation
Manual Steps
Manual Steps
-
Identify the cluster and its resource group
- Run on: any machine with Azure CLI access.
- Command:
Note the
nameandresourceGroupof the affected cluster.
-
Check whether customer‑managed key (CMK) + disk encryption set is configured (AKS cluster‑wide encryption)
- Run on: any machine with Azure CLI access.
- Command:
- Review:
- If this returns
nullor"enabled": false, then KMS/envelope encryption for Kubernetes secrets is not enabled. - If
"enabled": true, confirm"keyId"is set to the expected Azure Key Vault key.
- If this returns
-
Review current encryption design and key management requirements
- Manually verify with your security/ops teams:
- Which Azure Key Vault and key (URI, versioning, rotation policy) must be used for AKS secrets.
- Required regions, RBAC, and access policies for the AKS managed identity to use that key.
- Compliance requirements for key ownership, rotation, and logging (Key Vault logging to Log Analytics/Storage).
- Manually verify with your security/ops teams:
-
Enable or correct AKV KMS integration for the AKS cluster (envelope encryption for secrets)
- Preconditions: an Azure Key Vault with an RSA key exists, with access granted to the AKS cluster’s managed identity.
- Run on: any machine with Azure CLI access.
- Commands (example pattern; replace placeholders with actual values decided in step 3):
- Operational impact: this updates control-plane configuration; the API server is reconfigured by Azure. Existing secrets are not automatically re‑encrypted; they will be encrypted as they are written/updated.
-
Re‑write critical secrets to ensure they are encrypted with KMS
- Run on: any machine with kubectl access.
- For each sensitive secret, force a rewrite:
- Repeat for all high‑sensitivity secrets or redeploy them via your IaC pipelines.
-
Verify encryption configuration is active and in use
- Configuration check (repeat step 2):
Confirm
"enabled": trueand"keyId"matches the intended Key Vault key. - Functional check (indirect, since etcd is not accessible in AKS):
- Create a test secret and ensure no plaintext appears in API server logs or client‑side tooling beyond base64 encoding:
- Confirm the value is only visible as base64 and that the AKS KMS configuration remains enabled as above.
- Create a test secret and ensure no plaintext appears in API server logs or client‑side tooling beyond base64 encoding:
- Configuration check (repeat step 2):
Using kubectl
Using kubectl
kubectl cannot configure envelope/KMS encryption for Secrets on AKS, because this setting is only available in the AKS control plane and Azure-side configuration. To address this finding, use the Azure portal/CLI or your IaC (such as ARM/Bicep/Terraform) as described in the Manual Steps section.
Automation
Automation

