Statische externe IP-Adresse reservieren

Wenn für eine VM-Instanz eine feste externe IP-Adresse erforderlich ist, die sich nicht ändert, können Sie mit einer der folgenden Optionen eine statische externe IP-Adresse für diese Instanz abrufen:

Wenn Sie eine statische IP-Adresse für Ihr internes Compute Engine-Netzwerk benötigen, lesen Sie stattdessen den Artikel Statische interne IP-Adresse reservieren.

In Compute Engine können VM-Instanzen mehrere Netzwerkschnittstellen haben. Die einzelnen Schnittstellen können sowohl interne als auch externe IP-Adressen haben. Weiterleitungsregeln können externe IP-Adressen für das externe Load-Balancing oder interne Adressen für das interne Load-Balancing nutzen. Weitere Informationen zu IP-Adressen finden Sie in der Dokumentation zu IP-Adressen.

Vorbereitung

Neue statische externe IP-Adresse reservieren

Eine statische externe IP-Adresse ist eine externe IP-Adresse, die so lange für Ihr Projekt reserviert ist, bis Sie sie freigeben. Wenn Sie eine IP-Adresse haben, über die Ihre Kunden oder Nutzer regelmäßig auf Ihren Dienst zugreifen, können Sie diese reservieren, damit nur Ihr Projekt sie nutzen kann. Es ist auch möglich, eine sitzungsspezifische externe IP-Adresse in eine statische externe IP-Adresse umzuwandeln.

Sie können zwei Arten externer IP-Adressen reservieren:

Reservieren Sie eine statische externe IP-Adresse im gcloud-Befehlszeilentool oder über die API. Weisen Sie diese IP-Adresse anschließend einer vorhandenen Instanz oder einer neuen Instanz bei deren Erstellung zu.

Einschränkungen

  • Eine statische externe IP-Adresse kann immer nur von einer einzigen Ressource verwendet werden.

  • Ist eine IP-Adresse einmal einer Ressource zugewiesen, kann nur noch per Vergleich mit einer Liste der für das jeweilige Projekt reservierten statischen externen IP-Adressen festgestellt werden, ob es sich um eine statische oder sitzungsspezifische IP-Adresse handelt. Mit dem Unterbefehl addresses list können Sie eine Liste der für Ihr Projekt verfügbaren statischen externen IP-Adressen aufrufen.

  • Jede VM-Instanz kann über mehrere Netzwerkschnittstellen verfügen, aber jede Schnittstelle kann nur eine einzige externe IP-Adresse haben, die entweder sitzungsspezifisch oder statisch ist.

Hinweis: Netzwerkschnittstellen können Traffic über mehrere Weiterleitungsregeln empfangen, die unter Umständen andere externe IP-Adressen bedienen. Beliebig viele externe IP-Adressen können eine Netzwerkschnittstelle über diese Weiterleitungsregeln referenzieren, allerdings kann jede Netzwerkschnittstelle nur eine externe IP-Adresse haben, die Pakete an die interne IP-Adresse der Schnittstelle weiterleitet.

Weitere Informationen über Load-Balancing und Weiterleitungsregeln finden Sie in der Dokumentation zum Load-Balancing.

Console

  1. Rufen Sie in der Cloud Console die Seite Statische Adresse reservieren auf.

    Zur Seite "Statische IP-Adresse reservieren"

  2. Wählen Sie einen Namen für die neue Adresse aus.

  3. Legen Sie fest, ob es sich um eine IPv4- oder IPv6-Adresse handelt. IPv6-Adressen sind immer global und können nur mit globalen HTTP(S)-, SSL-Proxy- und TCP-Proxy-Load-Balancern verwendet werden.

  4. Legen Sie fest, ob diese IP-Adresse regional oder global ist. Wenn Sie eine statische IP-Adresse für eine Instanz oder einen Netzwerk-Load-Balancer reservieren, wählen Sie Regional aus. Wenn Sie dagegen eine statische IP-Adresse für einen HTTP(S)-, SSL-Proxy- oder TCP-Proxy-Load-Balancer reservieren, wählen Sie Global aus.

  5. Wählen Sie für eine regionale IP-Adresse die Region aus, in der die Adresse erstellt werden soll.

  6. (Optional) Wählen Sie eine Ressource aus, mit der die IP-Adresse verknüpft werden soll.

  7. Klicken Sie auf Reservieren, um die IP-Adresse zu reservieren.

gcloud

Verwenden Sie zum Reservieren einer neuen statischen externen IP-Adresse mit gcloud compute den Befehl compute addresses create und geben Sie an, ob Sie eine globale oder regionale IP-Adresse reservieren möchten:

gcloud compute addresses create ADDRESS_NAME \
    [--region REGION | --global ] \
    [--ip-version [IPV4 | IPV6]]

Dabei gilt:

  • ADDRESS_NAME: ist der Name, den Sie für diese Adresse vergeben möchten.
  • Wenn Sie eine regionale IP-Adresse festlegen, geben Sie die gewünschte REGION in der Anfrage an. Diese sollte mit der Region der Ressource identisch sein, der die IP-Adresse zugewiesen werden soll.
  • Wenn es sich um eine globale IP-Adresse handelt, geben Sie das Flag --global an. Bei einer IPv6-Adresse ist neben dem Flag --global auch das Flag --ip-version IPV6 erforderlich. IPv6-Adressen sind immer global und können nur mit globalen HTTP(S)-, SSL-Proxy- und TCP-Proxy-Load-Balancern verwendet werden.

Verwenden Sie den Befehl compute addresses describe, um das Ergebnis anzeigen zu lassen:

gcloud compute addresses describe ADDRESS_NAME

API

Rufen Sie zum Erstellen einer regionalen IPv4-Adresse die regionale Methode addresses.insert auf:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  name: "ADDRESS_NAME"
}

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: ist der Name, den Sie für diese Adresse vergeben möchten.
  • REGION: ist der Name der Region für diese Anfrage.
  • PROJECT_ID: ist die Projekt-ID für diese Anfrage.

Rufen Sie für globale statische IPv4-Adressen die Methode globalAddresses.insert auf:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  name: "ADDRESS_NAME"
}

Rufen Sie für globale statische IPv6-Adressen die Methode globalAddresses.insert auf:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  "name": "ADDRESS_NAME",
  "ipVersion": "IPV6"
}

Sie können das Ergebnis über die Methode addresses.get aufrufen.

Statische externe IP-Adresse einer neuen VM-Instanz zuweisen

Wenn Sie eine VM-Instanz erstellen, wird ihr automatisch eine sitzungsspezifische externe IP-Adresse zugewiesen. Wenn Sie das nicht möchten, können Sie der Instanz stattdessen explizit eine statische externe IP-Adresse zuweisen.

Console

  1. Rufen Sie in der Cloud Console die Seite VM-Instanzen auf.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf Instanz erstellen.
  3. Geben Sie auf der Seite Neue Instanz erstellen die Attribute für Ihre Instanz ein.
  4. Maximieren Sie den Abschnitt Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
  5. Klicken Sie auf Netzwerk.
  6. Klicken Sie unter Netzwerkschnittstellen auf die Standardnetzwerkschnittstelle, um sie zu bearbeiten.
  7. Wählen Sie im Bereich Externe IP die statische externe IP-Adresse aus, die Sie aus dem Drop-down-Menü reserviert haben.
  8. Klicken Sie auf Fertig, um die Änderung der Standard-Netzwerkschnittstelle abzuschließen.
  9. Klicken Sie auf Erstellen, um die Instanz anzulegen.

gcloud

Wenn Sie eine statische externe IP-Adresse zuweisen möchten, verwenden Sie beim Erstellen der Instanz das Flag --address und geben Sie die statische externe IP-Adresse an:

gcloud compute instances create INSTANCE_NAME --address IP_ADDRESS

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: ist der Name der Instanz.
  • IP_ADDRESS: ist die IP-Adresse, die der Instanz zugewiesen werden soll. Verwenden Sie die tatsächliche IP-Adresse, nicht den Namen der Adresse.

API

Geben Sie in der Anfrage zum Erstellen einer neuen Instanz explizit das Attribut networkInterfaces[].accessConfigs[].natIP und die zu verwendende externe IP-Adresse an. Beispiel:

{
  "name": "INSTANCE_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "networkInterfaces": [{
    "accessConfigs": [{
      "type": "ONE_TO_ONE_NAT",
      "name": "External NAT",
      "natIP": "IP_ADDRESS"
     }],
    "network": "global/networks/default"
  }],
  "disks": [{
     "autoDelete": "true",
     "boot": "true",
     "type": "PERSISTENT",
     "initializeParams": {
        "sourceImage": "projects/debian-cloud/global/images/v20150818"
     }
   }]
 }

Externe IP-Adresse ändern oder einer vorhandenen Instanz zuweisen

Sie können die sitzungsspezifische oder statische externe IP-Adresse einer Instanz ändern oder eine solche IP-Adresse einer vorhandenen Instanz zuweisen, indem Sie die Zugriffskonfiguration der Instanz ändern.

