Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Anwendungen in einer eingeschränkten Google Cloud-Umgebung entwickeln

Unsere Dokumente sind häufig geschrieben, um Ihnen bei der Einrichtung eines Produkts oder einer Funktion zu helfen. Manche Dokumente funktionieren jedoch möglicherweise nicht richtig, wenn Ihre Organisation Sicherheitseinschränkungen anwendet. Beispielsweise kann Ihr Unternehmen einige Sicherheitsbeschränkungen aus dem Cloud Foundation Toolkit, die Google Cloud-Sicherheitsentwürfe, implementieren. oder eigene erstellen.

In diesem Artikel finden Sie Informationen zur Behebung von Fehlern bei der Anwendungsbereitstellung, die in einer Organisation mit Sicherheitseinschränkungen auftreten.

Probleme mit der Sicherheitsbeschränkung beheben

Ihr IT-Betriebs- oder Sicherheitsteam kann Sicherheitsbeschränkungen durch Organisationsrichtlinien aktivieren. Diese Einschränkungen schränken die Verwendung der Ressourcen Ihrer Organisation ein.

Wenn Sie eine API-Anfrage stellen, die einen Fehler zurückgibt, wird Ihnen in der API-Antwort mitgeteilt, ob sie auf Richtlinienverstöße zurückzuführen ist. In der Antwort muss die Einschränkung erläutert werden, die verletzt wird. Die folgenden Schritte zur Fehlerbehebung helfen Ihnen dabei, festzustellen, ob ein Verstoß auftritt:

  1. Sehen Sie sich die Fehlermeldung der API-Antwort an. Können Sie feststellen, welche Sicherheitsbeschränkung Ihre Bereitstellung verletzt?

    Das folgende Beispiel zeigt, dass die Einschränkung sql.restrictPublicIp das Problem ist:

    Organization Policy check failure
    The external IP of this instance violates the constraints/sql.restrictPublicIp enforced
    
  2. Wenn Sie den Richtlinienverstoß verstehen, aktualisieren Sie die Konfiguration der Ressourcenbereitstellung, um die Einschränkungen einzuhalten.

    Konfigurieren Sie im vorherigen Beispiel, dass externe öffentliche IP-Adressen eingeschränkt werden, eine interne private IP-Adresse verwenden.

  3. Wenn Sie nicht sicher sind, warum die Einschränkung angewendet wird oder wie Sie vorgehen sollten, wenden Sie sich an Ihr Sicherheitsteam, um zu erfahren, wo die Richtlinie in der Hierarchie der Organisation angewendet wird, und welche Möglichkeiten zur Problemumgehung vorhanden sind.

    Überprüfen Sie, ob Bereitstellungsvorlagen wie Terraform-Vorlagen in Ihrer Organisation freigegeben werden. Diese Vorlagen sollten detailliert beschreiben, wie die Google Cloud-Infrastruktur konfiguriert wurde und die Bereitstellung Ihrer Anwendung beschränken.

Häufige Probleme mit Sicherheitsbeschränkungen

Wenn Sie Ihre Anwendungen in Google Cloud bereitstellen, wird ein Fehler wie im folgenden Beispiel auftreten:

ERROR: (gcloud.alpha.sql.instances.create) HTTPError 400: Invalid request:
Organization Policy check failure: the external IP of this instance violates the
constraints/sql.restrictPublicIp enforced at the 123456789 project.

In diesem Beispiel können Sie keine Cloud SQL-Instanz für die Verwendung einer externen öffentlichen IP-Adresse konfigurieren. Eine Sicherheitsbeschränkung wird durch eine auf Ihre Umgebung angewendete Richtlinie erzwungen.

Die folgenden allgemeinen Sicherheitseinschränkungen können bei der Entwicklung von Anwendungen in einer API-Fehlerantwort aktiviert und detailliert angezeigt werden.

Compute Engine

Name der Einschränkung Vorteile Empfohlene Problemumgehung
constraints/compute.disableNestedVirtualization Verhindern Sie, dass ein KVM-kompatibler Hypervisor auf der VM installiert wird. Dieses Verhalten kann Sicherheit führen, ohne dass Patches und Verwaltungen erforderlich sind. Konfigurieren Sie Ihre VM so, dass die hardwarebeschleunigte verschachtelte Virtualisierung deaktiviert wird.

Standardmäßig ist er für alle Compute Engine-VMs aktiviert, die auf Intel Haswell oder neueren CPU-Plattformen ausgeführt werden.
constraints/compute.requireShieldedVm Erfordert neue VM-Instanzen, um Shielded-Laufwerk-Images mit aktiviertem Secure Boot, vTPM und Integrity Monitoring zu verwenden. Diese Optionen verhindern, dass die VM manipuliert wird und dass auf Daten zugegriffen oder sie geändert werden. Beim Erstellen einer VM sollten Sie keine Shielded VMs aktivieren.

Zum Erstellen eines GKE-Clusters müssen Sie Shielded GKE-Knoten aktivieren.

Dataflow unterstützt derzeit keine Shielded VM-Worker.
constraints/compute.disableSerialPortAccess Entfernen Sie Sicherheitsvektoren für die Interaktion mit einer VM oder rufen Sie eine Diagnoseausgabe auf, die für einen Angriff verwendet werden könnte. Aktivieren Sie nicht den Zugriff auf serielle Ports, wenn Sie eine VM erstellen.
constraints/compute.disableGuestAttributesAccess Beschränken Sie die Menge der Informationen über den zugrunde liegenden Host und die Plattform, die von einer schädlichen Anwendung missbraucht werden könnten. Verwenden Sie die Compute Engine API nicht zum Lesen von Gastattributen Ihrer Compute Engine-VMs.
constraints/compute.vmExternalIpAccess Verhindern, dass Anwendungen mit einer externen IP-Adresse ausgeführt und über das Internet zugänglich sind Deaktivieren Sie den externen IP-Zugriff für Ihre VMs. Sie können nur eine interne private IP-Adresse verwenden.

