Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

APP.4.4.A3 #29

Closed
sluetze opened this issue Nov 7, 2023 · 5 comments
Closed

APP.4.4.A3 #29

sluetze opened this issue Nov 7, 2023 · 5 comments
Assignees
Labels
existing-rules Existing rules exist for the requirement

Comments

@sluetze
Copy link

sluetze commented Nov 7, 2023

No description provided.

@sluetze
Copy link
Author

sluetze commented Nov 21, 2023

Kubernetes und alle anderen Anwendungen der Control Plane MÜSSEN jede Aktion eines Benutzers oder, im automatisierten Betrieb, einer entsprechenden Software authentifizieren und autorisieren, unabhängig davon, ob die Aktionen über einen Client, eine Weboberfläche oder über eine entsprechende Schnittstelle (API) erfolgt. Administrative Handlungen DÜRFEN NICHT anonym erfolgen.

OpenShift beschränkt bereits in der Grundkonfiguration die Nutzung der Web-Console und der APIs nur auf authentifizierte und autorisierte Nutzer. Die Anbindung an externe Verzeichnisdienste (LDAP, OIDC und weitere) ist möglich.

rules:
 - api_server_anonymous_auth
 - kubelet_anonymous_auth

Jeder Benutzer DARF NUR die unbedingt notwendigen Rechte erhalten. Berechtigungen ohne Einschränkungen MÜSSEN sehr restriktiv vergeben werden.
Nur ein kleiner Kreis von Personen SOLLTE berechtigt sein, Prozesse der Automatisierung zu definieren.

OpenShift bietet bereits Rollen für ein Least-Privilege-Konzept. Die RBAC-Rollen lassen sich anpassen oder durch neue Rollen ergänzen. Die vorkonfigurierten Rollen ermöglichen eine einfache Berechtigungsvergabe nach den Least-Privilege und Need-to-know Prinzipien. Über das Audit-Log können die Nutzer-Aktionen nachvollzogen werden.

rules:
 - kubeadmin_removed
 - rbac_least_privilege

Nur ausgewählte Administratoren SOLLTEN in Kubernetes das Recht erhalten, Freigaben für Festspeicher (Persistent Volumes) anzulegen oder zu ändern.

Persistent Storage kann in der Grundkonfiguration nur von Cluster-Administratoren integriert werden. Bei dynamisch provisioniertem Storage verfügen entsprechende Provisioner die notwendigen Berechtigungen. Diese Provisioner müssen von einem Admin eingerichtet und konfiguriert werden. Mittels der Quota-Mechanismen werden Storage-Anforderungen gesteuert und eingeschränkt.

- Manual check

@benruland
Copy link

This (manual) rule could also add value:

  • rbac_limit_cluster_admin

@benruland benruland added the existing-rules Existing rules exist for the requirement label Dec 18, 2023
@sluetze sluetze moved this from Evaluation to Implementation in sig-bsi-grundschutz tracking Jan 8, 2024
@nrrso
Copy link

nrrso commented Jan 18, 2024

I think these rules might be relevant as well:

rules:
  - idp_is_configured
  - ocp_idp_no_htpasswd (not sure about this)
  - ocp_no_ldap_insecure

There are other rules under openshift/authentication/* which cover timeout, maxage and inactivity of oauth-tokens and make sense, but the control does not explicitly mention them, so I haven't included them.

@sluetze
Copy link
Author

sluetze commented Jan 19, 2024

I think these rules might be relevant as well:

rules:
  - idp_is_configured
  - ocp_idp_no_htpasswd (not sure about this)
  - ocp_no_ldap_insecure

There are other rules under openshift/authentication/* which cover timeout, maxage and inactivity of oauth-tokens and make sense, but the control does not explicitly mention them, so I haven't included them.

I am fine with idp_is_configured since this might also stop people from removing kubeadmin without adding an IDP. Without IDP (no matter if htpasswd or not) and without kubeadmin, they lose access. I think with no_htpasswd we are overstretching the requirement.

ocp_no_ldap_insecure is imho out of scope. this is more APP.2.3.A6 which is not in focus. Maybe because of the structure of BSI Grundschutz we might have to also take a look into other buildingblocks and add such rules. Ill also take this over into customer meeting to get their input

I agree to not include the timeout controls, since they are not mentioned.

@sluetze
Copy link
Author

sluetze commented Mar 15, 2024

ComplianceAsCode#11501 was merged

@sluetze sluetze closed this as completed Mar 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
existing-rules Existing rules exist for the requirement
Projects
Development

When branches are created from issues, their pull requests are automatically linked.

3 participants