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 region
- From any machine with AWS CLI access:
- From any machine with AWS CLI access:
-
Check if EKS secret envelope encryption is enabled (console)
- In the AWS Management Console:
- Go to Amazon EKS → Clusters → select YOUR_CLUSTER_NAME.
- Open the Configuration tab → Security section.
- Look for Secret encryption / Envelope encryption.
- If a KMS key is listed and status is Enabled, secrets are encrypted at rest.
- If it shows Not enabled or no KMS key, encryption is not configured.
- In the AWS Management Console:
-
Check if EKS secret envelope encryption is enabled (CLI/IaC evidence)
- From any machine with AWS CLI access:
- Interpretation:
- You should see an entry where
resourcesincludes"secrets"and aprovider.keyArnis present. - If
encryptionConfigis empty or missing"secrets", EKS envelope encryption for Secrets is not enabled.
- You should see an entry where
- From any machine with AWS CLI access:
-
Decide on remediation and KMS key strategy
- If encryption is not enabled or does not cover
secrets, decide:- Which customer-managed KMS key to use (or create a new CMK).
- Ensure the KMS key policy allows the EKS cluster IAM role to use
kms:Encrypt,kms:Decrypt,kms:GenerateDataKey*, andkms:DescribeKey.
- Which customer-managed KMS key to use (or create a new CMK).
- If encryption is not enabled or does not cover
-
Apply or update encryption configuration (IaC / CLI / console)
- Note: For EKS, envelope encryption for secrets must be specified at cluster creation time or by recreating the cluster; you cannot toggle it in-place on an existing cluster.
- If encryption is missing and policy permits recreation, create or recreate the cluster with encryption enabled, for example using AWS CLI:
- If using CloudFormation/Terraform, ensure the EKS cluster resource includes an
encryptionConfig(or equivalent) block specifyingresources = ["secrets"]and a KMS key ARN.
-
Verify encryption is correctly configured after change
- From any machine with AWS CLI access:
- Confirm there is at least one entry with
"resources": ["secrets"](or that includes"secrets") and a valid"provider": {"keyArn": "arn:aws:kms:...:key/..."}.
- From any machine with AWS CLI access:
Using kubectl
Using kubectl
kubectl cannot configure EKS envelope encryption with KMS, because this setting is applied at the EKS cluster control-plane level via the AWS console, CLI, or IaC, not through Kubernetes API objects. Refer to the Manual Steps section for how to enable EKS secrets encryption with a KMS key.
Automation
Automation
-
Line:
EncryptionConfig: NONE <-- PROBLEM: secrets NOT encrypted at rest- The EKS cluster has no encryptionConfig configured at all. etcd is storing all secrets in plaintext.
-
Line:
Status: secrets encryption NOT ENABLED <-- PROBLEM: etcd stores secrets in plaintext- The cluster has some envelope/KMS encryption configured, but
secretsis not listed underresources. Kubernetes Secret objects are not encrypted at rest in etcd and must be addressed via the EKS console/CLI/IaC.
- The cluster has some envelope/KMS encryption configured, but