GKE kann private Cluster ohne öffentliche IP-Adressen verwenden.

Dataprep und Dataflow unterstützen derzeit keine privaten IP-Adressen.

Virtuelle Netzwerke und IP-Adressen

Name der Einschränkung Vorteile Empfohlene Problemumgehung
constraints/compute.skipDefaultNetworkCreation Achten Sie darauf, dass nur unternehmensverwaltete Virtual Private Clouds (VPC) erstellt werden können und dass Netzwerktraffic oder Filterregeln angewendet werden. Verbinden Sie Ihre Anwendungen mit vorhandenen VPCs in Ihrer Organisation. Automatisch erstellte Standard-VPCs werden für neue Projekte nicht bereitgestellt.
constraints/compute.restrictXpnProjectLienRemoval So verhindern Sie, dass eine freigegebene VPC versehentlich gelöscht wird, wenn die Ressourcen von anderen Projekten auf die bereitgestellten Netzwerkdienste angewiesen sind. Versuchen Sie nicht, eine freigegebene VPC zu löschen. Prüfen Sie, ob Sie die richtige Ressource zum Löschen ausgewählt haben.
constraints/sql.restrictPublicIp Cloud SQL-Instanzen mit einer externen IP-Adresse ausführen und über das Internet zugänglich machen Konfigurieren Sie Ihre Cloud SQL-Instanz nicht für die Verwendung einer externen öffentlichen IP-Adresse.

Konfigurieren Sie stattdessen Ihre Cloud SQL-Instanz für die Verwendung einer internen privaten IP-Adresse.

Identität und Authentifizierung

Name der Einschränkung Vorteile Empfohlene Problemumgehung
constraints/iam.disableServiceAccountKeyCreation Dienstkontoschlüssel können ein Sicherheitsrisiko darstellen, wenn sie verfügbar gemacht werden. Daher wird verhindert, dass sie exportiert werden. Verwenden Sie statt eines Dienstkontos eine andere Authentifizierungsmethode.
constraints/storage.uniformBucketLevelAccess Wenn Sie die Verwendung von Identity and Access Management (IAM) zulassen, können Sie das Risiko falscher oder inkonsistenter Berechtigungen für Storage-Buckets reduzieren. Aktivieren Sie den einheitlichen Zugriff auf Bucket-Ebene, um den Cloud Storage-Bucket zu sichern.
constraints/iam.allowedPolicyMemberDomains Zugriff auf Google Cloud-Ressourcen auf genehmigte Domains beschränken Verwenden Sie ein Konto innerhalb einer der genehmigten Domains. Für diese Einschränkung sind weitere bekannte Probleme vorhanden.

Beispiel für API-Antwortfehler

Im vorherigen Beispiel zur Einschränkung externer öffentlicher IP-Adressen mit Cloud SQL führt ein Richtlinienverstoß dazu, dass die API einen Fehler zurückgibt. Die folgenden ausführlicheren Beispiele zeigen die API-Antwort, die Ihnen zeigt, welche Einschränkung zum Fehlschlagen der Anfrage führt. Sehen Sie sich Ihre eigenen API-Antworten an, um zu verstehen, warum Anwendungsbereitstellungen fehlschlagen.

Cloud SQL-Fehler mit dem gcloud-Befehlszeilentool:

$ gcloud alpha sql instances create mysql-node --project my-sql-project

ERROR: (gcloud.alpha.sql.instances.create) HTTPError 400: Invalid request:
Organization Policy check failure: the external IP of this instance violates the
constraints/sql.restrictPublicIp enforced at the 123456789 project.

Cloud SQL-Fehler mit Terraform:

$ terraform apply plan.out

[...]
module.mysql-db.google_sql_database_instance.default: Creating...

Error: Error, failed to create instance backend01-db-1c81e0e3: googleapi:
Error 400: Invalid request: Organization Policy check failure: the external IP
of this instance violates the constraints/sql.restrictPublicIp enforced at the
123456789 project., invalid

Auf das Projekt angewendete Organisationsrichtlinien auflisten

Ihr Projekt kann Richtlinien von der Ordner- oder Organisationsebene übernehmen. Abhängig von Ihren Zugriffsrollen können Sie nicht erkennen, welche Richtlinien auf höheren Ebenen in der Hierarchie erzwungen werden, um festzustellen, wo die Verstoßbeschränkung angewendet wird.

Zum Aufrufen der angewendeten Richtlinien oder Ausnahmen für Ihr Projekt verwenden Sie den Befehl gcloud alpha resource-manager org-policies list und geben Ihre Projekt-ID mithilfe des Parameters --project an:

gcloud alpha resource-manager org-policies list --project <project-id>

Weitere Informationen zu einer angewendeten Richtlinie finden Sie mit dem Befehl gcloud alpha resource-manager org-policies describe. Geben Sie den Namen der zu beschreibenden Richtlinie und Ihre Projekt-ID mit dem Parameter --project an:

gcloud alpha resource-manager org-policies describe <policy-name> --project <project-id>

Nächste Schritte

Wenn Sie nicht ermitteln können, wo eine Richtlinie angewendet wird und wie Sie eine Sicherheitsbeschränkung umgehen, wenden Sie sich an Ihr IT-Team oder das Sicherheitsteam. Jede Organisation wendet Richtlinien an, die auf ihre Umgebung zugeschnitten sind.

Weitere Informationen zu allen Zugriffssteuerungen in Ihrer Organisation finden Sie in der Liste der Einschränkungen für Organisationsrichtlinien.