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 statischen IP-Adressen finden Sie unter Externe IP-Adressen.

Hinweis

Neue statische externe IP-Adresse reservieren

Eine statische externe IP-Adresse ist die IP-Adresse, die so lange für Ihr Projekt reserviert ist, bis Sie diese 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. Sie können auch eine sitzungsspezifische externe IP-Adresse in eine statische externe IP-Adresse umwandeln.

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

  • Regionale IP-Adressen, die von VM-Instanzen mit einer oder mehreren Netzwerkschnittstellen oder von regionalen Load-Balancern verwendet werden können.
  • Globale IP-Adressen, die für globale Load-Balancer verwendet werden können.

Eine Liste der regionalen und globalen Load-Balancer finden Sie unter Zusammenfassung der Load-Balancer von Google Cloud.

Reservieren Sie eine statische externe IP-Adresse mit dem gcloud-Befehlszeilentool oder über die API. Nachdem Sie die Adresse reserviert haben, weisen Sie sie einer neuen Instanz zu, wenn Sie sie erstellen, oder einer vorhandenen Instanz.

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 nicht überprüft werden, ob die IP-Adresse statisch oder sitzungsspezifisch ist. Sie können die IP-Adresse mit der Liste der für dieses Projekt reservierten statischen externen IP-Adressen vergleichen. Mit dem Unterbefehl compute addresses list können Sie eine Liste der für Ihr Projekt verfügbaren statischen externen IP-Adressen aufrufen.

  • Jede VM-Instanz kann mehrere Netzwerkschnittstellen haben, 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 zu Load-Balancing (nur auf Englisch verfügbar).

Console

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

    Zur Seite "Statische Adresse reservieren"

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

  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 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 für einen regionalen Load-Balancer reservieren, wählen Sie Regional aus. Wenn Sie eine statische IP-Adresse für einen globalen 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

Zum Reservieren einer statischen externen IP-Adresse mit gcloud compute verwenden Sie den Befehl compute addresses create.

Verwenden Sie die Felder --global und --ip-version, wenn Sie eine globale IP-Adresse reservieren möchten. Geben Sie für das Feld --ip-version entweder IPV4 oder IPV6 an. IPv6-Adressen sind immer global und können nur mit globalen Load-Balancern verwendet werden.

Ersetzen Sie ADDRESS_NAME durch den Namen, mit dem Sie diese Adresse bezeichnen möchten.

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

Wenn Sie eine regionale IP-Adresse reservieren möchten, verwenden Sie das Feld --region:

gcloud compute addresses create ADDRESS_NAME  \
    --region=REGION

Dabei gilt:

  • ADDRESS_NAME ist der Name, den Sie für diese Adresse vergeben möchten.
  • REGION ist die Region, in der Sie diese Adresse reservieren möchten. Die Region muss sich in derselben Region befinden wie die Ressource, der Sie die IP-Adresse zuweisen möchten. Alle regionalen IP-Adressen sind IPv4.

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"
}

Dabei gilt:

  • ADDRESS_NAME ist der Name, den Sie für die Adresse verwenden möchten.
  • REGION ist der Name der Region für diese Anfrage.
  • PROJECT_ID: 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.

Terraform

Sie können ein Terraform-Modul verwenden, um eine interne IP-Adresse zu erstellen.

Im folgenden Beispiel haben die Terraform-Argumente Beispielwerte, die Sie ändern können. Im Beispiel werden drei regionale externe IPv4-Adressen erstellt.

module "address" {
  source       = "terraform-google-modules/address/google"
  version      = "3.0.0"
  project_id   = var.project_id # Replace this with your service project ID in quotes
  region       = "europe-west1"
  address_type = "EXTERNAL"
  names = [
    "regional-external-ip-address-1",
    "regional-external-ip-address-2",
    "regional-external-ip-address-3"
  ]
}

Im folgenden Beispiel wird eine globale externe IPv6-Adresse erstellt:

