Kubernetes Richtlinien in DevOps Config
Standardmäßig enthält das DevOps Config -Richtlinien-Inhaltspaket eine Reihe von Richtlinien zum Validieren Ihrer Kubernetes -Konfiguration.
Plugin für die Zulassungssteuerung für Images immer abrufen ist aktiviert (container_always_pull_images_plugin_is_enabled)
Überprüft, ob das Admission Controller-Plugin „ AlwaysPullImages “ für den API-Server Kubernetes aktiviert ist.
Führt zu einem nicht konformen Status, wenn das Plugin „AlwaysPullImages “ bei Verwendung des Befehls „kube-apiserver“ nicht mit dem Argument „--enable-admission-plugins“ angegeben wird.
Standardauthentifizierungsdatei ist nicht festgelegt (container_basic_auth_file_is not_set)
Überprüft, ob der API-Server Kubernetes nicht den Standardmechanismus für die Anwenderauthentifizierung verwendet.
Führt zu einem nicht konformen Status, wenn für einen Container das Argument „--basic-auth-file“ bei Verwendung des Befehls „kube-apiserver“ angegeben wird.
Bindungsadresse ist nicht festgelegt (container_bind_address_not_set_to_localhost)
Überprüft, ob die Bindungsadresse des Planers Kubernetes oder des Controller-Managers Kubernetes nicht 127.0.0.1ist.
Führt zu einem nicht konformen Status, wenn das Argument „--bind-address“ für einen Container bei Verwendung des Befehls „kube-controller-manager“ oder „kube-scheduler“ auf 127.0.0.1 festgelegt ist.
Container werden mit niedriger UID nicht ausgeführt (container_uid_minimum_limit)
Überprüft, ob die UID jedes Containers in einem Kubernetes -Pod größer als oder gleich dem angegebenen UID-Mindestwert ist.
Führt zu einem nicht konformen Status, wenn die für einen Container definierte UID kleiner als der UID-Mindestwert ist. Wenn die UID für einen Container nicht definiert ist, wird die UID des zugeordneten Pods validiert.
- Eingabeargument
- min_uid
- Der UID-Mindestwert, der für die Container in einem Pod erforderlich ist.
- Standardwert:
10000 - Typ: Ganzzahl
- Obligatorisch: False
Container erfordern Ablegefähigkeiten (container_requires_drop_capabilities)
Überprüft, ob die Ablegefähigkeiten für Container in einem Kubernetes -Pod definiert sind.
Führt zu einem nicht konformen Status, wenn die Ablegefähigkeiten für einen Container nicht definiert sind.
Container werden als Nicht-Root-Anwender ausgeführt (container_run_as_nonroot_user)
Überprüft, ob die Container in einem Kubernetes -Pod nur als Nicht-Root-Benutzer ausgeführt werden, um die Ausnutzbarkeit von Sicherheitsfehlkonfigurationen zu begrenzen und die Möglichkeiten eines Angreifers im Falle einer Kompromittierung einzuschränken.
Führt zu einem nicht konformen Status, wenn der Schlüssel „runAsNonRoot“ für einen Container auf „falsch“ festgelegt ist oder die Anwender-ID (UID) eines Containers 0 ist.
Container werden ohne Berechtigungszugriff ausgeführt (container_is_not_privileged)
Überprüft, ob die Container in einem Kubernetes -Pod ohne privilegierten Zugriff ausgeführt werden.
Führt zu einem nicht konformen Status, wenn das Feld „privileged“ für einen Container auf „true“festgelegt ist.
Container werden ohne Sys-Admin-Fähigkeit ausgeführt (container_is_without_sys_admin_capability)
Überprüft, ob die Container in einem Kubernetes -Pod ohne die Fähigkeit „SYS_ADMIN“ ausgeführt werden.
Führt zu einem nicht konformen Status, wenn einem Container die SYS_ADMIN-Berechtigungen zugewiesen sind.
CPU-Anforderungen liegen innerhalb der Grenzwerte (container_cpu_request_within_limits)
Überprüft, ob die Container in einem Kubernetes -Pod die Hauptprozessor-Ressourcen (Central Processing Unit, CPU) innerhalb des angegebenen CPU-Limits anfordern.
Führt zu einem nicht konformen Status, wenn entweder der Schlüssel „limits.cpu“ nicht definiert ist oder wenn der Wert des Schlüssels „ requests.cpu “ den Wert des Schlüssels „limits.cpu“ überschreitet.
Docker-Daemon-Socket ist nicht verfügbar (docker_daemon_socket_not_exposition)
Überprüft, ob der Docker-Daemon-Socket für Container nicht verfügbar gemacht wurde.
Führt zu einem nicht konformen Status, wenn der Schlüssel hostPath.path für ein Volume auf /var/run/docker.sockfestgelegt ist.
Image-Abrufrichtlinie ist immer (container_imagePullPolicy_is_always)
Überprüft, ob das Feld „imagePullPolicy“ für jeden Container in einem Kubernetes -Pod auf „Always“festgelegt ist.
Führt zu einem nicht konformen Status, wenn das Feld „imagePullPolicy“ nicht definiert oder das Immerkriterium nicht erfüllt wird.
Unsichere Bindungsadresse ist nicht festgelegt (container_insecure_bind_address_is_not_set)
Überprüft, dass der Kubernetes-API-Server nicht an eine unsichere Adresse bindet, die es Angreifern andernfalls ermöglichen könnte, über den unsicheren Port eine Verbindung zum Server herzustellen und möglicherweise vertrauliche Daten während der Übertragung zu lesen.
Führt zu einem nicht konformen Status, wenn bei Verwendung des Befehls „kube-apiserver“ das Argument „insecure-bind-address“ angegeben wird.
Kubelet-HTTPS ist „wahr“ (container_kubelet_https_is_true)
Überprüft, ob die Verbindungen zwischen dem API-Server Kubernetes und Kubelet das HTTPS-Protokoll verwenden, um die Datenübertragung zu sichern.
Führt zu einem nicht konformen Status, wenn das Argument „-kubelet-https“ bei Verwendung des Befehls „kube-apiserver“ auf „falsch“ festgelegt ist.
Arbeitsspeicheranforderungen liegen innerhalb der Grenzwerte (container_memory_request_within_limits)
Überprüft, ob die Container in einem Kubernetes -Pod Ressourcen innerhalb des angegebenen Arbeitsspeicherlimits verbrauchen.
Führt zu einem nicht konformen Status, wenn entweder der Schlüssel „limits.memory“ nicht definiert ist oder wenn der Wert des Schlüssels „ requests.memory “ den Wert des Schlüssels „limits.memory“ überschreitet.
Kein Platzhalter in der RBAC-Regel (rback_no_wildcard_in_rule)
Überprüft, dass die Ressourcen „Role“ und „ClusterRole“ keine Platzhalterzeichen verwenden, um auf Objekte oder Aktionen für die rollenbasierte Zugriffssteuerungsregel (RBAC) zu verweisen.
Führt zu einem nicht konformen Status, wenn die Platzhalter in apiGroups, Ressourcenoder Verben für die RBAC-Regel verwendet werden.
Berechtigungseskalation nicht zulässig (container_privilege_escalation_not_allowed)
Überprüft, ob die Container in einem Pod Kubernetes weniger Berechtigungen haben als der übergeordnete Prozess.
Führt zu einem nicht konformen Status, wenn der Schlüssel „allowPrivilegeEscalation“ für einen Container entweder auf „wahr“ festgelegt oder nicht definiert ist.
Stammcontainer zugelassen (container_read_only_root_file_system)
Überprüft, ob das Stammdateisystem der Container in einem Kubernetes -Pod schreibgeschützt ist.
Führt zu einem nicht konformen Status, wenn der Schlüssel „readOnlyRootFilesystem “ für einen Container nicht definiert oder auf „false“festgelegt ist.
Seccomp-Profil ist konfiguriert (container_seccomp_profile_is_configured)
Überprüft, ob die Container in einem Kubernetes-Pod mit einem Profil für den sicheren Datenverarbeitungsmodus (seccomp) konfiguriert sind, um potenziell gefährliche Systemaufrufe (syscalls) einzuschränken.
Führt zu einem nicht konformen Status, wenn der Schlüssel „seccompProfile.type“ für einen Container entweder nicht definiert oder auf einen anderen Wert als Localhost oder RuntimeDefaultfestgelegt ist.
Private Schlüsseldatei für Service-Account ist angegeben (container_service_account_private_key_file_is_specified)
Überprüft, ob das Argument „--service-account-private-key-file“ mit dem Befehl „kube-controller-manager“ für einen Container angegeben ist.
Führt zu einem nicht konformen Status, wenn das Argument „--service-account-private-key-file“ bei Verwendung des Befehls „ kube-controller-manager“ nicht für einen Container angegeben ist.
Sicherer Port ist nicht auf Null gesetzt (container_secure_port_not_set_to_zero)
Überprüft, ob der Kubernetes API-Server Port 0 für die HTTPS-Authentifizierung und -Autorisierung verwendet.
Führt zu einem nicht konformen Status, wenn das Argument „--secure-port“ für einen Container bei Verwendung des Befehls „kube-apiserver“ auf 0 festgelegt ist.
Token-Authentifizierungsdatei ist nicht festgelegt (token_auth_file_is_not_set)
Überprüft, ob der API-Server Kubernetes keine statische Tokendatei für die Anwenderauthentifizierung verwendet.
Führt zu einem nicht konformen Status, wenn bei Verwendung des Befehls „kube-apiserver“ das Argument „token-auth-file“ angegeben wird.