Statische externe IP-Adresse reservieren

Wenn für eine Instanz eine feste externe IP-Adresse erforderlich ist, die sich also 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. Anschließend können Sie diese Adresse einer Instanz zuweisen. Dies ist sowohl während der Instanzerstellung als auch bei einer vorhandenen Instanz möglich.

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 zu Load-Balancing (nur auf Englisch verfügbar).

Console

  1. Öffnen Sie in der GCP Console die Seite "Statische IP-Adresse reservieren".

    Zur Seite "Statische IP-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 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, entscheiden Sie sich für Global.
  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 neuen statischen externen IP-Adresse mit gcloud compute geben Sie mit dem Unterbefehl addresses create an, ob eine globale oder regionale IP-Adresse reserviert werden soll:

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

Dabei gilt:

  • [ADDRESS_NAME] ist der Name, den Sie der Adresse zuweisen 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.

API

Wenn Sie für eine regionale IPv4-Adresse eine Anfrage direkt an die API senden möchten, erstellen Sie eine POST-Anfrage an den folgenden URI:

https://www.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 der Adresse zuweisen möchten.
  • [REGION] ist der Name der Region für diese Anfrage.
  • [PROJECT_ID] ist die Projekt-ID für diese Anfrage.

Erstellen Sie für globale statische IPv4-Adressen eine Anfrage an:

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  name: "[ADDRESS_NAME]"
}

Erstellen Sie für globale statische IPv6-Adressen eine Anfrage an:

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  "name": "[ADDRESS_NAME]",
  "ipVersion": "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. Wechseln Sie in der GCP Console zur Seite VM-Instanzen.

    Die Seite VM-Instanzen aufrufen

  2. Klicken Sie auf Instanz erstellen.
  3. Füllen Sie auf der Seite Neue Instanz erstellen die Eigenschaften für Ihre Instanz aus.
  4. Erweitern 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 unter dem Abschnitt 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 zu erstellen.

gcloud

Verwenden Sie den Parameter --address, um eine statische externe IP-Adresse während der Instanzerstellung zuzuweisen und geben Sie die statische externe IP-Adresse an:

gcloud compute instances create [INSTANCE_NAME] --address [IP_ADDRESS]