resource "google_compute_global_address" "default" {
  project      = var.project_id # Replace this with your service project ID in quotes
  name         = "ipv6-address"
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
}

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. Öffnen Sie in der Cloud Console die Seite VM-Instanzen.

    Zu „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 VM_NAME --address=IP_ADDRESS

Dabei gilt:

  • VM_NAME ist der Name der VM-Instanz.
  • IP_ADDRESS ist die IP-Adresse, die der Instanz zugewiesen werden soll. Verwenden Sie die reservierte statische externe IP-Adresse, nicht den Adressnamen.

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": "VM_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. Gehen Sie in der Cloud Console zur Seite VM-Instanzen.

    Zu „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.

    Sie können für jede Instanz eine Zugriffskonfiguration festlegen. 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 VM_NAME

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

    networkInterfaces:
    - accessConfigs:
      - kind: compute#accessConfig
        name: external-nat
        natIP: 203.0.113.1
        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 VM_NAME \
        --access-config-name="ACCESS_CONFIG_NAME"

    Dabei gilt:

    • VM_NAME ist der Name der VM-Instanz.
    • ACCESS_CONFIG_NAME ist die Zugriffskonfiguration, die gelöscht werden soll. Achten Sie darauf, dass Sie 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 VM_NAME \
       --access-config-name="ACCESS_CONFIG_NAME" --address=IP_ADDRESS

    Dabei gilt:

    • VM_NAME ist der Name der VM-Instanz.
    • ACCESS_CONFIG_NAME ist der Name dieser Zugriffskonfiguration. Achten Sie darauf, dass Sie 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 VM_NAME \
        --access-config-name="ACCESS_CONFIG_NAME"

API

Sie können die externe IP-Adresse einer VM ändern, indem Sie eine neue Zugriffskonfiguration für diese VM hinzufügen.

  1. Prüfen Sie, ob Ihre VM bereits eine Zugriffskonfiguration hat. Stellen Sie zum Prüfen der VM-Details eine GET-Anfrage an die Methode instances.get.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME

    Dabei gilt:

    • PROJECT_ID: Projekt-ID für diese Anfrage.
    • ZONE: die Zone, in der sich die VM befindet
    • VM_NAME: Der Name der VM Wenn bereits eine Zugriffskonfiguration vorhanden ist, sieht die Antwort in etwa so aus:
    "networkInterfaces": [
    {
     "network":
      ...
     "networkIP": "192.0.2.1",
     "name": "nic0",
     "accessConfigs": [
      {
        "type": "ONE_TO_ONE_NAT",
        "name": "External NAT",
        "natIP": "203.0.113.1",
        "networkTier": "PREMIUM",
        "kind": "compute#accessConfig"
      }
    ],
     ...
    }

    Das Feld networkInterfaces[].accessConfigs[].natIP gibt die statische externe IP-Adresse der VM-Instanz zurück.

  2. Löschen Sie die vorhandene Zugriffskonfiguration. Senden Sie dazu eine POST-Anfrage an die Methode instances.deleteAccessConfig.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig
  3. Fügen Sie der Netzwerkschnittstelle der VM-Instanz eine neue Zugriffskonfiguration hinzu. Stellen Sie dazu eine POST-Anfrage an die Methode instances.addAccessConfig.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/addAccessConfig
    
    {
    "natIP": "IP_ADDRESS",
    "name": "ACCESS_CONFIG_NAME"
    }

    Dabei gilt:

    • IP_ADDRESS ist die externe IP-Adresse, die der Instanz zugeordnet werden soll. Geben Sie eine nicht reservierte statische externe IP-Adresse an, die für das Projekt verfügbar ist.
    • ACCESS_CONFIG_NAME ist der Name der Zugriffskonfiguration. Der Standardname und der empfohlene Name ist „Externe NAT“.

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.

    Zu externen 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]

