-
**VNet Peering** ist eine Netzwerkfunktion in Azure, die **es ermöglicht, verschiedene Virtuelle Netzwerke (VNets) direkt und nahtlos zu verbinden**. Durch VNet Peering können Ressourcen in einem VNet mit Ressourcen in einem anderen VNet über private IP-Adressen kommunizieren, **als ob sie im selben Netzwerk wären**.\
**VNet Peering kann auch mit On-Premise-Netzwerken verwendet werden**, indem ein Site-to-Site-VPN oder Azure ExpressRoute eingerichtet wird.
-**Azure Hub und Spoke** ist eine Netzwerk-Topologie, die in Azure verwendet wird, um den Netzwerkverkehr zu verwalten und zu organisieren. **Der "Hub" ist ein zentraler Punkt, der den Verkehr zwischen verschiedenen "Speichen" steuert und leitet**. Der Hub enthält typischerweise gemeinsame Dienste wie Netzwerkvirtualgeräte (NVAs), Azure VPN Gateway, Azure Firewall oder Azure Bastion. Die **"Speichen" sind VNets, die Workloads hosten und über VNet Peering mit dem Hub verbunden sind**, wodurch sie die gemeinsamen Dienste im Hub nutzen können. Dieses Modell fördert eine saubere Netzwerkstruktur und reduziert die Komplexität, indem es gemeinsame Dienste zentralisiert, die von mehreren Workloads in verschiedenen VNets genutzt werden können.
+**Azure Hub und Spoke** ist eine Netzwerk-Topologie, die in Azure verwendet wird, um den Netzwerkverkehr zu verwalten und zu organisieren. **Der "Hub" ist ein zentraler Punkt, der den Verkehr zwischen verschiedenen "Spokes" steuert und leitet**. Der Hub enthält typischerweise gemeinsame Dienste wie Netzwerkvirtualgeräte (NVAs), Azure VPN Gateway, Azure Firewall oder Azure Bastion. Die **"Spokes" sind VNets, die Workloads hosten und über VNet Peering mit dem Hub verbunden sind**, wodurch sie die gemeinsamen Dienste im Hub nutzen können. Dieses Modell fördert eine saubere Netzwerkstruktur und reduziert die Komplexität, indem es gemeinsame Dienste zentralisiert, die von mehreren Workloads in verschiedenen VNets genutzt werden können.
-> [!CAUTION] > **VNET-Peering ist in Azure nicht transitiv**, was bedeutet, dass, wenn Speiche 1 mit Speiche 2 verbunden ist und Speiche 2 mit Speiche 3 verbunden ist, Speiche 1 nicht direkt mit Speiche 3 kommunizieren kann.
+> [!CAUTION] > **VNET-Peering ist in Azure nicht transitiv**, was bedeutet, dass, wenn Spoke 1 mit Spoke 2 verbunden ist und Spoke 2 mit Spoke 3 verbunden ist, Spoke 1 nicht direkt mit Spoke 3 kommunizieren kann.
**Beispiel:**
-Stellen Sie sich ein Unternehmen mit separaten Abteilungen wie Vertrieb, Personalwesen und Entwicklung vor, **jede mit ihrem eigenen VNet (den Speichen)**. Diese VNets **benötigen Zugriff auf gemeinsame Ressourcen** wie eine zentrale Datenbank, eine Firewall und ein Internet-Gateway, die sich alle in **einem anderen VNet (dem Hub)** befinden. Durch die Verwendung des Hub- und Spoke-Modells kann jede Abteilung **sicher auf die gemeinsamen Ressourcen über das Hub-VNet zugreifen, ohne diese Ressourcen dem öffentlichen Internet auszusetzen** oder eine komplexe Netzwerkstruktur mit zahlreichen Verbindungen zu schaffen.
+Stellen Sie sich ein Unternehmen mit separaten Abteilungen wie Vertrieb, Personalwesen und Entwicklung vor, **die jeweils ihr eigenes VNet (die Spokes) haben**. Diese VNets **benötigen Zugriff auf gemeinsame Ressourcen** wie eine zentrale Datenbank, eine Firewall und ein Internet-Gateway, die sich alle in **einem anderen VNet (dem Hub)** befinden. Durch die Verwendung des Hub- und Spoke-Modells kann jede Abteilung **sicher auf die gemeinsamen Ressourcen über das Hub-VNet zugreifen, ohne diese Ressourcen dem öffentlichen Internet auszusetzen** oder eine komplexe Netzwerkstruktur mit zahlreichen Verbindungen zu schaffen.
### Enumeration
diff --git a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md
index c6594c74c..244c97aa7 100644
--- a/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md
+++ b/src/pentesting-cloud/kubernetes-security/kubernetes-hardening/kubernetes-securitycontext-s.md
@@ -11,20 +11,20 @@ Beim Festlegen des Sicherheitskontexts eines Pods können Sie mehrere Attribute
- **runASNonRoot** auf **True** setzen
- **runAsUser** konfigurieren
- Wenn möglich, **Berechtigungen** einschränken, indem Sie **seLinuxOptions** und **seccompProfile** angeben
-- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup** und **supplementaryGroups**.
+- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup** und **supplementaryGroups**
| Parameter | Beschreibung |
-| fsGroup
integer
| Eine spezielle ergänzende Gruppe, die auf alle Container in einem Pod angewendet wird. Einige Volumentypen erlauben es dem Kubelet, den Besitz dieses Volumens zu ändern, sodass es dem Pod gehört:
1. Die besitzende GID wird die FSGroup sein
2. Das setgid-Bit ist gesetzt (neue Dateien, die im Volumen erstellt werden, gehören zur FSGroup)
3. Die Berechtigungsbits werden mit rw-rw---- OR'd. Wenn nicht gesetzt, wird das Kubelet den Besitz und die Berechtigungen eines Volumens nicht ändern.
|
+| fsGroup
integer
| Eine spezielle ergänzende Gruppe, die auf alle Container in einem Pod angewendet wird. Einige Volumentypen erlauben es dem Kubelet, den Besitz dieses Volumens zu ändern, sodass es dem Pod gehört:
1. Die besitzende GID wird die FSGroup sein
2. Das setgid-Bit ist gesetzt (neue Dateien, die im Volumen erstellt werden, gehören zur FSGroup)
3. Die Berechtigungsbits werden mit rw-rw---- OR'd. Wenn nicht gesetzt, wird das Kubelet den Besitz und die Berechtigungen eines Volumens nicht ändern
|
-| fsGroupChangePolicy
string
| Dies definiert das Verhalten beim **Ändern des Besitzes und der Berechtigung des Volumens**, bevor es innerhalb des Pods exponiert wird. |
-| runAsGroup
integer
| Die **GID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Verwendet die Standardlaufzeit, wenn nicht gesetzt. Kann auch im SecurityContext festgelegt werden. |
-| runAsNonRoot
boolean
| Gibt an, dass der Container als ein Nicht-Root-Benutzer ausgeführt werden muss. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. |
-| runAsUser
integer
| Die **UID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Standardmäßig wird der Benutzer verwendet, der in den Metadaten des Images angegeben ist, wenn nicht angegeben. |
+| fsGroupChangePolicy
string
| Dies definiert das Verhalten des **Änderns von Besitz und Berechtigungen des Volumens**, bevor es innerhalb des Pods exponiert wird. |
+| runAsGroup
integer
| Die **GID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Verwendet den Standardwert zur Laufzeit, wenn nicht gesetzt. |
+| runAsNonRoot
boolean
| Gibt an, dass der Container als ein Nicht-Root-Benutzer ausgeführt werden muss. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. |
+| runAsUser
integer
| Die **UID, unter der der Einstiegspunkt des Containerprozesses ausgeführt wird**. Standardmäßig wird der Benutzer verwendet, der in den Metadaten des Images angegeben ist, wenn nicht angegeben. |
| seLinuxOptions
SELinuxOptions
Weitere Informationen über seLinux
| Der **SELinux-Kontext, der auf alle Container angewendet werden soll**. Wenn nicht angegeben, weist die Containerlaufzeit jedem Container einen zufälligen SELinux-Kontext zu. |
-| seccompProfile
SeccompProfile
Weitere Informationen über Seccomp
| Die **seccomp-Optionen, die von den Containern** in diesem Pod verwendet werden. |
+| seccompProfile
SeccompProfile
Weitere Informationen über Seccomp
| Die **seccomp-Optionen, die von den Containern** in diesem Pod verwendet werden sollen. |
| supplementalGroups
integer array
| Eine Liste von **Gruppen, die auf den ersten Prozess angewendet werden, der in jedem Container ausgeführt wird**, zusätzlich zur primären GID des Containers. |
| sysctls
Sysctl array
Weitere Informationen über sysctls
| Sysctls halten eine Liste von **namespaced sysctls, die für den Pod verwendet werden**. Pods mit nicht unterstützten Sysctls (durch die Containerlaufzeit) könnten beim Starten fehlschlagen. |
-| windowsOptions
WindowsSecurityContextOptions
| Die Windows-spezifischen Einstellungen, die auf alle Container angewendet werden. Wenn nicht angegeben, werden die Optionen innerhalb des SecurityContext eines Containers verwendet. |
+| windowsOptions
WindowsSecurityContextOptions
| Die Windows-spezifischen Einstellungen, die auf alle Container angewendet werden. Wenn nicht angegeben, werden die Optionen innerhalb des Sicherheitskontexts eines Containers verwendet. |
## SecurityContext
@@ -36,23 +36,23 @@ Dieser Kontext wird innerhalb der **Containerdefinitionen** festgelegt. Aus der
- Fügen Sie keine sensiblen **Capabilities** hinzu (und entfernen Sie die, die Sie nicht benötigen)
- **privileged** auf **False**
- Wenn möglich, setzen Sie **readOnlyFilesystem** auf **True**
-- Setzen Sie **runAsNonRoot** auf **True** und legen Sie eine **runAsUser** fest
+- Setzen Sie **runAsNonRoot** auf **True** und setzen Sie eine **runAsUser**
- Wenn möglich, **Berechtigungen** einschränken, indem Sie **seLinuxOptions** und **seccompProfile** angeben
-- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup**.
+- Geben Sie **keinen** Zugriff auf **Privilegierte** **Gruppen** über **runAsGroup.**
Beachten Sie, dass die in **SecurityContext und PodSecurityContext** festgelegten Attribute, der in **SecurityContext** angegebene Wert **Vorrang** hat.
-| allowPrivilegeEscalation
boolean
| **AllowPrivilegeEscalation** steuert, ob ein Prozess **mehr Privilegien** als sein übergeordneter Prozess **erlangen kann**. Dieses Bool steuert direkt, ob das no_new_privs-Flag für den Containerprozess gesetzt wird. AllowPrivilegeEscalation ist immer wahr, wenn der Container als **Privilegiert** ausgeführt wird oder **CAP_SYS_ADMIN** hat. |
+| allowPrivilegeEscalation
boolean
| **AllowPrivilegeEscalation** steuert, ob ein Prozess **mehr Privilegien** als sein übergeordneter Prozess **erlangen kann**. Dieses Bool steuert direkt, ob das no_new_privs-Flag für den Containerprozess gesetzt wird. AllowPrivilegeEscalation ist immer wahr, wenn der Container als **Privileged** ausgeführt wird oder **CAP_SYS_ADMIN** hat. |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| capabilities
Capabilities
Weitere Informationen über Capabilities
| Die **Capabilities, die beim Ausführen von Containern hinzugefügt/entfernt werden sollen**. Standardmäßig wird die Standardmenge an Capabilities verwendet. |
-| privileged
boolean
| Führen Sie den Container im privilegierten Modus aus. Prozesse in privilegierten Containern sind im Wesentlichen **äquivalent zu root auf dem Host**. Standardmäßig ist dies falsch. |
+| privileged
boolean
| Führen Sie den Container im privilegierten Modus aus. Prozesse in privilegierten Containern sind im Wesentlichen **gleichwertig mit Root auf dem Host**. Standardmäßig ist dies falsch. |
| procMount
string
| procMount bezeichnet den **Typ des proc-Mounts, der für die Container verwendet werden soll**. Der Standardwert ist DefaultProcMount, der die Standardwerte der Containerlaufzeit für schreibgeschützte Pfade und maskierte Pfade verwendet. |
-| readOnlyRootFilesystem
boolean
| Ob dieser **Container ein schreibgeschütztes Root-Dateisystem hat**. Standardwert ist falsch. |
-| runAsGroup
integer
| Die **GID, unter der der Einstiegspunkt** des Containerprozesses ausgeführt wird. Verwendet die Standardlaufzeit, wenn nicht gesetzt. |
-| runAsNonRoot
boolean
| Gibt an, dass der Container **als ein Nicht-Root-Benutzer ausgeführt werden muss**. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. |
+| readOnlyRootFilesystem
boolean
| Ob dieser **Container ein schreibgeschütztes Root-Dateisystem hat**. Der Standardwert ist falsch. |
+| runAsGroup
integer
| Die **GID, unter der der Einstiegspunkt** des Containerprozesses ausgeführt wird. Verwendet den Standardwert zur Laufzeit, wenn nicht gesetzt. |
+| runAsNonRoot
boolean
| Gibt an, dass der Container **als ein Nicht-Root-Benutzer** ausgeführt werden muss. Wenn dies wahr ist, validiert das Kubelet das Image zur Laufzeit, um sicherzustellen, dass es nicht als UID 0 (Root) ausgeführt wird, und schlägt fehl, den Container zu starten, wenn dies der Fall ist. |
| runAsUser
integer
| Die **UID, unter der der Einstiegspunkt** des Containerprozesses ausgeführt wird. Standardmäßig wird der Benutzer verwendet, der in den Metadaten des Images angegeben ist, wenn nicht angegeben. |
| seLinuxOptions
SELinuxOptions
Weitere Informationen über seLinux
| Der **SELinux-Kontext, der auf den Container angewendet werden soll**. Wenn nicht angegeben, weist die Containerlaufzeit jedem Container einen zufälligen SELinux-Kontext zu. |
-| seccompProfile
SeccompProfile
| Die **seccomp-Optionen**, die von diesem Container verwendet werden. |
+| seccompProfile
SeccompProfile
| Die **seccomp-Optionen**, die von diesem Container verwendet werden sollen. |
| windowsOptions
WindowsSecurityContextOptions
| Die **Windows-spezifischen Einstellungen**, die auf alle Container angewendet werden. |
## References