Cloud Armor in andere Google-Produkte einbinden

In den folgenden Abschnitten wird erläutert, wie Cloud Armor mit anderen Google Cloud Funktionen und Produkten interagiert.

Cloud Armor- und VPC-Firewallregeln

Cloud Armor-Sicherheitsrichtlinien und VPC-Firewallregeln haben unterschiedliche Funktionen:

Stellen Sie sich beispielsweise ein Szenario vor, in dem Sie nur Traffic aus dem CIDR-Bereich 100.1.1.0/24 und dem CIDR-Bereich 100.1.2.0/24 für den Zugriff auf Ihren globalen externen Application Load Balancer oder klassischen Application Load Balancer zulassen möchten. Ihr Ziel ist es, zu verhindern, dass Traffic die Backend-Instanzen mit Load-Balancing direkt erreicht. Mit anderen Worten: Nur externer Traffic, der über den globalen externen Application Load Balancer oder den klassischen Application Load Balancer mit einer entsprechenden Sicherheitsrichtlinie geleitet wird, kann die Instanzen erreichen.

Cloud Armor-Sicherheitsrichtlinien mit Firewalls für eingehenden Traffic verwenden, um den Zugriff einzuschränken
Cloud Armor-Sicherheitsrichtlinien mit Firewalls für eingehenden Traffic verwenden, um den Zugriff einzuschränken (zum Vergrößern anklicken)

Das vorherige Diagramm zeigt die folgende Bereitstellungskonfiguration:

  1. Erstellen Sie zwei Instanzgruppen, eine in der Region us-west1 und eine andere in der Region europe-west1.
  2. Stellen Sie Back-End-Anwendungsinstanzen auf den VMs in den Instanzgruppen bereit.
  3. Erstellen Sie einen globalen externen Application Load Balancer oder einen klassischen Application Load Balancer in der Premium-Stufe. Konfigurieren Sie eine URL-Zuordnung und einen einzelnen Back-End-Dienst, dessen Back-Ends die beiden Instanzgruppen sind, die Sie im vorherigen Schritt erstellt haben. Die Weiterleitungsregel des Load-Balancers muss die externe IP-Adresse 120.1.1.1 verwenden.
  4. Konfigurieren Sie eine Cloud Armor-Sicherheitsrichtlinie, die Traffic von 100.1.1.0/24 und 100.1.2.0/24 zulässt und den gesamten anderen Traffic ablehnt.
  5. Verknüpfen Sie diese Richtlinie mit dem Back-End-Dienst des Load-Balancers. Eine Anleitung finden Sie unter Cloud Armor-Sicherheitsrichtlinien konfigurieren. Externe HTTP(S)-Load-Balancer mit komplexeren URL-Zuordnungen können auf mehrere Back-End-Dienste verweisen. Sie können die Sicherheitsrichtlinie bei Bedarf mit einem oder mehreren der Back-End-Dienste verknüpfen.
  6. Konfigurieren Sie Firewallregeln zum Zulassen von eingehendem Traffic, um den Traffic vom globalen externen Application Load Balancer oder vom klassischen Application Load Balancer zuzulassen. Weitere Informationen finden Sie unter Firewallregeln.

Cloud Armor mit externen Application Load Balancern und IAP

Identity-Aware Proxy (IAP) überprüft die Identität eines Nutzers und bestimmt dann, ob dieser Nutzer auf eine Anwendung zugreifen darf. Um IAP für den globalen externen Application Load Balancer oder den klassischen Application Load Balancer zu aktivieren, verwenden Sie die Backend-Dienste des Load Balancers. In ähnlicher Weise werden Edge-Cloud Armor-Sicherheitsrichtlinien an die Backend-Dienste eines globalen externen Application Load Balancers oder eines klassischen Application Load Balancers angehängt.

Wenn sowohl Cloud Armor-Sicherheitsrichtlinien als auch IAP für einen Back-End-Dienst aktiviert sind, hängt die Reihenfolge ihrer Auswertung vom Typ des Load-Balancers ab:

  • Bei einem Backend-Dienst eines globalen externen Application Load Balancers erfolgt die Cloud Armor-Auswertung zuerst. Wenn Cloud Armor eine Anfrage blockiert, wertet IAP die Anfrage nicht aus. Wenn Cloud Armor eine Anfrage zulässt, wertet IAP die Anfrage aus. Die Anfrage wird blockiert, wenn IAP die Anfrage nicht authentifiziert.

  • Bei einem Backend-Dienst eines klassischen Application Load Balancers erfolgt die IAP-Auswertung zuerst. Wenn IAP eine Anfrage authentifiziert, wertet Cloud Armor die Anfrage aus. Wenn eine Anfrage die IAP-Authentifizierung nicht besteht, wird sie nicht von Cloud Armor ausgewertet.

Sperrlisten und Zulassungslisten für IP-Adressen mit IAP verwenden.
Sperrlisten und Zulassungslisten für IP-Adressen mit IAP verwenden (zum Vergrößern klicken).