Dabei gilt:

  • 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

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"
}

Dabei gilt:

  • 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: 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.

Statische externe IP-Adressen auflisten

Zum Auflisten statischer externer IP-Adressen, die Sie für Ihr Projekt reserviert haben, nutzen Sie die Konsole, führen Sie compute 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.

Zu externen 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

Dabei gilt:

  • REGION ist der Name der Region für diese Anfrage.
  • PROJECT_ID: 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. Öffnen Sie in der Cloud Console die Seite Externe IP-Adressen.

    Zu externen 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

Dabei gilt:

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

Zuweisung einer statischen externen IP-Adresse aufheben

Sie können die Zuweisung einer statischen externen IP-Adresse aufheben, indem Sie die IP-Adresszuweisung mithilfe der Cloud Console ändern oder die Zugriffskonfiguration der VM löschen, die die IP-Adresse verwendet. Sie können die Zuweisung der IP-Adresse auch aufheben, indem Sie die Instanz löschen. 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.

Console

  1. Öffnen Sie in der Cloud Console die Seite Externe IP-Adressen.

    Zu externen IP-Adressen

  2. Wählen Sie die statische IP-Adresse aus, deren Zuweisung Sie aufheben möchten.
  3. Klicken Sie auf Ändern, um das Dialogfeld IP-Adresse anhängen zu öffnen.
  4. Wählen Sie aus der Drop-down-Liste Anhängen an die Option Keine aus.
  5. Klicken Sie auf OK.

gcloud

Mit dem Befehl gcloud compute addresses list können Sie prüfen, ob eine statische IP-Adresse verwendet wird:

gcloud compute addresses list

Die Ausgabe sieht etwa so aus:

NAME                 REGION    ADDRESS            STATUS
example-address      REGION    198.51.100.1       RESERVED
example-address-new  REGION    203.0.113.1        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 VM_NAME durch den Namen der VM.

    gcloud compute instances describe VM_NAME

    Die Zugriffskonfiguration wird im folgenden Format ausgegeben:

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

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

    gcloud compute instances delete-access-config VM_NAME \
    --access-config-name="ACCESS_CONFIG_NAME"

    Dabei gilt:

    • VM_NAME ist der Name der VM-Instanz.
    • ACCESS_CONFIG_NAME ist der Name der Zugriffskonfiguration, die Sie löschen möchten. Der vollständige Name muss in Anführungszeichen angegeben werden.
  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      198.51.100.1      RESERVED
    example-address-new  REGION      203.0.113.1       RESERVED

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

API

Sie können die Zuweisung einer statischen externen IP-Adresse aufheben, indem Sie die Zugriffskonfiguration der VM löschen, die die Adresse verwendet.

  1. Senden Sie eine GET-Anfrage an die Methode instances.get, um die Details der Zugriffskonfiguration einer VM zu prüfen.

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
  2. Löschen Sie die vorhandene Zugriffskonfiguration. Senden Sie dazu eine POST-Anfrage an die Methode instances.deleteAccessConfig.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/deleteAccessConfig

    Dabei gilt:

    • PROJECT_ID: Projekt-ID für diese Anfrage.
    • ZONE: die Zone, in der sich die VM befindet
    • VM_NAME: Der Name der VM

Statische externe 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.

    Zu externen 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.

gcloud compute addresses delete ADDRESS_NAME

Ersetzen Sie ADDRESS_NAME durch den Namen der IP-Adresse, die Sie freigeben möchten.

API

Rufen Sie die Methode addresses.delete auf.

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

Dabei gilt:

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

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

Für bestimmte Arbeitslasten können grundlegende Anforderungen bestehen, zu denen Sicherheits- und Netzwerkeinschränkungen gehören. 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 VMs 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 VMs zulässig. Ist dagegen eine Richtlinie vorhanden, kann nur den VMs, die in der allowedValues-Liste enthalten sind, eine sitzungsspezifische oder statische externe IP-Adresse zugewiesen werden. Andere Compute Engine-VMs in der Organisation oder dem Projekt, die nicht explizit in der Richtlinie definiert sind, dürfen keine externen IP-Adressen verwenden.

