Private Verbindung zu Google APIs und Google-Diensten einrichten

In diesem Dokument wird beschrieben, wie Sie private Verbindungen von Hosts in einem VPC-Netzwerk oder lokalen Netzwerk zu Google APIs und Google-Diensten einrichten, die von VPC Service Controls unterstützt werden.

Bevor Sie dieses Dokument lesen, sollten Sie sich mit den Konzepten, Spezifikationen und der Netzwerkkonfiguration des privaten Google-Zugriffs vertraut machen. Beispiele für Topologiediagramme für die Verwendung des privaten Google-Zugriffs mit VPC Service Controls

Hinweis

  • Aktivieren Sie die APIs, auf die Sie über die Seite APIs und Dienste in der Google Cloud Console zugreifen möchten.
  • Prüfen Sie, ob Sie die erforderliche Rolle zum Erstellen oder Aktualisieren von Subnetzen haben. Projektinhaber, -bearbeiter und IAM-Hauptkonten mit der Rolle Netzwerkadministrator können Subnetze erstellen oder aktualisieren und IP-Adressen zuweisen. Weitere Informationen zu Rollen finden Sie in der Dokumentation zu IAM-Rollen.
  • Prüfen Sie, ob ein VPC-Netzwerk für den privaten Google-Zugriff und den privaten Google-Zugriff für lokale Hosts eingerichtet ist. Es werden VPC-Netzwerke im automatischen und im benutzerdefinierten Modus unterstützt. Legacy-Netzwerke werden nicht unterstützt.
  • VM-Instanzen in einem VPC-Netzwerk müssen eine private IP-Adresse (keine öffentliche IP-Adresse) haben und sich in einem Subnetz befinden, in dem privater Google-Zugriff aktiviert ist.
  • Für lokale Hosts muss ein Cloud VPN-Tunnel oder eine Cloud Interconnect-Verbindung zu Ihrem VPC-Netzwerk vorhanden sein. Informationen zur Unterstützung lokaler Hosts mit IPv6-Adressen finden Sie unter IPv6-Unterstützung.

Übersicht über das Verfahren

Führen Sie zum Einrichten einer privaten Verbindung die folgenden Aufgaben aus:

  • Routen für die IP-Adressbereiche von restricted.googleapis.com konfigurieren. Weitere Informationen finden Sie unter Routen konfigurieren.
  • Konfigurieren Sie Firewallregeln, damit der entsprechende Traffic die IP-Adressbereiche von restricted.googleapis.com erreichen kann. Weitere Informationen finden Sie unter Firewallregeln konfigurieren.
  • Konfigurieren Sie DNS so, dass der Traffic zu den Google APIs in die IP-Adressbereiche restricted.googleapis.com aufgelöst wird. Weitere Informationen finden Sie unter DNS konfigurieren.

IPv6-Unterstützung für restricted.googleapis.com

Sie können auf Google APIs mithilfe des IPv6-Adressbereichs für die Domain restricted.googleapis.com zugreifen: 2600:2d00:0002:1000::/64.

Erwägen Sie die Konfiguration der IPv6-Adressen, wenn Sie die Domain restricted.googleapis.com verwenden möchten, und wenn Sie Clients haben, die IPv6-Adressen verwenden. IPv6-Clients, die auch IPv4-Adressen konfiguriert haben, können mithilfe der IPv4-Adressen Google APIs und Google-Dienste erreichen. Nicht alle Dienste akzeptieren Traffic von IPv6-Clients.

Damit IPv6-Clients in Ihrer lokalen Umgebung über restricted.googleapis.com auf Google APIs zugreifen können, müssen Sie die Verbindung zu Ihrem VPC-Netzwerk so konfigurieren, dass sie IPv6 unterstützt. Weitere Informationen finden Sie auf den folgenden Seiten:

Lokale Clients können Anfragen von beliebigen GUA-IPv6-oder ULA-IPv6-Adressen senden, mit Ausnahme des ULA-Bereichs fda3:e722:ac3:cc00::/64, der für die interne Verwendung reserviert ist.

Weitere Informationen zur VIP restricted.googleapis.com finden Sie unter Privaten Google-Zugriff konfigurieren.

Routen zu restricted.googleapis.com konfigurieren

Obwohl VPC Service Controls unabhängig von der verwendeten Domain für kompatible und konfigurierte Dienste erzwungen wird, bietet restricted.googleapis.com eine zusätzliche Risikominderung bei der Daten-Exfiltration. restricted.googleapis.com verweigert den Zugriff auf Google APIs und Google-Dienste, die nicht von VPC Service Controls unterstützt werden.

Für den privaten Google-Zugriff und den privaten Google-Zugriff für lokale Hosts muss Ihr VPC-Netzwerk eine Route für die IP-Adressbereiche restricted.googleapis.com enthalten, deren nächster Hop das Standard-Internetgateway ist. Obwohl der nächste Hop ein Standard-Internetgateway ist, bleibt der an restricted.googleapis.com gesendete Traffic im Netzwerk von Google.

Wenn Ihr VPC-Netzwerk keine Standardroute hat, deren nächster Hop das Standard-Internetgateway ist, können Sie eine benutzerdefinierte statische Route mit dem Ziel restricted.googleapis.com erstellen. Deren nächster Hop muss das Standard-Internetgateway sein. Wenn Sie den Zugriff auf das Internet verhindern möchten, müssen Sie andere Routen entfernen, deren nächster Hop das Standard-Internetgateway ist.

Weitere Informationen zum Arbeiten mit VPC-Routen finden Sie unter Routen verwenden in der VPC-Dokumentation.

Benutzerdefinierte statische Route in einem VPC-Netzwerk konfigurieren

Fügen Sie eine benutzerdefinierte statische Route hinzu, um den Zugriff auf von Google verwaltete Dienste zu ermöglichen, die von VPC Service Controls unterstützt werden.

  • Fügen Sie eine benutzerdefinierte Route hinzu, die den Zugriff auf von Google verwaltete Dienste ermöglicht, die durch VPC Service Controls geschützt sind.

    gcloud compute routes create ROUTE_NAME \
      --network=NETWORK_NAME \
      --destination-range=199.36.153.4/30 \
      --next-hop-gateway=default-internet-gateway
    

    Dabei gilt:

    • ROUTE_NAME ist ein Name die benutzerdefinierten Route.
    • NETWORK_NAME ist der Name des VPC-Netzwerks.

Eingeschränkte Route zu Hosts in einem lokalen Netzwerk ankündigen

Wenn Sie den privaten Google-Zugriff für lokale Hosts verwenden, konfigurieren Sie Routen so, dass der Google API-Traffic über Ihre Cloud VPN- oder Cloud Interconnect-Verbindung weitergeleitet wird. Verwenden Sie die benutzerdefinierten Route Advertisements von Cloud Router, um die eingeschränkten VIP-Adressbereiche für Ihr lokales Netzwerk freizugeben. Die eingeschränkten VIP-Adressbereiche sind nur für lokale Hosts zugänglich, die Ihr VPC-Netzwerk über private IP-Adressen erreichen können.

Sie können dieses benutzerdefinierte Route Advertisement einem Cloud Router hinzufügen (für alle BGP-Sitzungen auf dem Router) oder eine ausgewählte BGP-Sitzung auswählen (für einen einzelnen Cloud VPN-Tunnel oder VLAN-Anhang).

IPv6-Routen werden nur in BGP-Sitzungen beworben, in denen IPv6 aktiviert ist.

So erstellen Sie für alle BGP-Sitzungen auf einem vorhandenen Cloud Router ein benutzerdefiniertes Route Advertisement für den eingeschränkten Bereich:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud Routers.

    Zu "Cloud Router"

  2. Wählen Sie den zu aktualisierenden Cloud Router aus.

  3. Klicken Sie auf der Detailseite des Cloud Routers auf Bearbeiten.

  4. Erweitern Sie den Abschnitt Beworbene Routen.

  5. Wählen Sie für Routen die Option Benutzerdefinierte Routen erstellen aus.

  6. Wählen Sie zum Advertising der für den Cloud Router verfügbaren Subnetze die Option Alle für den Cloud Router sichtbaren Subnetze bewerben aus. Wenn Sie diese Option aktivieren, entspricht dies dem Standardverhalten des Cloud Routers.

  7. Wählen Sie Benutzerdefinierte Route hinzufügen aus, um eine beworbene Route hinzuzufügen.

  8. Konfigurieren Sie Route Advertisement.

    • Quelle: Wählen Sie Benutzerdefinierter IP-Bereich.
    • IP-Adressbereich:
      • Für IPv4-Verbindungen: 199.36.153.4/30
      • Für IPv6-Verbindungen: 2600:2d00:0002:1000::/64
    • Beschreibung: Fügen Sie eine Beschreibung von Restricted Google APIs IPs hinzu.
  9. Nachdem Sie Routen hinzugefügt haben, klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl update mit dem Flag --set-advertisement-ranges oder --add-advertisement-ranges aus, um die benutzerdefinierten IP-Bereiche anzugeben:

  • Verwenden Sie das Flag --set-advertisement-ranges, um benutzerdefinierte IP-Bereiche festzulegen. Alle vorhandenen benutzerdefinierten Advertisements werden ersetzt. Im folgenden Beispiel wird der Cloud Router my-router so aktualisiert, dass er alle Subnetze und die IP-Adressbereiche restricted.googleapis.com bewirbt.

    gcloud compute routers update my-router \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges RANGES
    

    Ersetzen Sie RANGES durch die Bereiche, die Sie verwenden möchten:

    • Für IPv4-Verbindungen: 199.36.153.4/30
    • Für IPv6-Verbindungen: 2600:2d00:0002:1000::/64
    • Sowohl für IPv4- als auch für IPv6-Verbindungen gilt: 199.36.153.4/30,2600:2d00:0002:1000::/64.

  • Mit dem Flag --add-advertisement-ranges können Sie benutzerdefinierte IP-Bereiche an ein vorhandenes Advertisement anhängen. Für dieses Flag muss der Advertisement-Modus von Cloud Router bereits auf custom eingestellt sein. Im folgenden Beispiel werden die IP-Adressbereiche restricted.googleapis.com den Advertisements von Cloud Router hinzugefügt:

    gcloud compute routers update my-router \
        --add-advertisement-ranges RANGES
    

    Ersetzen Sie RANGES durch die Bereiche, die Sie verwenden möchten:

    • Für IPv4-Verbindungen: 199.36.153.4/30
    • Für IPv6-Verbindungen: 2600:2d00:0002:1000::/64
    • Sowohl für IPv4- als auch für IPv6-Verbindungen gilt: 199.36.153.4/30,2600:2d00:0002:1000::/64.

So erstellen Sie für eine bestimmte BGP-Sitzung auf einem vorhandenen Cloud Router ein benutzerdefiniertes Route Advertisement für den eingeschränkten Bereich:

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud Routers.

    Zu "Cloud Router"

  2. Klicken Sie auf den Cloud Router, der die zu aktualisierende BGP-Sitzung enthält.

  3. Klicken Sie auf der Detailseite des Cloud Routers auf die zu aktualisierende BGP-Sitzung.

  4. Wählen Sie auf der Seite BGP-Sitzungsdetails die Option Bearbeiten aus.

  5. Wählen Sie für Routen die Option Benutzerdefinierte Routen erstellen aus.

  6. Wählen Sie Alle für den Cloud Router sichtbaren Subnetze bewerben aus. Damit können Sie weiterhin die Subnetze bewerben, die für den Cloud Router zur Verfügung stehen. Wenn Sie diese Option aktivieren, entspricht dies dem Standardverhalten des Cloud Routers.

  7. Wählen Sie Benutzerdefinierte Route hinzufügen aus, um eine beworbene Route zu erstellen.

  8. Konfigurieren Sie Route Advertisement.

    • Quelle: Wählen Sie Benutzerdefinierter IP-Bereich aus, um einen benutzerdefinierten IP-Bereich anzugeben.
    • IP-Adressbereich:
      • Für IPv4-Verbindungen: 199.36.153.4/30
      • Für IPv6-Verbindungen: 2600:2d00:0002:1000::/64
    • Beschreibung: Fügen Sie eine Beschreibung von Restricted Google APIs IPs hinzu.
  9. Wenn Sie keine weiteren Routen hinzufügen möchten, klicken Sie auf Speichern.

gcloud