Weitere Informationen zu IAP und zu den zugehörigen Konfigurationen finden Sie in der Dokumentation zum Identity-Aware Proxy.

Cloud Armor mit Hybridbereitstellungen

Bei einer Hybridbereitstellung benötigt ein globaler externer Application Load Balancer oder ein klassischer Application Load Balancer Zugriff auf eine Anwendung oder Inhaltsquelle, die außerhalb von Google Cloudausgeführt wird, z. B. in der Infrastruktur eines anderen Cloud-Anbieters. Zum Schutz solcher Bereitstellungen können Sie Cloud Armor verwenden.

In der folgenden Abbildung verfügt der Load-Balancer über zwei Back-End-Dienste. Einer hat eine Instanzgruppe als Back-End. Der andere Back-End-Dienst hat eine Internet-NEG als Back-End. Die Internet-NEG ist einer Anwendung zugeordnet, die im Rechenzentrum eines Drittanbieters ausgeführt wird.

Cloud Armor für Hybridbereitstellungen
Cloud Armor für Hybridbereitstellungen (zum Vergrößern klicken).

Wenn Sie eine Cloud Armor-Sicherheitsrichtlinie an den Back-End-Dienst anhängen, der eine Internet-NEG als Back-End hat, überprüft Cloud Armor jede Layer 7-Anfrage, die beim globalen externen Application Load Balancer oder beim klassischen Application Load Balancer eingeht, der für diesen Back-End-Dienst bestimmt ist.

Der Cloud Armor-Schutz für Hybridbereitstellungen unterliegt denselben Einschränkungen wie Internet-NEGs.

Cloud Armor mit Google Kubernetes Engine (GKE)

In den folgenden Abschnitten wird beschrieben, wie Cloud Armor mit GKE funktioniert.

GKE Ingress

Nachdem Sie eine Cloud Armor-Sicherheitsrichtlinie konfiguriert haben, können Sie sie mit Kubernetes Ingress und GKE aktivieren.

Wenn Sie die Sicherheitsrichtlinie mit einer BackendConfig-Ressource referenzieren möchten, fügen Sie den Namen der Sicherheitsrichtlinie in BackendConfig ein. Das folgende BackendConfig-Manifest gibt eine Sicherheitsrichtlinie mit dem Namen example-security-policy an:

apiVersion: cloud.google.com/v1
kind: BackendConfig
metadata:
  namespace: cloud-armor-how-to
  name: my-backendconfig
spec:
  securityPolicy:
    name: "example-security-policy"

Weitere Informationen zu Ingress-Features finden Sie unter Ingress-Konfiguration.

GKE-Gateway

Nachdem Sie eine Cloud Armor-Sicherheitsrichtlinie konfiguriert haben, können Sie sie mit der Kubernetes Gateway API und GKE aktivieren.

Sie können auf Ihre Sicherheitsrichtlinie verweisen, indem Sie den Namen Ihrer Sicherheitsrichtlinie einer GCPBackendPolicy-Richtlinienressource hinzufügen. Das folgende GCPBackendPolicy-Manifest für die Richtlinienressource gibt eine Backend-Sicherheitsrichtlinie mit dem Namen example-security-policy an:

Dienst

apiVersion: networking.gke.io/v1
kind: GCPBackendPolicy
metadata:
  name: my-backend-policy
  namespace: lb-service-namespace
spec:
  default:
    securityPolicy: example-security-policy
  targetRef:
    group: ""
    kind: Service
    name: lb-service

Multi-Cluster-Dienst

apiVersion: networking.gke.io/v1
kind: GCPBackendPolicy
metadata:
  name: my-backend-policy
  namespace: lb-service-namespace
spec:
  default:
    securityPolicy: example-security-policy
  targetRef:
    group: net.gke.io
    kind: ServiceImport
    name: lb-service

Weitere Informationen zum Konfigurieren von Cloud Armor-Backend-Sicherheitsrichtlinien finden Sie unter Google Cloud Armor-Backend-Sicherheitsrichtlinie zum Schutz Ihrer Backend-Dienste konfigurieren.

Cloud Armor mit Cloud CDN

Zum Schutz der CDN-Ursprungsserver können Sie Cloud Armor mit Cloud CDN verwenden. Cloud Armor schützt Ihren CDN-Ursprungsserver vor Anwendungsangriffen, verringert die OWASP-Top-10-Risiken und erzwingt Filterrichtlinien für Ebene 7. Es gibt zwei Arten von Sicherheitsrichtlinien, die sich auf die Funktionsweise von Cloud Armor mit Cloud CDN auswirken: Edge-Sicherheitsrichtlinien und Back-End-Sicherheitsrichtlinien.

Edge-Sicherheitsrichtlinien