VM-Instanzen werden in den Listen mit zugelassenen oder abgelehnten Verbindungen anhand des URI der VM identifiziert:

projects/PROJECT_ID/zones/ZONE/instances/VM_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. Die Einschränkung überprüft nur den URI der Instanz und verhindert nicht, dass die zugelassenen VMs geändert, gelöscht oder neu erstellt werden.

Berechtigungen

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 festlegen

Console

  1. Öffnen Sie die Seite Organisationsrichtlinien.

    Zur Seite "Organisationsrichtlinien"

  2. Wählen Sie gegebenenfalls die erforderliche 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 Anpassen aus, um die Organisationsrichtlinie für bestimmte VM-Instanzen festzulegen.

    Organisationsrichtlinie anpassen

  6. Wählen Sie die erforderliche Richtlinienerzwingung und den erforderlichen Richtlinientyp aus.

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

  8. Geben Sie einen URI für eine VM-Instanz ein und drücken Sie die Eingabetaste. Der URI muss das folgende Format haben:

    projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
    
  9. Klicken Sie auf Neuer Richtlinienwert und geben Sie nach Bedarf URIs für VM-Instanzen ein.

  10. Klicken Sie auf Speichern, um die Einschränkung anzuwenden.

gcloud

Wenn Sie eine Einschränkung für den Zugriff auf externe IP-Adressen einrichten möchten, folgen Sie den Anweisungen unten. Sie können die Organisations-ID ermitteln, indem Sie den Befehl organizations list ausführen und in der Antwort nach der numerischen ID suchen:

gcloud organizations list

Das gcloud-Tool gibt eine Liste der Organisationen im folgenden Format zurück:

DISPLAY_NAME               ID
example-organization1      29252605212
example-organization2      1234567890

Geben Sie die Richtlinie mit dem Befehl gcloud resource-manager org-policies set-policy an. Sie müssen Ihre Richtlinie als JSON-Datei bereitstellen. Erstellen Sie eine JSON-Datei im folgenden Format:

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

Dabei gilt:

  • 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.
  • VM_NAME ist der Name der VM-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 und deniedValues angeben, nicht beide.

Übergeben Sie dann die Datei mit Ihrer Anfrage:

gcloud 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 und deniedValues angeben, nicht beide.

Das folgende Beispiel zeigt eine Anfrage zum Anwenden 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/VM_NAME",
        "projects/PROJECT_ID/zones/ZONE/instances/VM_NAME",
        "projects/PROJECT_ID/zones/ZONE/instances/VM_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 resource-manager org-policies set-policy an. Sie müssen Ihre Richtlinie als JSON-Datei bereitstellen. Erstellen Sie eine JSON-Datei im folgenden Format:

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

Dabei gilt:

  • 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.
  • VM_NAME ist der Name der VM-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 und deniedValues angeben, nicht beide.

Übergeben Sie dann die Datei mit Ihrer Anfrage:

gcloud 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 und deniedValues angeben, 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/VM_NAME"
   ]
  }
 }
}

Best Practices

  • Vermeiden Sie die Verwendung der deniedValues-Liste mit dieser Einschränkung. Wenn Sie Werte in der deniedValues-Liste definieren, bedeutet das, dass nur 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 VMs externe IP-Adressen haben dürfen. Wenn Sie bestimmte VMs aus der Liste allowedValues entfernen möchten, aktualisieren Sie die vorhandene Richtlinie, um die VMs aus der Aufstellung allowedList zu entfernen, statt die VMs in die Liste deniedValues in einer niedrigeren Hierarchie 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. Die bestehenden Richtlinien für Projekte sind von der Standardeinstellung nicht betroffen.

  • 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