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:
- Reservieren Sie eine neue statische externe IP-Adresse und weisen Sie diese dann einer neuen VM-Instanz zu.
- Wandeln Sie eine vorhandene sitzungsspezifische externe IP-Adresse in eine statische externe IP-Adresse um.
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
- Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten:
- Installieren Sie das gcloud-Befehlszeilentool oder aktualisieren Sie es auf die neueste Version.
- Legen Sie eine Standardregion und -zone fest.
- Wenn Sie die API-Beispiele dieser Anleitung verwenden möchten, richten Sie den API-Zugang ein.
- Weitere Informationen zu IP-Adressen
- Informationen zu Kontingenten und Limits für statische externe IP-Adressen.
- Informationen zu Preisen für externe IP-Adressen.
Eine neue statische 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. 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 Netzwerk-Load-Balancern verwendet werden können
- Globale IP-Adressen, die für globale Load-Balancer verwendet werden können: HTTP(S), SSL-Proxy und TCP-Proxy
Reservieren Sie eine statische externe IP-Adresse mit dem 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
compute 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
Rufen Sie in der Cloud Console die Seite Statische Adresse reservieren auf.
Wählen Sie einen Namen für die neue Adresse.
Legen Sie fest, ob es sich um eine
IPv4
- oderIPv6
-Adresse handelt.IPv6
-Adressen sind immer global und können nur mit globalen HTTP(S)-, SSL-Proxy- und TCP-Proxy-Load-Balancern verwendet werden.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.
Wählen Sie für eine regionale IP-Adresse die Region aus, in der die Adresse erstellt werden soll.
(Optional) Wählen Sie eine Ressource aus, mit der die IP-Adresse verknüpft werden soll.
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 HTTP(S)-, SSL-Proxy- und TCP-Proxy-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 sindIPv4
.
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.
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
- Öffnen Sie in der Cloud Console die Seite VM-Instanzen.
- Klicken Sie auf Instanz erstellen.
- Geben Sie auf der Seite Neue Instanz erstellen die Attribute für Ihre Instanz ein.
- Maximieren Sie den Abschnitt Verwaltung, Sicherheit, Laufwerke, Netzwerke, einzelne Mandanten.
- Klicken Sie auf Netzwerk.
- Klicken Sie unter Netzwerkschnittstellen auf die Standardnetzwerkschnittstelle, um sie zu bearbeiten.
- Wählen Sie im Bereich Externe IP die statische externe IP-Adresse aus, die Sie aus dem Drop-down-Menü reserviert haben.
- Klicken Sie auf Fertig, um die Änderung der Standard-Netzwerkschnittstelle abzuschließen.
- 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 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": "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
- Gehen Sie in der Cloud Console zur Seite VM-Instanzen.
- Klicken Sie auf den Namen der Instanz, der Sie die externe IP-Adresse zuweisen möchten. Die Seite mit den Instanzdetails wird angezeigt.
Führen Sie auf der Seite mit den Instanzdetails folgende Schritte aus:
- Klicken Sie auf Edit.
Klicken Sie unter Network interfaces auf die Schaltfläche "Edit".
Wählen Sie unter Externe IP-Adresse entweder eine sitzungsspezifische oder eine statische externe IP-Adresse aus, die Sie der Instanz zuweisen möchten.
Klicken Sie auf Fertig.
Klicken Sie auf Speichern.
gcloud
(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.
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: 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 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.
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 SieIP_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"
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
- Rufen Sie in der Cloud Console die Seite Externe IP-Adressen auf.
- Ändern Sie in der Spalte Typ den Adresstyp der IP-Adresse, die Sie umwandeln möchten, in Statisch.
- 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
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.
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.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.
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 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.
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
- Öffnen Sie in der Cloud Console die Seite Externe IP-Adressen.
- 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
: 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:
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 SieVM_NAME
durch den Namen der VM-Instanz.gcloud compute instances describe VM_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
Löschen Sie die Zugriffskonfiguration.
Führen Sie folgenden
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. Achten Sie darauf, dass Sie vollständigen Namen in Anführungszeichen angeben.
Überprüfen Sie, ob Ihre statische externe IP-Adresse nun verfügbar und anstelle von
IN_USE
alsRESERVED
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
- Rufen Sie in der Cloud Console die Seite Externe IP-Adressen auf.
- Klicken Sie auf das Kästchen neben der IP-Adresse, die Sie freigeben möchten.
- 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
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 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 ihres URI 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 einedeniedList
-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 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:
- Melden Sie sich in der Google Cloud Console an.
Klicken Sie auf die Projektauswahl.
Wählen Sie eine Organisation aus und suchen Sie nach der 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
- Öffnen Sie die Seite Organisationsrichtlinien.
- Wählen Sie bei Bedarf die gewünschte Organisation aus dem Drop-down-Menü des Projekts aus.
- Klicken Sie auf Zulässige externe IPs für VM-Instanzen definieren.
- Klicken Sie auf Bearbeiten, um die externe IP-Richtlinie zu bearbeiten. Wenn Sie nicht auf Bearbeiten klicken können, fehlen Ihnen die erforderlichen Berechtigungen.
Wählen Sie CPU-Plattform und GPU aus, um die Organisationsrichtlinie für bestimmte VM-Instanzen festzulegen.
Wählen Sie die gewünschte Richtlinienerzwingung und den gewünschten Richtlinientyp aus.
Wählen Sie unter Richtlinienwerte die Option Benutzerdefiniert aus.
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
Geben Sie bei Bedarf weitere VM-Instanzen ein.
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/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
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/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.
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/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
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/VM_NAME" ] } } }
Best Practices
Google empfiehlt, für diese Einschränkung nicht die Liste
deniedValues
zu verwenden. Wenn Sie Werte in derdeniedValues
-Liste definieren, bedeutet das nur, dass die VM-Instanzen in derdeniedValues
-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 derallowedValues
-Liste entfernen möchten, aktualisieren Sie die vorhandene Richtlinie, um die Instanzen aus derallowedList
-Aufstellung zu entfernen, statt die Instanzen mit einer niedrigeren Hierarchie in diedeniedValues
-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 ObjektrestoreDefault
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.
Weitere Informationen
- Weitere Informationen zu IP-Adressen
- Weitere Informationen zu Netzwerken und Firewalls
- Mehr zum internem DNS
- Preise für VPC