Skip to content

Guide to the Secure Configuration of Amazon Elastic Kubernetes Service

Rules, Groups, and Values defined within the XCCDF Benchmark

  • HyperShift Cluster Namespace Prefix

    The prefix to use for HyperShift Hosted Clusters Namespace. This value will be used when a non-default namespace naming scheme is used. The default...
    Value
  • Root of files obtained from OCP nodes

    When scanning OpenShift clusters, some settings are not exposed as files. In the case that they are exported from the cluster (typically as yaml fi...
    Value
  • Configure Kubelet EvictionHard Image FS Available

    Image FS Available for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionHard Image FS inodes Free

    Image FS inodes Free for the EvictionHard threshold to trigger.
    Value
  • Introduction

    The purpose of this guidance is to provide security configuration recommendations and baselines for Amazon Elastic Kubernetes Service. The guide is...
    Group
  • General Principles

    The following general principles motivate much of the advice in this guide and should also influence any configuration decisions that are not expli...
    Group
  • Encrypt Transmitted Data Whenever Possible

    Data transmitted over a network, whether wired or wireless, is susceptible to passive monitoring. Whenever practical solutions for encrypting such ...
    Group
  • Least Privilege

    Grant the least privilege necessary for user accounts and software to perform tasks. For example, <code>sudo</code> can be implemented to limit aut...
    Group
  • Run Different Network Services on Separate Systems

    Whenever possible, a server should be dedicated to serving exactly one network service. This limits the number of other services that can be compro...
    Group
  • Configure Security Tools to Improve System Robustness

    Several tools exist which can be effectively used to improve a system's resistance to and detection of unknown attacks. These tools can improve rob...
    Group
  • How to Use This Guide

    Readers should heed the following points when using the guide.
    Group
  • Formatting Conventions

    Commands intended for shell execution, as well as configuration file text, are featured in a <code>monospace font</code>. <i>Italics</i> are used t...
    Group
  • Read Sections Completely and in Order

    Each section may build on information and recommendations discussed in prior sections. Each section should be read and understood completely; instr...
    Group
  • Reboot Required

    A system or service reboot is implicitly required after some actions in order to complete the reconfiguration of the system. In many cases, the cha...
    Group
  • Root Shell Environment Assumed

    Most of the actions listed in this document are written with the assumption that they will be executed by the root user running the <code>/bin/bash...
    Group
  • Test in Non-Production Environment

    This guidance should always be tested in a non-production environment before deployment. This test environment should simulate the setup in which t...
    Group
  • Kubernetes Settings

    Each section of this configuration guide includes information about the configuration of a Kubernetes cluster and a set of recommendations for hard...
    Group
  • HyperShift Cluster Name

    When this parameter is set, we will assume the cluster is a HyperShift cluster, and we will fetch the OCP version api resource for HyperShift cluster
    Value
  • OCP version api path

    When scanning OpenShift clusters, not all type of cluster has same api resource path for ocp version, ex. HyperShift OCP version api resource path ...
    Value
  • OCP version yaml path

    When scanning OpenShift clusters, not all type of cluster has same api resource path for ocp version, ex. HyperShift OCP version api resource path ...
    Value
  • Kubernetes - Account and Access Control

    In traditional Unix security, if an attacker gains shell access to a certain login account, they can perform any action or access any file to which...
    Group
  • Use Dedicated Service Accounts

    Kubernetes workloads should not use cluster node service accounts to authenticate to Amazon EKS APIs. Each Kubernetes workload that needs to authen...
    Rule Unknown Severity
  • Authentication

    In cloud workloads, there are many ways to create and configure to multiple authentication services. Some of these authentication methods by not be...
    Group
  • OAuth Clients Token Inactivity Timeout

    Enter OAuth Clients Token Inactivity Timeout in Seconds
    Value
  • OAuth Token Inactivity Timeout

    Enter OAuth Token Inactivity Timeout
    Value
  • Manage Users with AWS IAM

    Amazon EKS uses IAM to provide authentication to your Kubernetes cluster through the AWS IAM Authenticator for Kubernetes. You can configure the st...
    Rule Unknown Severity
  • Kubernetes - General Security Practices

    Contains evaluations for general security practices for operating a Kubernetes environment.
    Group
  • Consider Fargate for Untrusted Workloads

    It is Best Practice to restrict or fence untrusted workloads when running in a multi-tenant environment.
    Rule Unknown Severity
  • Kubernetes Kubelet Settings

    The Kubernetes Kubelet is an agent that runs on each node in the cluster. It makes sure that containers are running in a pod. The kubelet takes a ...
    Group
  • Configure Kubelet Event Limit

    Maximum event creations per second.
    Value
  • kubelet - Authorization Options

    ABAC - Attribute-Based Access Control (ABAC) mode allows you to configure policies using local files. <br>RBAC - Role-based access control (RBAC) m...
    Value
  • Configure Kubelet EvictionHard Memory Available

    Memory Available for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionHard NodeFS Available

    Node FS Available for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionHard Node FS inodes Free

    Node FS inodes Free for the EvictionHard threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Image FS Available

    Image FS Available for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Image FS inodes Free

    Image FS inodes Free for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Memory Available

    Memory Available for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft NodeFS Available

    Node FS Available for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet EvictionSoft Node FS inodes Free

    Node FS inodes Free for the EvictionSoft threshold to trigger.
    Value
  • Configure Kubelet use of the Strong Cryptographic Ciphers

    Cryptographic Ciphers Available for Kubelet, separated by comma
    Value
  • Configure Kubelet use of the Strong Cryptographic Ciphers

    Cryptographic Ciphers Available for Kubelet
    Value
  • Configure Kubelet to use secure TLS version

    Secure version of TLS available for configuring Kubelet
    Value
  • Configure Kubelet to use secure TLS version

    TLS versions available for configuring Kubelet, excluding insecure versions
    Value
  • Configure which node to scan based on role

    Configure which node to scan based on role
    Value
  • Configure which node to scan based on role

    Configure which node to scan based on role
    Value
  • Streaming Connection Timeout Options

    Time until connection timeouts. Use (s) for seconds, (m) for minutes, and (h) for hours.
    Value
  • Disable Anonymous Authentication to the Kubelet

    By default, anonymous access to the Kubelet server is enabled. This configuration check ensures that anonymous requests to the Kubelet server are d...
    Rule Medium Severity
  • Ensure authorization is set to Webhook

    Unauthenticated/unauthorized users should have no access to OpenShift nodes. The Kubelet should be set to only allow Webhook authorization. To ensu...
    Rule Medium Severity
  • kubelet - Configure the Client CA Certificate

    By default, the kubelet is not configured with a CA certificate which can subject the kubelet to man-in-the-middle attacks. To configure a client ...
    Rule Medium Severity
  • kubelet - Hostname Override handling

    Normally, OpenShift lets the kubelet get the hostname from either the cloud provider itself, or from the node's hostname. This ensures that the PKI...
    Rule Low Severity

The content of the drawer really is up to you. It could have form fields, definition lists, text lists, labels, charts, progress bars, etc. Spacing recommendation is 24px margins. You can put tabs in here, and can also make the drawer scrollable.

Capacity
Modules