Führen Sie den Befehl update-bgp-peer mit dem Flag --set-advertisement-ranges oder --add-advertisement-ranges aus, um die benutzerdefinierten IP-Bereiche anzugeben:

  • Verwenden Sie das Flag --set-advertisement-ranges, um benutzerdefinierte IP-Bereiche festzulegen. Alle vorhandenen benutzerdefinierten Advertisements werden ersetzt.

    Wenn Sie benutzerdefinierte IPv6-Bereiche hinzufügen und IPv6-Traffic für die BGP-Sitzung deaktiviert ist, können Sie ihn mit dem Flag --enable-ipv6 aktivieren.

    Im folgenden Beispiel wird die BGP-Sitzung my-bgp-session auf dem Cloud Router my-router aktualisiert, um alle Subnetze sowie den benutzerdefinierten IP-Bereich zu bewerben:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --advertisement-mode CUSTOM \
        --set-advertisement-groups ALL_SUBNETS \
        --set-advertisement-ranges RANGES
    

    Ersetzen Sie RANGES durch die Bereiche, die Sie verwenden möchten:

    • Für IPv4-Verbindungen: 199.36.153.4/30
    • Für IPv6-Verbindungen: 2600:2d00:0002:1000::/64
    • Sowohl für IPv4- als auch für IPv6-Verbindungen gilt: 199.36.153.4/30,2600:2d00:0002:1000::/64.

  • Mit dem Flag --add-advertisement-ranges können Sie benutzerdefinierte IP-Bereiche an vorhandene IP-Bereiche anhängen. Für dieses Flag muss der Advertisement-Modus von Cloud Router bereits auf custom eingestellt sein.

    Wenn Sie benutzerdefinierte IPv6-Bereiche hinzufügen und IPv6-Traffic für die BGP-Sitzung deaktiviert ist, können Sie ihn mit dem Flag --enable-ipv6 aktivieren.

    Im folgenden Beispiel werden die eingeschränkten VIP-Adressbereiche den Advertisements von Cloud Router hinzugefügt:

    gcloud compute routers update-bgp-peer my-router \
        --peer-name my-bgp-session \
        --add-advertisement-ranges RANGES
    

    Ersetzen Sie RANGES durch die Bereiche, die Sie verwenden möchten:

    • Für IPv4-Verbindungen: 199.36.153.4/30
    • Für IPv6-Verbindungen: 2600:2d00:0002:1000::/64
    • Sowohl für IPv4- als auch für IPv6-Verbindungen gilt: 199.36.153.4/30,2600:2d00:0002:1000::/64.

    Weitere Informationen zu benutzerdefiniertem Advertisement finden Sie unter Benutzerdefiniertes Route Advertisement.

Firewallregeln konfigurieren

Für den privaten Google-Zugriff verwenden VM-Instanzen interne IP-Adressen und erfordern keine externen IP-Adressen, um geschützte Google API-Ressourcen zu erreichen. VM-Instanzen können jedoch externe IP-Adressen haben oder die Anforderungen für den Internetzugriff anderweitig erfüllen. Zusätzlich zu benutzerdefinierten Routen können Sie den ausgehenden Traffic von VM-Instanzen in Ihrem VPC-Netzwerk beschränken, indem Sie Firewallregeln erstellen, die ausgehenden Traffic ablehnen.

Standardmäßig wird VM-Instanzen durch die implizierte Firewallregel zum Zulassen von ausgehendem Traffic ermöglicht, Traffic an ein beliebiges Ziel zu senden, wenn eine entsprechende Route vorhanden ist. Sie können zuerst eine Regel für ausgehenden Traffic erstellen, um den gesamten ausgehenden Traffic zu blockieren. Sie können dann Regeln für ausgehenden Traffic mit höherer Priorität erstellen, die Traffic zu ausgewählten Zielen in Ihrem VPC-Netzwerk und zum IP-Adressbereich restricted.googleapis.com zulassen. Die gesamte Kommunikation mit restricted.googleapis.com erfolgt über den TCP-Port 443.

Weitere Informationen zum Arbeiten mit VPC-Firewallregeln finden Sie in der VPC-Dokumentation unter Firewallregeln verwenden.

Konfigurieren Sie Ihre lokalen Firewallregeln so, dass der Traffic von den lokalen Hosts die IP-Adressbereiche restricted.googleapis.com erreicht.

DNS konfigurieren

Für die allgemeine Verwendung von VPC Service Controls empfehlen wir Ihnen, Antwortrichtlinien von Cloud DNS LINK 1 zu verwenden, um DNS für Ihre VPC-Netzwerke zu konfigurieren. Wenn Sie Cloud DNS verwenden, müssen Sie keine verwaltete private Zone erstellen, um DNS zu konfigurieren. In einer Antwortrichtlinie wird das passthru-Verhalten verwendet, um Namen wie www.googleapis.com in dem Beispiel *.googleapis.com hinter dem Platzhalternamen zuzulassen. Weitere Informationen finden Sie unter Antwortrichtlinien und Regeln verwalten.

Sie können auch verwaltete private Zonen für Ihre VPC-Netzwerke verwenden. Private Cloud DNS-Zonen ermöglichen das Hosten einer DNS-Zone, auf die über autorisierte VPC-Netzwerke zugegriffen werden kann. Zum Konfigurieren der Weiterleitung von bestimmten lokalen Nameservern können Sie die IP-Adressbereiche restricted.googleapis.com verwenden. Sie können dann eine private Zone für googleapis.com mit einem DNS-A-Eintrag erstellen, der restricted.googleapis.com und entsprechende CNAME-Einträge für jeden *.googleapis.com-Namen zuordnet. Weitere Informationen finden Sie unter Zonen verwalten.

Für den lokalen Zugriff können Sie eine eingehende Cloud DNS-Weiterleitungsrichtlinie so konfigurieren, dass lokale Nameserver eine von Cloud DNS verwaltete private Zone abfragen können. Sie können auch einen lokalen Nameserver konfigurieren, z. B. einen mit BIND:

DNS mit Cloud DNS konfigurieren

Verwenden Sie Cloud DNS, um die DNS-Auflösung für VM-Instanzen in Ihrem VPC-Netzwerk, Hosts in einem lokalen Netzwerk oder beides zu aktivieren. Wenn Sie eine freigegebene VPC verwenden, lesen Sie die Informationen in der Cloud DNS-Dokumentation unter Private Zonen und freigegebene VPCs. Wenn Sie eine freigegebene VPC verwenden, müssen Sie außerdem dafür sorgen, dass das Hostprojekt des freigegebenen VPC-Netzwerks im selben Dienstperimeter enthalten ist wie Projekte, die eine Verbindung zu dem Netzwerk herstellen.

Sie können DNS mit Cloud DNS mithilfe von Antwortrichtlinien oder privaten Zonen konfigurieren.

Cloud DNS mithilfe von Antwortrichtlinien konfigurieren

In den folgenden Abschnitten werden zwei Methoden zum Konfigurieren von Cloud DNS mithilfe von Antwortrichtlinien beschrieben:

  • Durch Weiterleiten bestimmter Hostnamen an die IP-Adressen von restricted.googleapis.com
  • Durch Weiterleiten aller Hostnamen (mit Ausnahmen) an die restricted.googleapis.com-IP-Adressen

Bestimmte Namen an eingeschränkte VIP-Adressen weiterleiten

Sie können eine Antwortrichtlinie mit lokalen CNAME-Daten für jede Zone konfigurieren, um Google API-Anfragen in eingeschränkte Google APIs zu übersetzen. Namen, die nicht angegeben sind, werden weiterhin mithilfe des regulären DNS-Namens aufgelöst.

Sie können beispielsweise eine Antwortrichtlinie für pubsub.googleapis.com erstellen, die lokale CNAME-Daten für eine Zone enthält, um Google API-Anfragen in restricted.googleapis.com zu übersetzen. In der Zwischenzeit wird www.googleapis.com, das nicht angegeben ist, weiterhin mit regulärem DNS aufgelöst.

In der folgenden Beispielkonfiguration erstellen Sie eine Richtlinie und wenden sie auf ein bestimmtes VPC-Netzwerk an.

gcloud

  1. Führen Sie zum Erstellen einer Antwortrichtlinie den Befehl gcloud dns response-policies create aus:

    gcloud dns response-policies create RESPONSE_POLICY_NAME \
        --networks=NETWORK \
        --description=DESCRIPTION
    

    Dabei gilt:

    • RESPONSE_POLICY_NAME: Der Name oder die ID der Antwortrichtlinie, die Sie löschen möchten, z. B. myresponsepolicy
    • NETWORK: Eine durch Kommas getrennte Liste der Netzwerknamen, die mit der Antwortrichtlinie verknüpft werden sollen, z. B. network1,network2
    • DESCRIPTION: Eine Beschreibung der Antwortrichtlinie, z. B. My new response policy
  2. Wenn Sie nur den IPv4-Adressbereich für restricted.googleapis.com verwenden, fügen Sie der Richtlinie eine Regel hinzu, die einen Datensatz für den IPv4-Adressbereich enthält.

    Befehl gcloud dns response-policies rules create:

    gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=DNS_NAME. \
        --local-data=name="DNS_NAME.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7"
    

    Dabei gilt:

    • RESPONSE_POLICY_RULE_NAME: Ein Name für die Antwortrichtlinienregel, die Sie erstellen möchten, z. B. myresponsepolicyrule
    • RESPONSE_POLICY_NAME: Der Name der Antwortrichtlinie, z. B. myresponsepolicy
    • DNS_NAME ist der DNS-Name, für den Sie die Regel erstellen, z. B. pubsub.googleapis.com.. Beachten Sie den abschließenden Punkt.
  3. Wenn Sie sowohl die IPv4- als auch die IPv6-Adressbereiche für restricted.googleapis.com verwenden, fügen Sie der Richtlinie, die Datensätze für die IPv4- und IPv6-Adressbereiche enthält, eine Regel hinzu.

    gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=DNS_NAME. \
        --local-data=name="DNS_NAME.",type="A",ttl=300,rrdatas="199.36.153.4|199.36.153.5|199.36.153.6|199.36.153.7" \
        --local-data=name="DNS_NAME.",type="AAAA",ttl=300,rrdatas="2600:2d00:0002:1000::"
    

API

  1. Erstellen Sie eine Antwortrichtlinie über eine URL:

    {
      kind: "dns#responsePolicy",
      response_policy_name: RESPONSE_POLICY_NAME,
      description: RESPONSE_POLICY_DESCRIPTION,
      networks: [
        {
          network_url: URL_TO_NETWORK;
        }
      ]
    }
    

    Dabei gilt:

    • RESPONSE_POLICY_NAME: Ein Name für die Antwortrichtlinie
    • RESPONSE_POLICY_DESCRIPTION ist eine Beschreibung der Antwortrichtlinie
    • URL_TO_NETWORK ist die URL, für die Sie die Antwortrichtlinie erstellen

  2. Wenn Sie nur den IPv4-Adressbereich für restricted.googleapis.com verwenden, fügen Sie der Richtlinie eine Regel hinzu, die einen Datensatz für den IPv4-Adressbereich enthält.

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "DNS_NAME.",
          type: "A",
          ttl: 300,
          rrdata: ["199.36.153.4", "199.36.153.5", "199.36.153.6", "199.36.153.7"]
        }
      ]
    }
    

    Dabei gilt:

    • RULE_NAME ist ein Name für die Regel, die Sie erstellen, z. B. pubsub
    • DNS_NAME ist der DNS-Name, für den Sie die Regel erstellen, z. B. pubsub.googleapis.com.. Beachten Sie den abschließenden Punkt.
  3. Wenn Sie sowohl die IPv4- als auch die IPv6-Adressbereiche für restricted.googleapis.com verwenden, fügen Sie der Richtlinie, die Datensätze für die IPv4- und IPv6-Adressbereiche enthält, eine Regel hinzu.

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "DNS_NAME.",
          type: "A",
          ttl: 300,
          rrdata: [""199.36.153.4", "199.36.153.5", "199.36.153.6", "199.36.153.7""]
        }
      ],
      local_data: [
        {
          name: "DNS_NAME.",
          type: "AAAA",
          ttl: 300,
          rrdata: ["2600:2d00:0002:1000::"]
        }
      ]
    }
    

    Dabei gilt:

    • RULE_NAME ist ein Name für die Regel, die Sie erstellen, z. B. pubsub
    • DNS_NAME ist der DNS-Name, für den Sie die Regel erstellen, z. B. pubsub.googleapis.com.. Beachten Sie den abschließenden Punkt.

Alle Namen mit einigen Ausnahmen an eingeschränkte VIP-Adressen weiterleiten

Sie können mit Regeln bestimmte DNS-Antworten von einer Richtlinienregel ausnehmen, die eine gesamte Domain oder einen großen IP-Adressblock abdeckt. Dieses Konzept wird als Passthrough-Verhalten bezeichnet. Mit dem Passthrough-Verhalten können Sie Namen, die keine Unterstützung für Dienststeuerelemente bieten, hinter dem Platzhalternamen zulassen.

Sie können beispielsweise festlegen, dass www.googleapis.com hinter dem Platzhalternamen im Beispiel *.googleapis.com zulässig ist. Die genaue Übereinstimmung für www hat Vorrang vor dem Platzhalter *.

In der folgenden Beispielkonfiguration erstellen Sie eine Richtlinie mit einem angegebenen Namen und wenden sie auf ein bestimmtes VPC-Netzwerk an. Mit der Regel kann www.googleapis.com den Platzhalter *.googleapis.com umgehen.