Sie können Edge-Sicherheitsrichtlinien für Cloud CDN-fähige Backend-Dienste und Cloud Storage-Backend-Buckets hinter dem globalen externen Application Load Balancer oder dem klassischen Application Load Balancer verwenden. Verwenden Sie Edge-Sicherheitsrichtlinien, um Anfragen zu filtern, bevor Inhalte aus dem Cache bereitgestellt werden.

Back-End-Sicherheitsrichtlinien

Wenn Cloud Armor-Back-End-Sicherheitsrichtlinien auf Back-End-Dienste mit aktiviertem Cloud CDN angewendet werden, gelten sie nur für Anfragen, die an den Back-End-Dienst weitergeleitet werden. Diese Anfragen umfassen Anfragen für dynamische Inhalte und Cache-Fehler, also Anfragen, die den Cloud CDN-Cache übersehen oder umgehen.

Wenn Edge-Sicherheitsrichtlinien und Backend-Sicherheitsrichtlinien an denselben Backend-Dienst angehängt sind, werden Backend-Sicherheitsrichtlinien nur für Cache-Fehleranfragen erzwungen, die Edge-Sicherheitsrichtlinien bestanden haben.

Das folgende Diagramm zeigt ausschließlich, wie Back-End-Sicherheitsrichtlinien mit Cloud CDN-Ursprüngen funktionieren, nachdem die Anfragen von den Edge-Sicherheitsrichtlinien zugelassen wurden.

Cloud Armor-Sicherheitsrichtlinien für Back-Ends mit Cloud CDN verwenden.
Back-End-Sicherheitsrichtlinien von Cloud Armor mit Cloud CDN verwenden (zum Vergrößern klicken).

Weitere Informationen zu Cloud CDN finden Sie in der Cloud CDN-Dokumentation.

Cloud Armor mit Cloud Run, App Engine oder Cloud Run Functions

Sie können Cloud Armor-Sicherheitsrichtlinien mit einem serverlosen NEG-Backend verwenden, das auf einen Cloud Run-, App Engine- oder Cloud Run Functions-Dienst verweist.

Wenn Sie jedoch Cloud Armor mit serverlosen NEGs, Cloud Run oder Cloud Run Functions verwenden, muss der gesamte Zugriff auf den serverlosen Endpunkt über eine Cloud Armor-Sicherheitsrichtlinie gefiltert werden.

Nutzer mit der Standard-URL für eine serverlose Anwendung können den Load-Balancer umgehen und direkt die Dienst-URL aufrufen. Dadurch werden Cloud Armor-Sicherheitsrichtlinien umgangen. Um dieses Problem zu beheben, deaktivieren Sie die Standard-URL, die Google Cloud automatisch Cloud Run-Diensten oder Cloud Run Functions-Funktionen (2. Generation) zugewiesen wird. Mit Steuerelementen für eingehenden Traffic können Sie App Engine-Anwendungen schützen.

Wenn Sie Ingress-Steuerelemente verwenden, um Ihre Zugriffssteuerung auf den gesamten eingehenden Traffic anzuwenden, können Sie die Ingress-Einstellung internal-and-gclb verwenden, wenn Sie Cloud Run Functions oder Cloud Run konfigurieren. Die internal-and-gclb-Einstellung für eingehenden Traffic lässt nur internen Traffic und Traffic zu, der vom globalen externen Application Load Balancer oder vom klassischen Application Load Balancer an eine externe IP-Adresse gesendet wird. Traffic, der von außerhalb Ihres privaten Netzwerks an diese Standard-URLs gesendet wird, wird blockiert. Dies verhindert, dass Nutzer Zugriffssteuerungen (z. B. Cloud Armor-Sicherheitsrichtlinien) umgehen, die über den globalen externen Application Load Balancer oder den klassischen Application Load Balancer eingerichtet wurden.

Weitere Informationen zu serverlosen NEGs finden Sie unter Übersicht über serverlose Netzwerk-Endpunktgruppen und Serverlose NEGs einrichten.

Cloud Armor mit Cloud Service Mesh

Sie können interne Dienstsicherheitsrichtlinien für Ihr Service Mesh konfigurieren, um das globale serverseitige Ratenbegrenzung pro Client zu erzwingen. So können Sie die verfügbare Kapazität Ihres Dienstes fair aufteilen und das Risiko minimieren, dass böswillige oder fehlerhafte Clients Ihre Dienste überlasten. Sie hängen eine Sicherheitsrichtlinie an eine Cloud Service Mesh-Endpunktrichtlinie an, um die Ratenbegrenzung für eingehenden Traffic auf Serverseite zu erzwingen. Wenn Sie TCP-Traffic-Routing verwenden, können Sie jedoch keine Google Cloud Armor-Sicherheitsrichtlinie konfigurieren. Weitere Informationen zur Verwendung von Cloud Armor mit Cloud Service Mesh finden Sie unter Ratenbegrenzung mit Cloud Armor konfigurieren.

Nächste Schritte