Eine Instanz kann mehrere Schnittstellen haben und jede Schnittstelle eine externe IP-Adresse. Wenn die Instanz bereits eine externe IP-Adresse hat, müssen Sie diese Adresse zuerst entfernen, indem Sie die alte Zugriffskonfiguration löschen. Anschließend können Sie eine neue Zugriffskonfiguration mit einer neuen externen IP-Adresse hinzufügen.

Console

  1. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

    Zur Seite "VM-Instanzen"

  2. Klicken Sie auf den Namen der Instanz, der Sie die externe IP-Adresse zuweisen möchten. Die Seite mit den Instanzdetails wird angezeigt.
  3. Führen Sie auf der Seite mit den Instanzdetails folgende Schritte aus:

    1. Klicken Sie auf Edit.
    2. Klicken Sie unter Network interfaces auf die Schaltfläche "Edit".

      Bereich für Netzwerkschnittstellen

    3. Wählen Sie unter Externe IP-Adresse entweder eine sitzungsspezifische oder eine statische externe IP-Adresse aus, die Sie der Instanz zuweisen möchten.

      Optionen für interne und externe IP-Adresse

    4. Klicken Sie auf Fertig.

    5. Klicken Sie auf Speichern.

gcloud

  1. [Optional] Reservieren Sie eine statische externe IP-Adresse.

    Wenn Sie eine statische externe IP-Adresse zuweisen, müssen Sie diese zuerst reservieren und überprüfen, ob die Adresse nicht bereits von einer anderen Ressource verwendet wird. Folgen Sie gegebenenfalls der Anleitung unter Neue statische externe IP-Adresse reservieren oder Zuweisung einer statischen externen IP-Adresse aufheben.

    Wenn Sie eine sitzungsspezifische externe IP-Adresse verwenden möchten, können Sie diesen Schritt überspringen. Compute Engine weist dann eine sitzungsspezifische externe IP-Adresse nach dem Zufallsprinzip zu.

  2. Löschen Sie bestehende Zugriffskonfigurationen.

    Eine Instanz kann nur eine Zugriffskonfiguration haben. Bevor Sie versuchen, einer Instanz eine neue Zugriffskonfiguration zuzuweisen, prüfen Sie mit einer gcloud compute instances describe-Anfrage, ob Ihre Instanz eine Zugriffskonfiguration hat:

    gcloud compute instances describe INSTANCE_NAME

    Wenn bereits eine Zugriffskonfiguration vorhanden ist, wird diese im folgenden Format ausgegeben:

    networkInterfaces:
    - accessConfigs:
      - kind: compute#accessConfig
        name: external-nat
        natIP: 130.211.181.55
        type: ONE_TO_ONE_NAT
    

    Bevor Sie eine neue Zugriffskonfiguration hinzufügen, löschen Sie die bestehende Zugriffskonfiguration mit dem Unterbefehl instances delete-access-config:

    gcloud compute instances delete-access-config INSTANCE_NAME \
        --access-config-name "ACCESS_CONFIG_NAME"

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: ist der Name der Instanz.
    • ACCESS_CONFIG_NAME: ist die Zugriffskonfiguration, die gelöscht werden soll. Achten Sie darauf, dass Sie den vollständigen Namen in Anführungszeichen angeben.
  3. Fügen Sie die neue externe IP-Adresse hinzu.

    Fügen Sie mit dem Unterbefehl instances add-access-config eine neue externe IP-Adresse hinzu:

    Hinweis: Ersetzen Sie IP_ADDRESS nicht durch den Namen der statischen IP-Adresse, sondern geben Sie die tatsächliche IP-Adresse an.
    gcloud compute instances add-access-config INSTANCE_NAME \
       --access-config-name "ACCESS_CONFIG_NAME" --address IP_ADDRESS

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: ist der Name der Instanz.
    • ACCESS_CONFIG_NAME: ist der Name zum Aufrufen dieser Zugriffskonfiguration. Achten Sie darauf, dass Sie den vollständigen Namen in Anführungszeichen angeben.
    • IP_ADDRESS: ist die IP-Adresse, die hinzugefügt werden soll.

    Wenn Sie möchten, dass Compute Engine eine sitzungsspezifische externe IP-Adresse statt einer statischen externen IP-Adresse zuweist, lassen Sie das Attribut --address IP_ADDRESS weg:

    gcloud compute instances add-access-config INSTANCE_NAME \
        --access-config-name "ACCESS_CONFIG_NAME"

Sitzungsspezifische externe IP-Adresse umwandeln