Dabei gilt:

  • [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. Gehen Sie in der GCP Console zur 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 (Bearbeiten).
    2. Klicken Sie unter Network interfaces (Netzwerkschnittstellen) auf die Schaltfläche "Edit" (Bearbeiten).

      Screenshot des Bereichs "Network interfaces" (Netzwerkschnittstellen) der Console

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

      Screenshot der Optionen für interne und externe IP-Adressen

    4. Klicken Sie auf Done (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, sollten Sie mithilfe einer Anfrage per gcloud compute instances describe prüfen, ob Ihre Instanz bereits über eine Zugriffskonfiguration verfügt:

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

    Dabei gilt:

    • [INSTANCE_NAME] ist der Name der Instanz.
    • [ACCESS_CONFIG_NAME] ist die Zugriffskonfiguration, die Sie löschen möchten. Achten Sie darauf, den vollständigen Namen in Anführungszeichen anzugeben.
  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]
    

    Dabei gilt:

    • [INSTANCE_NAME] ist der Name der Instanz.
    • [ACCESS_CONFIG_NAME] ist der Name dieser Zugriffskonfiguration. Achten Sie darauf, den vollständigen Namen in Anführungszeichen anzugeben.
    • [IP_ADDRESS] ist die IP-Adresse, die der Instanz zugewiesen werden soll.

    Wenn Sie wollen, dass Compute Engine eine sitzungsspezifische externe IP-Adresse anstelle 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 die GCP 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. Gehen Sie in der GCP Console zur Seite "Externe IP-Adressen".

    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 beim Erstellen einer neuen IP-Adresse die sitzungsspezifische externe IP-Adresse mit dem Flag --addresses 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 der Adresse zuweisen möchten.
  • [IP_ADDRESS] ist die IP-Adresse, die Sie umwandeln möchten.
  • [REGION] ist die Region, zu der die IP-Adresse gehört.

API

Wenn Sie eine sitzungsspezifische regionale IP-Adresse umwandeln möchten, stellen Sie eine PUT-Anfrage an den folgenden URI:

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses

Ihre Anfrage sollte folgenden Text enthalten:

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

Dabei gilt:

  • [ADDRESS_NAME] ist der Name, den Sie der Adresse zuweisen 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 PUT-Anfrage an den folgenden URI:

https://www.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 der Adresse zuweisen 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 IP-Adresse an eine bestehende Instanz aufheben.

Liste aller statischen externen IP-Adressen ausgeben

Um eine Liste aller statischen externen IP-Adressen auszugeben, die Sie für Ihr Projekt reserviert haben, führen Sie den Befehl addresses list aus oder erstellen Sie eine GET-Anfrage an die API.

Console

Öffnen Sie in der GCP Console die Seite "Externe IP-Adressen", um eine Liste der IP-Adressen für Ihr Projekt anzeigen zu lassen.

Zur Seite "Externe IP-Adressen"

gcloud

Mit dem Befehlszeilentool gcloud:

gcloud compute addresses list

API

Mithilfe einer GET-Anfrage an den folgenden URI mit leerem Anfragetext können Sie eine direkte Anfrage an die API senden:

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/[REGION]/addresses

Dabei gilt:

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

Mit einer Anfrage an den folgenden URI erhalten Sie eine Liste aller Adressen in allen Regionen:

https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/aggregated/addresses

Statische externe IP-Adresse beschreiben

Zum Abrufen von Informationen zu einer statischen externen IP-Adresse verwenden Sie den Befehl gcloud compute addresses describe und geben den Namen der IP-Adresse an. Alternativ können Sie eine GET-Anfrage an die API senden.

Console

  1. Gehen Sie in der GCP Console zur Seite "Externe IP-Adressen".

    Zur Seite "Externe IP-Adressen"

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

gcloud

Mithilfe von gcloud compute addresses describe:

gcloud compute addresses describe [ADDRESS_NAME]

Dabei ist [ADDRESS_NAME] der Name der externen IP-Adresse, die näher beschrieben werden soll.

API

Mithilfe einer GET-Anfrage an den folgenden URI mit leerem Anfragetext können Sie eine direkte Anfrage an die API senden:

https://www.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] 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 die Aufhebung der Zuweisung wird die IP-Adresse aus der Ressource entfernt, bleibt aber für Ihr Projekt reserviert. Mithilfe einer Anfrage gcloud compute addresses list können Sie überprü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 example-address-new aktuell verwendet.

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

  1. Rufen Sie den Namen der Zugriffskonfiguration ab, die Sie löschen möchten. Erstellen Sie zum Abrufen des Namens eine Abfrage gcloud compute instances describe:

    gcloud compute instances describe [INSTANCE_NAME]
    

    Dabei ist [INSTANCE_NAME] der Name der Instanz.

    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.

    Verwenden Sie den Unterbefehl instances delete-access-config:

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

    Dabei gilt:

    • [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 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. Gehen Sie in der GCP Console zur Seite "Externe IP-Adressen".

    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

Mit dem Befehlszeilentool gcloud:

gcloud compute addresses delete [ADDRESS_NAME]

Dabei ist [ADDRESS_NAME] der Name der IP-Adresse.

API

Mithilfe einer DELETE-Anfrage an den folgenden URI mit leerem Anfragetext können Sie eine direkte Anfrage an die API senden:

https://www.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] ist die Projekt-ID für diese Anfrage.

Interne IP-Adresse bei der Instanzerstellung auswählen

Sie können einer Instanz bei ihrer Erstellung optional eine bestimmte interne IP-Adresse zuweisen. Bei dieser IP-Adresse muss es sich um eine gültige, nicht verwendete IP-Adresse im Subnetz der Instanz handeln. Die IP-Adresse bleibt mit der Instanz verbunden, bis Sie die Instanz löschen. Dann wird die IP-Adresse in den IP-Pool zurückgeführt. Wenn Sie die Instanz beenden und neu starten, behält sie dieselbe interne IP-Adresse bei.

Wenn Sie keine IP-Adresse angeben, weist Compute Engine automatisch eine aus dem Subnetz oder Netzwerk zu. Mithilfe des Befehlszeilentools gcloud oder der API können Sie eine interne IP-Adresse festlegen.

gcloud

Führen Sie in gcloud Folgendes aus:

gcloud compute instances create [INSTANCE_NAME]
     --private-network-ip [IP_ADDRESS]

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der Instanz, die Sie erstellen möchten.
  • [IP_ADDRESS] ist die IP-Adresse, die Sie zuweisen möchten.

Wenn Sie ein benutzerdefiniertes Netzwerk im Subnetzmodus verwenden, müssen Sie außerdem das Subnetz mithilfe des Parameters --subnet [SUBNET] angeben.

API

Mit der Compute Engine API erstellen Sie Instanzen mit einer statischen internen IP-Adresse. Senden Sie wie gewohnt eine Anfrage zum Erstellen einer neuen Instanz, aber geben Sie explizit das Attribut networkInterfaces[].networkIP mit der zu verwendenden internen IP-Adresse an. Beispiel:

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

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der Instanz.
  • [IP_ADDRESS] ist die IP-Adresse, die der Instanz zugewiesen werden soll.

Wenn Sie eine Instanz mit festgelegter IP-Adresse löschen, wird die Adresse wieder in den Pool der verfügbaren IP-Adressen zurückgeführt. Wenn Sie möchten, dass eine interne IP-Adresse über die Lebensdauer der Instanz hinaus erhalten bleibt, können Sie eine statische interne IP-Adresse reservieren.

Externe IP-Adressen für VM-Instanzen deaktivieren

Für bestimmte Arbeitslasten können grundlegende Anforderungen bestehen, zu denen Sicherheits- und Netzwerkeinschränkungen gehören. Vielleicht möchten Sie den Zugriff auf externe IP-Adressen auf VM-Instanzen zur Vermeidung unbefugter Datenweitergabe oder Wahrung der Netzwerkisolation beschränken. Dies ist bei vielen Kunden der Fall. Mithilfe einer Organisationsrichtlinie können Sie den Zugriff auf externe IP-Adressen mit einer Richtlinieneinschränkung deaktivieren. So lässt sich der Zugriff auf externe IP-Adressen für Ihre VM-Instanzen innerhalb einer Organisation oder eines Projekts ganz einfach und bequem steuern.

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

constraints/compute.vmExternalIpAccess

Um sie zu verwenden, 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.
  • Die Einschränkung akzeptiert entweder eine deniedList- oder eine allowedList-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.

Berechtigungen

Um eine Einschränkung auf Projekt- oder Organisationsebene einzurichten, müssen Sie die Rolle orgpolicy.policyAdmin für die Organisation haben.

Richtlinieneinschränkung auf Organisationsebene einrichten

Um eine Einschränkung für den Zugriff auf externe IP-Adressen einzurichten, folgen Sie den Anweisungen unten.

Organisations-ID ermitteln

Console

Sie finden die ID auch in der Google Cloud Platform Console:

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

    Screenshot der Organisations- und Projektauswahl

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

    Screenshot der Organisations-ID

gcloud

Sie können das numerische n ermitteln, indem Sie den folgenden Befehl mit gcloud ausführen und nach der ID suchen:

gcloud organizations list

Die Ausgabe von gcloud 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 Richtlinie für externe IPs 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.

    Screenshot zum Anpassen der Organisationsrichtlinie

  6. Wählen Sie die gewünschte Option für Policy enforcement (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.

    Screenshot zum Hinzufügen von VM-Instanzen zur Organisationsrichtlinie

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

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

Dabei gilt:

  • [PROJECT_ID] ist die Projekt-ID für diese Anfrage, zum Beispiel 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 Instanzname.

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 entweder eine allowedValues- oder eine deniedValues-Liste angeben, aber nicht beides.

Übergeben Sie dann die Datei mit Ihrer gcloud-Anfrage:

gcloud beta resource-manager org-policies set-policy my-policy.json --organization [ORGANIZATION_ID]

wobei [ORGANIZATION_ID] die numerische ID der Organisation ist.

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

Mit setOrgPolicy() können Sie die Einschränkung über die API definieren. Die von Ihnen in die allowedValue-Liste aufgenommenen virtuellen Maschinen 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 entweder eine allowedValues- oder eine deniedValues-Liste angeben, aber nicht beides.

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.

Screenshot für die Projektauswahl

gcloud

Die Richtlinie lässt sich mit dem Befehl gcloud beta resource-manager org-policies set-policy festlegen. 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]"
  ]
 }
}

Dabei gilt:

  • [PROJECT_ID] ist die Projekt-ID für diese Anfrage, zum Beispiel 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 Instanzname.

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 entweder eine allowedValues- oder eine deniedValues-Liste angeben, aber nicht beides.

Übergeben Sie dann die Datei mit Ihrer gcloud-Anfrage:

gcloud beta resource-manager org-policies set-policy my-policy.json --project example-project

API

Mit setOrgPolicy() können Sie die Einschränkung über die API definieren. Die von Ihnen in die allowedValue-Liste aufgenommenen virtuellen Maschinen 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 entweder eine allowedValues- oder eine deniedValues-Liste angeben, aber nicht beides.

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

Hierbei ist [PROJECT_ID] 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 Liste deniedValues definieren, bedeutet dies, dass nur die VM-Instanzen in der Liste deniedValues 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 Liste allowedValues entfernen möchten, aktualisieren Sie die vorhandene Richtlinie, um die Instanzen aus der Aufstellung allowedList zu entfernen, anstatt die Instanzen in die Liste deniedValues mit 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. Damit 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 Parteien 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. Dies kann insbesondere für Dienste wie Kubernetes Engine, Dataflow, Dataproc und Cloud SQL gelten. 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.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation