documentation_complete: true


title: 'Ensure Kubernetes Secrets are Encrypted'

description: |-
  Encrypt Kubernetes secrets, stored in etcd, using secrets encryption feature
  during Amazon EKS cluster creation.

rationale: |-
  Kubernetes can store secrets that pods can access via a mounted volume.
  Today, Kubernetes secrets are stored with Base64 encoding, but encrypting is
  the recommended approach. Amazon EKS clusters version 1.13 and higher support
  the capability of encrypting your Kubernetes secrets using AWS Key Management
  Service (KMS) Customer Managed Keys (CMK). The only requirement is to enable
  the encryption provider support during EKS cluster creation.

  Use AWS Key Management Service (KMS) keys to provide envelope encryption of
  Kubernetes secrets stored in Amazon EKS. Implementing envelope encryption is
  considered a security best practice for applications that store sensitive
  data and is part of a defense in depth security strategy.

  Application-layer Secrets Encryption provides an additional layer of security
  for sensitive data, such as user defined Secrets and Secrets required for the
  operation of the cluster, such as service account keys, which are all stored
  in etcd.

  Using this functionality, you can use a key, that you manage in AWS KMS, to
  encrypt data at the application layer. This protects against attackers in the
  event that they manage to gain access to etcd.

severity: unknown

identifiers:
  cce@eks: CCE-90708-9

references:
  cis@eks: 5.3.1

ocil_clause: 'kubernetes secrets are encrypted in etcd'

ocil: |-
  <b>Audit:</b>

  For Amazon EKS clusters with Secrets Encryption enabled, look for
  <tt>'encryptionConfig'</tt> configuration when you run:
  <tt>aws eks describe-cluster --name="<i>cluster-name</i>"</tt>

  <b>Remediation:</b>

  Enable 'Secrets Encryption' during Amazon EKS cluster creation as
  described in the links within the 'References' section.

  <b>References:</b>
  <ol>
    <li>https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html</li>
    <li>https://eksworkshop.com/beginner/191_secrets/</li>
  </ol>