Wenn Ihre Instanz eine sitzungsspezifische externe IP-Adresse hat und Sie diese dauerhaft Ihrem Projekt zuweisen möchten, wandeln Sie die sitzungsspezifische externe IP-Adresse in eine statische externe IP-Adresse um. Das Umwandeln einer sitzungsspezifischen externen IP-Adresse in eine reservierte führt nicht dazu, dass Google Cloud an die Instanz gesendete Pakete verwirft. Dies gilt auch für Pakete, die direkt oder über einen Load-Balancer an die Instanz gesendet werden.

Console

  1. Rufen Sie in der Cloud Console die Seite Externe IP-Adressen auf.

    Zur Seite "Externe IP-Adressen"

  2. Ändern Sie in der Spalte Typ den Adresstyp der IP-Adresse, die Sie umwandeln möchten, in Statisch.
  3. Geben Sie einen Namen für die neue statische IP-Adresse ein und klicken Sie auf Reservieren.

gcloud

Wenn Sie eine sitzungsspezifische externe IP-Adresse in eine statische externe IP-Adresse umwandeln möchten, geben Sie die sitzungsspezifische externe IP-Adresse mit dem Flag --addresses im Befehl compute addresses create an. Mit dem Flag region können Sie eine sitzungsspezifische regionale IP-Adresse umwandeln und mit dem Flag global können Sie dies für eine sitzungsspezifische globale IP-Adresse tun.

gcloud compute addresses create ADDRESS_NAME \
  --addresses IP_ADDRESS \
  [--region REGION | --global]

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: ist der Name, den Sie für diese Adresse vergeben möchten.
  • IP_ADDRESS: ist die IP-Adresse, die Sie umwandeln möchten.
  • REGION: ist die Region, zu der die regionale IP-Adresse gehört.

API

Rufen Sie zum Umwandeln einer sitzungsspezifischen regionalen IP-Adresse die Methode addresses.insert auf:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  name: "ADDRESS_NAME",
  address: "IP_ADDRESS"
}

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: ist der Name, den Sie für diese Adresse vergeben möchten.
  • IP_ADDRESS: ist die IP-Adresse, die Sie umwandeln möchten.
  • REGION: ist die Region, zu der die IP-Adresse gehört.
  • PROJECT_ID: ist die Projekt-ID für diese Anfrage.

Zum Umwandeln einer sitzungsspezifischen globalen IP-Adresse stellen Sie eine POST-Anfrage an den folgenden URI:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  name: "ADDRESS_NAME",
  address: "IP_ADDRESS"
}

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: ist der Name, den Sie für diese Adresse vergeben möchten.
  • IP_ADDRESS: ist die IP-Adresse, die Sie umwandeln möchten.
  • PROJECT_ID: ist die Projekt-ID für diese Anfrage.

Die externe IP-Adresse bleibt an die Instanz gebunden, auch wenn sie zu einer statischen externen IP-Adresse umgewandelt wurde. Wenn die kürzlich umgewandelte statische externe IP-Adresse einer anderen IP-Adresse zugewiesen werden soll, müssen Sie die Zuweisung der statischen externen IP-Adresse an eine bestehende Instanz aufheben.

Liste aller statischen externen IP-Adressen ausgeben

Wenn Sie eine Liste aller statischen externen IP-Adressen ausgeben möchten, die Sie für Ihr Projekt reserviert haben, führen Sie den Befehl addresses list aus oder stellen Sie eine GET-Anfrage an die API.

Console

Rufen Sie in der Cloud Console die Seite Externe IP-Adressen auf, um eine Liste der IP-Adressen für Ihr Projekt aufzurufen.

Zur Seite "Externe IP-Adressen"

gcloud

Führen Sie den Befehl compute addresses list aus:

gcloud compute addresses list

API

Rufen Sie die Methode addresses.list auf.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Ersetzen Sie Folgendes:

  • REGION: ist der Name der Region für diese Anfrage.
  • PROJECT_ID: ist die Projekt-ID für diese Anfrage.

Rufen Sie die Methode aggregatedList auf, um eine Liste aller Adressen in allen Regionen zu erhalten.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/aggregated/addresses

Statische externe IP-Adresse beschreiben

Informationen zu einer statischen externen IP-Adresse erhalten Sie über die Console, das gcloud-Tool oder die API.

Console

  1. Rufen Sie in der Cloud Console die Seite Externe IP-Adressen auf.

    Zur Seite "Externe IP-Adressen"

  2. Klicken Sie auf die IP-Adresse, zu der Sie weitere Informationen erhalten möchten.

gcloud

