In dieser Anleitung wird beschrieben, wie Sie Ihre bereitgestellten Einheiten mit SaaS-Laufzeit-Tenants organisieren und Ressourcen in separaten Tenant-Projekten bereitstellen, um Ihre Ressourcen zu isolieren und zu verwalten.
Eine Übersicht über Mandanten und Mandantenprojekte finden Sie unter Mandanten und Mandantenprojekte.
Hinweise
Bevor Sie Mandantenprojekte oder ‑ressourcen erstellen:
- Erstellen Sie in Ihrem Producer-Projekt eine Terraform-Konfiguration, ein Artifact Registry-Repository und ein Artefakt, das Ihre SaaS-Anwendung enthält. Unter Dienstinstanz mit SaaS-Laufzeit bereitstellen erfahren Sie, wie Sie ein SaaS-Angebot einrichten.
Aktivieren Sie die von der SaaS-Laufzeit benötigten APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Prüfen Sie, ob Sie die erforderlichen Dienstkonten und IAM-Rollen (Identity and Access Management) im Producer-Projekt haben. Dazu gehören das vom Nutzer erstellte Dienstkonto und die Berechtigungen, die dem Konto
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.comim Erstellerprojekt gewährt wurden.
Mandantenprojekt einrichten
Wenn Sie die Ressourcen Ihres Mandanten in separaten Projekten bereitstellen, sind Ihre Ressourcen, IAM-Richtlinien, Kontingente und Netzwerkkonfigurationen für jeden Ihrer Mandanten getrennt. Dadurch ist es weniger wahrscheinlich, dass sich Sicherheitslücken oder Fehlkonfigurationen bei einem Mandanten auf Ihre anderen Mandanten auswirken.
Sie benötigen:
- ein Produzentenprojekt und
ein Mandantenprojekt für jeden Ihrer Mandanten.
Console
So richten Sie Mandanten- und Erstellerprojekte mit der Google Cloud Console ein:
- Erstellerprojekt und Mandantenprojekt für jeden Mandanten erstellen
- Abrechnung für Ihre Mandanten- und Produktionsprojekte aktivieren
Aktivieren Sie die von der SaaS-Laufzeit benötigten APIs in Ihren Mandantenprojekten.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.Prüfen Sie, ob Ihre Mandantenprojekte Dienstkonten für die Ausführung mit den erforderlichen Berechtigungen haben.
Weitere Informationen finden Sie unter SaaS-Laufzeit-Dienstkonten.
Sie haben Ihre Mandanten- und Produzentenprojekte eingerichtet. Nachdem Sie die Abrechnung für Ihre Producer- und Mandantenprojekte erstellt und aktiviert haben, können Sie Mandantenressourcen erstellen und Einheiten mit Mandanten verknüpfen.
gcloud
So richten Sie ein Producer- und ein Mandantenprojekt mit der Google Cloud CLI ein:
Erstellen Sie Ihr Erstellerprojekt und ein Mandantenprojekt für jeden Ihrer Mandanten:
gcloud projects create PRODUCER_PROJECT_ID --name="SaaS producer project" [--folder=folder-id] gcloud projects create TENANT_PROJECT_ID --name="SaaS tenant A project" [--folder=folder-id]Ersetzen Sie:
PRODUCER_PROJECT_ID: Ein String-Identifier, der die Erstellerprojekt-ID darstellt.TENANT_PROJECT_ID: Ein String, der die Mandantenprojekt-ID darstellt.
Aktivieren Sie die Abrechnung für Ihre Mandanten- und Erstellerprojekte:
gcloud beta billing projects link PRODUCER_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID gcloud beta billing projects link TENANT_PROJECT_ID --billing-account=BILLING_ACCOUNT_IDErsetzen Sie:
PRODUCER_PROJECT_ID: Ein String-Identifier, der die Erstellerprojekt-ID darstellt.TENANT_PROJECT_ID: Ein String, der die Mandantenprojekt-ID darstellt.BILLING_ACCOUNT_ID: Die ID des Rechnungskontos, das Sie dem angegebenen Projekt zuordnen möchten.
Weisen Sie dem Dienstkonto für die Ausführung die erforderlichen IAM-Rollen (Identity and Access Management) für jedes Mandantenprojekt zu:
gcloud projects add-iam-policy-binding TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT@PRODUCER_PROJECT_ID.iam.gserviceaccount.com' \ --role=ROLEErsetzen Sie:
TENANT_PROJECT_ID: Ein String, der die Mandantenprojekt-ID darstellt.PRODUCER_PROJECT_ID: Ein String-Identifier, der die Erstellerprojekt-ID darstellt.SERVICE_ACCOUNT: Das Dienstkonto, dem Sie Rollen im angegebenen Projekt zuweisen möchten.ROLE: Die Rolle „Identity and Access Management“, die zugewiesen werden soll.Sie müssen
gcloud projects add-iam-policy-bindingfür jede Rolle ausführen, die Sie dem angegebenen Dienstkonto zuweisen möchten (z. B.--role='roles/compute.admin').
Sie haben Ihre Mandanten- und Producer-Projekte eingerichtet. Nachdem Sie die Abrechnung für Ihre Producer- und Mandantenprojekte erstellt und aktiviert haben, können Sie Mandantenressourcen erstellen und Einheiten mit Mandanten verknüpfen.
Mandantenressource erstellen
Erstellen Sie in Ihrem SaaS-Angebot eine Mandantenressource, um Ihren Kunden zu repräsentieren:
Rufen Sie in der Google Cloud Console SaaS Runtime > Mandanten auf.
Klicken Sie auf Erstellen.
Geben Sie im Feld Tenant name (Mandantenname) einen Namen für Ihre Mandantenressource ein.
Optional: Geben Sie im Feld Kundenressource eine Nutzerressource mit nutzerdefinierten Einstellungen für die Integration an.
Wählen Sie im Feld SaaS-Angebot das SaaS-Angebot aus, mit dem Sie Ihren Mandanten verknüpfen möchten.
Wählen Sie im Drop-down-Menü Region eine Region aus, in der Mandantenmetadaten gespeichert werden sollen.
Optional: Klicken Sie auf Label hinzufügen, um Ihrem Mandanten ein Schlüssel/Wert-Paar-Label hinzuzufügen.
Klicken Sie auf Erstellen, um die Mandantenressource zu erstellen.
Sie haben eine Mandantenressource erstellt.
Einheit mit einem Mandanten verknüpfen
Nachdem Sie einen Mandanten erstellt und eine Einheit bereitgestellt haben, können Sie sie miteinander verknüpfen. Diese Zuordnung dient in erster Linie als Organisations-Tag, mit dem Sie festlegen können, welche Einheiten zu welchem Mandanten gehören.
Weitere Informationen zum Bereitstellen von Einheiten finden Sie unter VM mit SaaS-Laufzeit bereitstellen.
So verknüpfen Sie eine Einheit mit einem Mandanten:
Rufen Sie in der Google Cloud Console SaaS Runtime > Tenants auf.
Klicken Sie auf den Namen des Mandanten, den Sie einer Einheit zuordnen möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie im Abschnitt Zugeordnete Einheiten auf Einheit hinzufügen.
Wählen Sie die Einheiten aus, die mit diesem Mandanten verknüpft werden sollen.
Klicken Sie auf Fertig.
Klicken Sie auf Speichern.
Die ausgewählten Einheiten sind dem angegebenen Mandanten zugeordnet.
Neue Einheit mit Variablen für Mandantenprojekt bereitstellen
Wenn Sie eine Einheit bereitstellen, die mit einem Mandanten verknüpft ist, müssen Sie die Variable tenant_project_id angeben.
Rufen Sie in der Google Cloud Console SaaS Runtime > Einheiten auf.
Erstellen Sie eine neue Einheit, die mit Ihrer Art der Einheit verknüpft ist.
Klicken Sie auf Bereitstellen.
Wählen Sie die Version aus, die für Ihre Mandanteneinheit bereitgestellt werden soll.
Wählen Sie das Actuation service account (Dienstkonto für die Ausführung) aus, dem Sie in Ihrem Mandantenprojekt Berechtigungen gewährt haben. Sie sollten sich an den Grundsatz der geringsten Berechtigung halten und nur die erforderlichen Rollen für die verwalteten Ressourcen gewähren.
Im Bereich Eingabevariablen:
- Prüfen Sie, ob die Variable
tenant_project_idso aufgeführt ist, wie Sie sie in der Terraform-Konfigurationsdateivariables.tfdefiniert haben. - Geben Sie im Feld Projekt-ID des Mandanten den Namen Ihres Mandantenprojekts ein.
- Geben Sie Eingabevariablen an, die in Ihrer Terraform-Konfiguration definiert sind. Wenn Sie keine anderen Variablen in Ihrer Terraform-Konfiguration definiert haben, überspringen Sie diesen Schritt.
- Prüfen Sie, ob die Variable
Klicken Sie auf Bereitstellen.
Die SaaS-Laufzeit löst Infrastructure Manager mit dem angegebenen Dienstkonto zum Starten aus. Infrastructure Manager liest die Variable tenant_project_id und erstellt die VM in diesem Mandantenprojekt.
Gerät mit einem neuen Release neu bereitstellen
Wenn Sie eine vorhandene Einheit mit einem neuen Release neu bereitstellen, müssen Sie die Variable tenant_project_id angeben.
Rufen Sie in der Google Cloud Console SaaS Runtime > Einheiten auf.
Wählen Sie die Einheit aus, die mit Ihrer Art von Einheit verknüpft ist.
Klicken Sie auf Nutzerverwaltung bearbeiten.
Wählen Sie das Release aus, das Sie mit der aktualisierten Terraform-Konfiguration erstellt haben.
Wählen Sie das Actuation service account (Dienstkonto für die Ausführung) aus, dem Sie in Ihrem Mandantenprojekt Berechtigungen gewährt haben. Sie sollten sich an den Grundsatz der geringsten Berechtigung halten und nur die erforderlichen Rollen für die verwalteten Ressourcen gewähren.
Im Bereich Eingabevariablen:
- Prüfen Sie, ob die Variable
tenant_project_idso aufgeführt ist, wie Sie sie in der Terraform-Konfigurationsdateivariables.tfdefiniert haben. - Geben Sie im Feld Projekt-ID des Mandanten den Namen Ihres Mandantenprojekts ein.
- Geben Sie Eingabevariablen an, die in Ihrer Terraform-Konfiguration definiert sind. Wenn Sie keine anderen Variablen in Ihrer Terraform-Konfiguration definiert haben, überspringen Sie diesen Schritt.
- Prüfen Sie, ob die Variable
Klicken Sie auf Aktualisieren.
Die SaaS-Laufzeit löst Infrastructure Manager mit dem angegebenen Dienstkonto zum Starten aus. Infrastructure Manager liest die Variable tenant_project_id und erstellt die VM in diesem Mandantenprojekt.
Nächste Schritte
- Abhängigkeiten zwischen Einheiten verwalten
- Weitere Informationen zur Verwendung von Variablen und zum Zuweisen von Variablen
- Erforderliche Berechtigungen für Dienstkonten