gcloud

  1. Führen Sie zum Erstellen einer Antwortrichtlinie den Befehl gcloud dns response-policies create aus:

    gcloud dns response-policies create RESPONSE_POLICY_NAME \
        --networks=NETWORK \
        --description=DESCRIPTION
    

    Dabei gilt:

    • RESPONSE_POLICY_NAME: Der Name oder die ID der Antwortrichtlinie, die Sie löschen möchten, z. B. myresponsepolicy
    • NETWORK: Eine durch Kommas getrennte Liste der Netzwerknamen, die mit der Antwortrichtlinie verknüpft werden sollen, z. B. network1,network2
    • DESCRIPTION: Eine Beschreibung der Antwortrichtlinie, z. B. My new response policy
  2. Führen Sie den Befehl gcloud dns response-policies rules create aus und setzen Sie das Flag --behavior auf bypassResponsePolicy, um eine Umgehungsregel zur Richtlinie hinzuzufügen:

    gcloud dns response-policies rules create RESPONSE_POLICY_RULE_NAME \
        --response-policy=RESPONSE_POLICY_NAME \
        --dns-name=DNS_NAME \
        --behavior=bypassResponsePolicy
    

    Dabei gilt:

    • RESPONSE_POLICY_RULE_NAME: Ein Name für die Antwortrichtlinienregel, die Sie erstellen möchten, z. B. myresponsepolicyrule
    • RESPONSE_POLICY_NAME: Der Name der Antwortrichtlinie, z. B. myresponsepolicy
    • DNS_NAME: Der DNS- oder Domainname, z. B. www.googleapis.com

API

  1. Erstellen Sie eine Antwortrichtlinie:

    {
      kind: "dns#responsePolicy",
      response_policy_name: RESPONSE_POLICY_NAME,
      description: RESPONSE_POLICY_DESCRIPTION,
      networks: [
        {
          network_url: URL_TO_NETWORK;
        }
      ]
    }
    

    Dabei gilt:

    • RESPONSE_POLICY_NAME: Ein Name für die Antwortrichtlinie, z. B. my-response-policy
    • RESPONSE_POLICY_DESCRIPTION: Eine Beschreibung der Antwortrichtlinie, z. B. my response policy
    • URL_TO_NETWORK ist die URL, für die Sie die Antwortrichtlinie erstellen
  2. Fügen Sie der Richtlinie eine Regel hinzu:

    {
      kind: "dns#responsePolicyRules",
      rule_name: RULE_NAME,
      dns_name: DNS_NAME,
      local_data: [
        {
          name: "*.googleapis.com.",
          type: "A",
          ttl: 300,
          rrdata: ["restricted.googleapis.com."]
        }
      ]
    }
    {
      kind: "dns#responsePolicyRules",
      rule_name: "www-passthru",
      dns_name: "www.googleapis.com.",
      behavior: BYPASS_RESPONSE_POLICY
    }
    

    Dabei gilt:

    • RULE_NAME ist ein Name für die Regel, die Sie erstellen, z. B. googleapis
    • DNS_NAME ist der Platzhalter-DNS-Name, für den Sie die Regel erstellen, z. B. *.googleapis.com.. Beachten Sie den abschließenden Punkt.

Cloud DNS mithilfe privater Zonen konfigurieren