Verwenden Sie den Befehl addresses describe und ersetzen Sie ADDRESS_NAME durch den Namen der externen IP-Adresse, die Sie beschreiben möchten.

gcloud compute addresses describe ADDRESS_NAME

API

Rufen Sie die Methode addresses.get auf.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: ist der Name der IP-Adresse.
  • REGION: ist der Name der Region für diese Anfrage.
  • PROJECT_ID: ist die Projekt-ID für diese Anfrage.

Zuweisung einer statischen externen IP-Adresse aufheben

Sie können die Zuweisung einer statischen externen IP-Adresse aufheben, indem Sie entweder die Instanz löschen oder die Zugriffskonfiguration der Instanz löschen, die die IP-Adresse verwendet. Wenn Sie die Zuweisung einer statischen externen IP-Adresse aufheben, können Sie diese einer anderen Ressource neu zuweisen.

Durch das Aufheben der Zuweisung wird die IP-Adresse aus der Ressource entfernt, bleibt aber für Ihr Projekt reserviert. Mithilfe einer gcloud compute addresses list-Anfrage können Sie prüfen, ob eine statische IP-Adresse bereits verwendet wird:

gcloud compute addresses list

Eine Antwort könnte so aussehen:

NAME                 REGION      ADDRESS            STATUS
example-address      REGION    130.211.160.207    RESERVED
example-address-new  REGION    130.211.114.137    IN_USE

In diesem Beispiel wird gerade example-address-new verwendet.

Zum Löschen der Zugriffskonfiguration einer Instanz und zum Aufheben der Zuweisung einer statischen externen IP-Adresse gehen Sie so vor:

  1. Rufen Sie den Namen der Zugriffskonfiguration ab, die Sie löschen möchten. Verwenden Sie den Befehl gcloud compute instances describe, um den Namen abzurufen. Ersetzen Sie INSTANCE_NAME durch den Namen der Instanz.

    gcloud compute instances describe INSTANCE_NAME

    Die Zugriffskonfiguration wird im folgenden Format ausgegeben:

    networkInterfaces:
    - accessConfigs:
     - kind: compute#accessConfig
       name: external-nat
       natIP: 130.211.181.55
       type: ONE_TO_ONE_NAT
    
  2. Löschen Sie die Zugriffskonfiguration.

    Führen Sie folgenden instances delete-access-config-Befehl aus:

    gcloud compute instances delete-access-config INSTANCE_NAME \
            --access-config-name "ACCESS_CONFIG_NAME"

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: ist der Name der Instanz.
    • ACCESS_CONFIG_NAME: ist der Name der Zugriffskonfiguration, die Sie löschen möchten. Achten Sie darauf, dass Sie den vollständigen Namen in Anführungszeichen angeben.
  3. Überprüfen Sie, ob Ihre statische externe IP-Adresse nun verfügbar und anstelle von IN_USE als RESERVED gekennzeichnet ist.

    gcloud compute addresses list

    Beispiel:

    NAME                 REGION      ADDRESS            STATUS
    example-address      REGION      130.211.160.207    RESERVED
    example-address-new  REGION      130.211.114.137    RESERVED

Nachdem Ihre statische externe IP-Adresse jetzt verfügbar ist, können Sie sie einer anderen Instanz zuweisen.

Externe statische IP-Adresse freigeben

Wenn Sie eine statische externe IP-Adresse nicht mehr benötigen, können Sie sie freigeben und damit in den allgemeinen IP-Pool für andere Compute Engine-Nutzer zurückführen.

Console

  1. Rufen Sie in der Cloud Console die Seite Externe IP-Adressen auf.

    Zur Seite "Externe IP-Adressen"

  2. Klicken Sie auf das Kästchen neben der IP-Adresse, die Sie freigeben möchten.
  3. Klicken Sie auf IP-Adresse freigeben.

gcloud

Führen Sie den Befehl compute addresses delete aus. Ersetzen Sie ADDRESS_NAME durch den Namen der IP-Adresse, die Sie freigeben möchten.

gcloud compute addresses delete ADDRESS_NAME

API

Rufen Sie die Methode addresses.delete auf:

DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME

Ersetzen Sie Folgendes:

  • ADDRESS_NAME: ist der Name der IP-Adresse.
  • REGION: ist der Name der Region für diese Anfrage.
  • PROJECT_ID: ist die Projekt-ID für diese Anfrage.

Externe IP-Adressen auf bestimmte VM-Instanzen beschränken

Für gewisse Arbeitslasten können grundlegende Anforderungen wie bestimmte Sicherheits- und Netzwerkeinschränkungen bestehen. Sie haben beispielsweise die Möglichkeit, die externe IP-Adresse so zu beschränken, dass nur bestimmte VM-Instanzen sie verwenden können. Mit dieser Option können Sie die Daten-Exfiltration verhindern oder die Netzwerkisolation aufrechterhalten. Mithilfe einer Organisationsrichtlinie können Sie externe IP-Adressen auf bestimmte VM-Instanzen beschränken, um die Verwendung externer IP-Adressen für Ihre VM-Instanzen innerhalb einer Organisation oder eines Projekts zu steuern.

Die Einschränkung zur Steuerung externer IP-Adressen auf VM-Instanzen lautet:

constraints/compute.vmExternalIpAccess

Wenn Sie sie verwenden möchten, geben Sie eine Richtlinie mit einer allowedList-Aufstellung der VM-Instanzen an, die externe IP-Adressen haben dürfen. Wenn keine Richtlinie angegeben ist, sind alle externen IP-Adressen für alle VM-Instanzen zulässig. Ist dagegen eine Richtlinie vorhanden, kann nur den VM-Instanzen, die in der allowedValues-Liste enthalten sind, eine sitzungsspezifische oder statische externe IP-Adresse zugewiesen werden. Andere Compute Engine-VM-Instanzen in der Organisation oder dem Projekt, die nicht explizit in der Richtlinie definiert sind, dürfen keine externen IP-Adressen verwenden.

VMs werden in den Listen mit zugelassenen oder verbotenen Instanzen anhand ihrer URL identifiziert:

projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME

Spezifikationen

  • Sie können die Listeneinschränkung nur auf VM-Instanzen anwenden.
  • Die Einschränkung lässt sich nicht rückwirkend anwenden. Alle VM-Instanzen, die externe IP-Adressen haben, bevor die Richtlinie in Kraft tritt, behalten diese.
  • Diese Einschränkung akzeptiert entweder eine allowedList- oder eine deniedList-Aufstellung, aber nicht beide in derselben Richtlinie.
  • Für die Verwaltung und Pflege des Lebenszyklus und der Integrität der Instanz sind Sie oder ein Administrator mit den entsprechenden Berechtigungen verantwortlich. Durch die Einschränkung wird nur die URL der Instanz überprüft, dies verhindert aber nicht, dass die VMs auf der weißen Liste geändert, gelöscht oder neu erstellt werden.

Permissions

Wenn Sie eine Einschränkung auf Projekt- oder Organisationsebene einrichten möchten, müssen Sie in Ihrer Organisation die Rolle orgpolicy.policyAdmin haben.

Richtlinieneinschränkung auf Organisationsebene einrichten

Wenn Sie eine Einschränkung für den Zugriff auf externe IP-Adressen einrichten möchten, folgen Sie den Anweisungen unten.

Organisations-ID ermitteln

Console

Sie finden die ID auch in der Google Cloud Console:

  1. Melden Sie sich in der Google Cloud Console an.
  2. Klicken Sie auf die Projektauswahl.

    Organisations- und Projektauswahl

  3. Wählen Sie eine Organisation aus und suchen Sie nach der Organisations-ID.

    Organisations-ID

gcloud

Sie können das numerische n dadurch ermitteln, dass Sie den Befehl organizations list ausführen und in der Antwort nach der ID suchen:

gcloud organizations list

Die Ausgabe des gcloud-Tools sieht etwa so aus:

DISPLAY_NAME           ID
example-organization   29252605212

Richtlinieneinschränkungen festlegen

Console

  1. Öffnen Sie die Seite Organisationsrichtlinien.

    Zur Seite "Organisationsrichtlinien"

  2. Wählen Sie bei Bedarf die gewünschte Organisation aus dem Drop-down-Menü des Projekts aus.
  3. Klicken Sie auf Zulässige externe IPs für VM-Instanzen definieren.
  4. Klicken Sie auf Bearbeiten, um die externe IP-Richtlinie zu bearbeiten. Wenn Sie nicht auf Bearbeiten klicken können, fehlen Ihnen die erforderlichen Berechtigungen.
  5. Wählen Sie CPU-Plattform und GPU aus, um die Organisationsrichtlinie für bestimmte VM-Instanzen festzulegen.

    Organisationsrichtlinie anpassen

  6. Wählen Sie die gewünschte Richtlinienerzwingung und den gewünschten Richtlinientyp aus.

  7. Wählen Sie unter Richtlinienwerte die Option Benutzerdefiniert.

  8. Geben Sie eine Teil-URL zu einer VM-Instanz ein und drücken Sie die Eingabetaste. Geben Sie gegebenenfalls weitere VM-Instanzen ein.

    VM-Instanzen zur Organisationsrichtlinie hinzufügen

  9. Klicken Sie auf Speichern, um die Änderungen zu speichern.