Verwenden Sie private Zonen, um Cloud DNS zu konfigurieren, wenn Sie keine Antwortrichtlinien verwenden können.

  1. Erstellen Sie für Ihr VPC-Netzwerk eine verwaltete private Zone.

    gcloud dns managed-zones create ZONE_NAME \
     --visibility=private \
     --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
     --description=DESCRIPTION \
     --dns-name=googleapis.com
    

    Dabei gilt:

    • ZONE_NAME ist ein Name für die Zone, die Sie erstellen. Beispiel: vpc. Dieser Name wird in den folgenden Schritten verwendet.
    • PROJECT_ID ist die ID des Projekts, in dem Ihr VPC-Netzwerk gehostet wird.
    • NETWORK_NAME ist der Name des VPC-Netzwerks.
    • DESCRIPTION ist eine optionale menschenlesbare Beschreibung der verwalteten Zone.
  2. Starten Sie eine Transaktion.

    gcloud dns record-sets transaction start --zone=ZONE_NAME
    

    Ersetzen Sie ZONE_NAME durch den Namen der Zone, die Sie im ersten Schritt erstellt haben.

  3. Fügen Sie DNS-Einträge hinzu.

    gcloud dns record-sets transaction add --name=*.googleapis.com. \
        --type=CNAME restricted.googleapis.com. \
        --zone=ZONE_NAME \
        --ttl=300
    

    Ersetzen Sie ZONE_NAME durch den Namen der Zone, die Sie im ersten Schritt erstellt haben.

    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=A 199.36.153.4, 199.36.153.5, 199.36.153.6, 199.36.153.7 \
        --zone=ZONE_NAME \
        --ttl=300
    

    Ersetzen Sie ZONE_NAME durch den Namen der Zone, die Sie im ersten Schritt erstellt haben.

    Wenn Sie die IPv6-Adressen für restricted.googleapis.com konfigurieren, erstellen Sie auch den folgenden Datensatz:

    gcloud dns record-sets transaction add --name=restricted.googleapis.com. \
        --type=AAAA 2600:2d00:0002:1000:: \
        --zone=ZONE_NAME \
        --ttl=300
    
  4. Führen Sie die Transaktion aus.

    gcloud dns record-sets transaction execute --zone=ZONE_NAME
    

    Ersetzen Sie ZONE_NAME durch den Namen der Zone, die Sie im ersten Schritt erstellt haben.

  5. Optional. Führen Sie die folgenden Schritte aus, damit lokale Hosts die eingeschränkte VIP erreichen können:

    1. Erstellen Sie eine DNS-Richtlinie und aktivieren Sie die eingehende DNS-Weiterleitung, um die Namensauflösungsdienste des VPC-Netzwerks extern in Systemen in lokalen Netzwerken verfügbar zu machen.

      gcloud dns policies create POLICY_NAME \
       --networks=https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/NETWORK_NAME \
       --enable-inbound-forwarding \
       --description=DESCRIPTION
      

      Dabei gilt:

      • POLICY_NAME ist der Name der Richtlinie, die Sie erstellen. Beispiel: apipolicy.
      • PROJECT_ID ist die ID des Projekts, in dem Ihr VPC-Netzwerk gehostet wird.
      • NETWORK_NAME: der Name des VPC-Netzwerks
      • DESCRIPTION ist eine optionale menschenlesbare Beschreibung der verwalteten Zone.
    2. Verweisen Sie in Ihrem lokalen Netzwerk mit dem lokalen DNS auf die Forwarder-IP-Adresse von Cloud DNS. Verwenden Sie den Befehl compute addresses list, um die IP-Adresse zur Weiterleitung zu ermitteln:

      gcloud compute addresses list --filter='name ~ ^dns-forwarding.*' \
       --format='csv[no-heading](address, subnetwork)'
      

DNS mit BIND konfigurieren

Wenn Sie für die DNS-Auflösung BIND verwenden, können Sie es so konfigurieren, dass Google API-Anfragen an die eingeschränkten Google APIs aufgelöst werden. Hier sehen Sie ein Beispiel für eine BIND-Konfiguration, in der sogenannte Antwortrichtlinienzonen (Response Policy Zones, RPZ) verwendet werden, um dieses Verhalten zu erzeugen:

  1. Fügen Sie /etc/bind/named.conf die folgenden Zeilen hinzu:

    include "/etc/bind/named.conf.options";
    include "/etc/bind/named.conf.local";
    
  2. Fügen Sie /etc/bind/named.conf.options die folgenden Zeilen hinzu:

    options {
      directory "/var/cache/bind";
    
      dnssec-validation no;
    
      auth-nxdomain no;    # conform to RFC 1035
      listen-on-v6 { any; };
      listen-on { any; };
      response-policy { zone "googleapis.zone"; };
      allow-query { any;};
    };
    
  3. Fügen Sie /etc/bind/named.conf.local die folgenden Zeilen hinzu:

    include "/etc/bind/named.conf.default-zones";

    zone "googleapis.zone" { type master; file "/etc/bind/db.googleapis.zone"; allow-query {none;}; };

  4. Fügen Sie /etc/bind/db.googleapis.zone die folgenden Zeilen hinzu:

    $TTL 1H
    @                       SOA LOCALHOST. noreply.localhost(1 1h 15m 30d 2h)
                            NS  LOCALHOST.

    *.googleapis.com CNAME restricted.googleapis.com. restricted.googleapis.com CNAME rpz-passthru.

DNS in Sonderfällen konfigurieren

Wenn Sie in bestimmten Fällen DNS konfigurieren müssen, beachten Sie Folgendes:

  • Benutzerdefiniertes BIND wird bei Verwendung von Dataflow nicht unterstützt. Wenn Sie die DNS-Auflösung bei Verwendung von Dataflow mit VPC Service Controls anpassen möchten, nutzen Sie private Zonen von Cloud DNS anstelle benutzerdefinierter BIND-Server. Zur Verwendung einer eigenen lokalen DNS-Auflösung können Sie eine lokale DNS-Weiterleitungsmethode von Google Cloud verwenden.
  • Möglicherweise müssen Sie auch DNS für gcr.io konfigurieren, wenn Sie beispielsweise Google Kubernetes Engine (GKE) verwenden. Weitere Informationen finden Sie unter Container Registry für private GKE-Cluster einrichten.