gcloud

Geben Sie die Richtlinie mit dem Befehl gcloud beta resource-manager org-policies set-policy an. Sie müssen Ihre Richtlinie als JSON-Datei bereitstellen. Erstellen Sie also eine JSON-Datei, die ungefähr so aussieht:

{
"constraint": "constraints/compute.vmExternalIpAccess",
"listPolicy": {
  "allowedValues": [
     "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
     "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
     "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
  ]
 }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: ist die Projekt-ID für diese Anfrage, z. B. example-project. Beachten Sie, dass sich dieser Vorgang vom Einrichten der Organisationsrichtlinien unterscheidet, bei dem die numerische ID der Organisation erforderlich ist.
  • ZONE: ist die Zone der Instanz.
  • INSTANCE_NAME: ist der Name der Instanz.

Alternativ können Sie eine deniedValues-Liste mit VM-Instanzen angeben, für die Sie externe IP-Adressen explizit ausschließen möchten. Alle Instanzen, die nicht auf der Liste stehen, dürfen dann eine externe IP-Adresse haben. Sie können nur eine der beiden Optionen allowedValues oder deniedValues angeben, aber nicht beide.

Übergeben Sie dann die Datei mit Ihrer Anfrage:

gcloud beta resource-manager org-policies set-policy MY_POLICY.JSON --organization ORGANIZATION_ID

Ersetzen Sie ORGANIZATION_ID durch die numerische ID der Organisation.

Wenn keine der Instanzen auf externe IP-Adressen zugreifen können soll, legen Sie eine Richtlinie fest, in der allValues auf DENY gesetzt ist:

{
  "constraint": "constraints/compute.vmExternalIpAccess",
  "listPolicy": {
    "allValues": "DENY"
  }
}

API

Verwenden Sie die setOrgPolicy() API, um die Einschränkung zu definieren. Die von Ihnen in die allowedValue-Liste aufgenommenen VMs dürfen externe IP-Adressen haben. Alternativ können Sie eine deniedValues-Liste mit VM-Instanzen angeben, für die Sie externe IP-Adressen explizit ausschließen möchten. Alle Instanzen, die nicht auf der Liste stehen, dürfen dann eine externe IP-Adresse haben. Sie können nur eine der beiden Optionen allowedValues oder deniedValues angeben, aber nicht beide.

Das folgende Beispiel zeigt eine Anfrage zum Einrichten der Einschränkung compute.vmExternalIpAccess für eine Organisation, in der VM-Instanzen aus bestimmten Projekten innerhalb der Organisation externe IP-Adressen haben dürfen:

POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORGANIZATION_ID:setOrgPolicy

wobei ORGANIZATION_ID die numerische ID der Organisation ist.

Geben Sie nun im Anfragetext die gewünschte Richtlinie für diese Einschränkung an:

{
  "policy": {
    "constraint": "constraints/compute.vmExternalIpAccess",
    "listPolicy": {
      "allowedValues": [
        "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
        "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME",
        "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
        ]
      }
    }
 }

Wenn keine der Instanzen auf externe IP-Adressen zugreifen können soll, legen Sie eine Richtlinie fest, in der allValues auf DENY gesetzt ist:

{
  "policy": {
    "constraint": "constraints/compute.vmExternalIpAccess",
    "listPolicy": {
      "allValues": "DENY"
      }
    }
 }

Richtlinie auf Projektebene einrichten

Eine auf Projektebene festgelegte Richtlinie überschreibt die Richtlinie auf der Organisationsebene. Wenn beispielsweise auf Organisationsebene die virtuelle Maschine example-vm-1 auf der allowedValues-Liste steht, in der Richtlinie auf Projektebene dieselbe VM jedoch in der deniedValues-Liste enthalten ist, darf die VM-Instanz keine externe IP-Adresse haben.

Console

Führen Sie den gleichen Vorgang aus, der unter Richtlinieneinschränkungen auf Organisationsebene einrichten erläutert wird, aber wählen Sie anstelle der Organisation das gewünschte Projekt aus der Projektauswahl aus.

Projektauswahl

gcloud

Geben Sie die Richtlinie mit dem Befehl gcloud beta resource-manager org-policies set-policy an. Sie müssen Ihre Richtlinie als JSON-Datei bereitstellen. Erstellen Sie also eine JSON-Datei, die ungefähr so aussieht:

{
 "constraint": "constraints/compute.vmExternalIpAccess",
 "listPolicy": {
  "allowedValues": [
   "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
  ]
 }
}

Ersetzen Sie Folgendes:

  • PROJECT_ID: ist die Projekt-ID für diese Anfrage, z. B. example-project. Beachten Sie, dass sich dieser Vorgang vom Einrichten der Organisationsrichtlinien unterscheidet. Hier ist die numerische ID der Organisation erforderlich.
  • ZONE: ist die Zone der Instanz.
  • INSTANCE_NAME: ist der Name der Instanz.

Alternativ können Sie eine deniedValues-Liste mit VM-Instanzen angeben, für die Sie externe IP-Adressen explizit ausschließen möchten. Alle Instanzen, die nicht auf der Liste stehen, dürfen dann eine externe IP-Adresse haben. Sie können nur eine der beiden Optionen allowedValues oder deniedValues angeben, aber nicht beide.

Übergeben Sie dann die Datei mit Ihrer Anfrage:

gcloud beta resource-manager org-policies set-policy MY_POLICY.JSON --project example-project

API

Verwenden Sie die setOrgPolicy() API, um die Einschränkung zu definieren. Die von Ihnen in die allowedValue-Liste aufgenommenen VMs dürfen externe IP-Adressen haben. Alternativ können Sie eine deniedValues-Liste mit VM-Instanzen angeben, für die Sie externe IP-Adressen explizit ausschließen möchten. Alle Instanzen, die nicht auf der Liste stehen, dürfen eine externe IP-Adresse haben. Sie können nur eine der beiden Optionen allowedValues oder deniedValues angeben, aber nicht beide.

Das folgende Beispiel zeigt eine Anfrage zum Einrichten der Einschränkung compute.vmExternalIpAccess für ein Projekt, um für bestimmte VM-Instanzen externe IP-Adressen zuzulassen:

POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setOrgPolicy

Ersetzen Sie PROJECT_ID durch die Projekt-ID für diese Anfrage.

Der Anfragetext enthält die gewünschte Richtlinie für diese Einschränkung:

{
 "policy": {
  "constraint": "constraints/compute.vmExternalIpAccess",
  "listPolicy": {
   "allowedValues": [
    "projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME"
   ]
  }
 }
}

Best Practices

  • Google empfiehlt, für diese Einschränkung nicht die Liste deniedValues zu verwenden. Wenn Sie Werte in der deniedValues-Liste definieren, bedeutet das nur, dass die VM-Instanzen in der deniedValues-Liste keine externen IP-Adressen haben dürfen. Dies könnte zu Sicherheitsproblemen führen, wenn Sie genau steuern möchten, welche Instanzen externe IP-Adressen haben dürfen. Wenn Sie bestimmte Instanzen aus der allowedValues-Liste entfernen möchten, aktualisieren Sie die vorhandene Richtlinie, um die Instanzen aus der allowedList-Aufstellung zu entfernen, statt die Instanzen mit einer niedrigeren Hierarchie in die deniedValues-Liste aufzunehmen.

  • Wenn Sie eine Richtlinie für einen großen Teil der Ressourcenhierarchie einrichten, aber bestimmte Projekte ausnehmen möchten, stellen Sie die Standardrichtlinie mit der Methode setOrgPolicy wieder her. Geben Sie dazu das Objekt restoreDefault an. Dadurch lassen Sie zu, dass alle VMs in den Projekten mit externen IP-Adressen verknüpft werden. Diese Standardeinstellung hat keinen Einfluss auf die bestehenden Richtlinien für Projekte.

  • Verwenden Sie die Organisationsrichtlinie zusammen mit IAM-Rollen, um die Umgebung besser zu steuern. Diese Richtlinie gilt nur für VM-Instanzen, aber wenn Sie externe IP-Adressen von Netzwerkgeräten besser kontrollieren und einschränken möchten, können Sie den entsprechenden Nutzern die Rolle compute.networkAdmin gewähren.

  • Die Organisationsrichtlinie gilt für alle Dienste und Produkte, die innerhalb der Organisation oder des Projekts in Compute Engine ausgeführt werden und für die die Richtlinie aktiviert ist. Insbesondere sind Dienste wie Google Kubernetes Engine, Dataflow, Dataproc und Cloud SQL von dieser Richtlinie betroffen. Wenn dies ein Problem ist, sollten Sie weitere Dienste und Produkte in einem anderen Projekt einrichten, für das die Organisationsrichtlinie nicht gilt, und bei Bedarf projektübergreifende Netzwerke verwenden.

Nächste Schritte