In diesem Leitfaden wird erläutert, wie Sie App Lifecycle Manager-Mandanten verwenden, um Ihre bereitgestellten Einheiten zu organisieren, und wie Sie Ressourcen in separaten Mandantenprojekten bereitstellen, um Ihre Ressourcen zu isolieren und zu verwalten.
Eine Übersicht über Mandanten und Mandantenprojekte finden Sie unter Mandanten und Mandantenprojekte.
Hinweis
Bevor Sie Mandantenprojekte oder Ressourcen erstellen:
- Erstellen Sie in Ihrem Erstellerprojekt eine Terraform-Konfiguration, ein Artifact Registry-Repository und ein Artefakt mit Ihrer SaaS-Anwendung. Unter Dienstinstanz mit App Lifecycle Manager bereitstellen erfahren Sie, wie Sie ein SaaS-Angebot einrichten.
Aktivieren Sie die von App Lifecycle Manager benötigten APIs.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.Prüfen Sie, ob Sie die erforderlichen Dienstkonten und IAM-Rollen (Identity and Access Management) im Erstellerprojekt 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, werden Ihre Ressourcen, IAM-Richtlinien, Kontingente und Netzwerkkonfigurationen für jeden Ihrer Mandanten getrennt. So ist es weniger wahrscheinlich, dass Verstöße oder Fehlkonfigurationen bei einem Mandanten Ihre anderen Mandanten beeinträchtigen.
Sie benötigen:
- ein Erstellerprojekt und
ein Mandantenprojekt für jeden Ihrer Mandanten.
Console
So richten Sie Mandanten- und Erstellerprojekte mit der Google Cloud Console ein:
- Erstellen Sie ein Erstellerprojekt und ein Mandantenprojekt für jeden Ihrer Mandanten.
- Aktivieren Sie die Abrechnung für Ihre Mandanten- und Erstellerprojekte.
Aktivieren Sie die von App Lifecycle Manager benötigten APIs in Ihren Mandantenprojekten.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.Prüfen Sie, ob Ihre Mandantenprojekte Dienstkonten zum Starten mit den erforderlichen Berechtigungen haben.
Weitere Informationen finden Sie unter App Lifecycle Manager-Dienstkonten.
Sie haben Ihre Mandanten- und Erstellerprojekte eingerichtet. Nachdem Sie die Abrechnung für Ihre Ersteller- und Mandantenprojekte erstellt und aktiviert haben, können Sie Mandantenressourcen erstellen und Einheiten mit Mandanten verknüpfen.
gcloud
So richten Sie Ersteller- und Mandantenprojekte 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: Eine String-ID, die die Ersteller-Projekt-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: Eine String-ID, die die Ersteller-Projekt-ID darstellt.TENANT_PROJECT_ID: Ein String, der die Mandantenprojekt-ID darstellt.BILLING_ACCOUNT_ID: Die ID des Rechnungskontos, das Sie mit dem angegebenen Projekt verknüpfen möchten.
Weisen Sie dem Dienstkonto zum Starten für jedes Mandantenprojekt die erforderlichen IAM-Rollen (Identity and Access Management) 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: Eine String-ID, die die Ersteller-Projekt-ID darstellt.SERVICE_ACCOUNT: Das Dienstkonto, dem Sie im angegebenen Projekt Rollen zuweisen möchten.ROLE: Die zuzuweisende Identity and Access Management-Rolle.Sie müssen
gcloud projects add-iam-policy-bindingfür jede Rolle ausführen, die Sie dem angegebenen Dienstkonto zuweisen möchten (--role='roles/compute.admin', z. B.)
Sie haben Ihre Mandanten- und Erstellerprojekte eingerichtet. Nachdem Sie die Abrechnung für Ihre Ersteller- 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 darzustellen:
Rufen Sie in der Console Google Cloud **App Lifecycle Manager** > **Mandanten** auf.
Klicken Sie auf Erstellen.
Geben Sie im Feld Mandantenname einen Namen für Ihre Mandantenressource ein.
Optional: Geben Sie im Feld Kundenressource eine Kundenressource mit vom Kunden definierten 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.
Optional: Klicken Sie auf Label hinzufügen , um Ihrem Mandanten ein Schlüssel/Wert-Paar-Label hinzuzufügen.
Klicken Sie auf Erstellen , um Ihre 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 Verknüpfung dient in erster Linie als organisatorisches Tag, mit dem Sie festlegen können, welche Einheiten zu welchem Mandanten gehören.
Weitere Informationen zum Bereitstellen von Einheiten finden Sie unter MySQL-Instanz mit App Lifecycle Manager bereitstellen.
So verknüpfen Sie eine Einheit mit einem Mandanten:
Rufen Sie in der Google Cloud Console App Lifecycle Manager > Mandanten auf.
Klicken Sie auf den Namen des Mandanten, den Sie mit einer Einheit verknüpfen möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie im Bereich Verknüpfte Einheiten auf Einheit hinzufügen.
Wählen Sie die Einheiten aus, die Sie mit diesem Mandanten verknüpfen möchten.
Klicken Sie auf Fertig.
Klicken Sie auf Speichern.
Die ausgewählten Einheiten sind mit dem angegebenen Mandanten verknüpft.
Neue Einheit mit Variablen für Mandantenprojekte 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 App Lifecycle Manager > Einheiten auf.
Erstellen Sie eine neue Einheit, die mit Ihrer Einheitsart verknüpft ist.
Klicken Sie auf Bereitstellen.
Wählen Sie den Release aus, der für Ihre Mandanteneinheit bereitgestellt werden soll.
Wählen Sie das Dienstkonto zum Starten 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 gehen Sie so vor:
- 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 Mandantenprojekt-ID den Namen Ihres Mandantenprojekts an.
- Geben Sie die in Ihrer Terraform-Konfiguration definierten Eingabevariablen an. Wenn Sie in Ihrer Terraform-Konfiguration keine anderen Variablen definiert haben, überspringen Sie diesen Schritt.
- Prüfen Sie, ob die Variable
Klicken Sie auf Bereitstellen.
App Lifecycle Manager 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.
Einheit 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 App Lifecycle Manager > Einheiten auf.
Wählen Sie die Einheit aus, die mit Ihrer Einheitsart verknüpft ist.
Klicken Sie auf Bereitstellung bearbeiten.
Wählen Sie den Release aus, den Sie mit der aktualisierten Terraform-Konfiguration erstellt haben.
Wählen Sie das Dienstkonto zum Starten 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 gehen Sie so vor:
- 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 Mandantenprojekt-ID den Namen Ihres Mandantenprojekts an.
- Geben Sie die in Ihrer Terraform-Konfiguration definierten Eingabevariablen an. Wenn Sie in Ihrer Terraform-Konfiguration keine anderen Variablen definiert haben, überspringen Sie diesen Schritt.
- Prüfen Sie, ob die Variable
Klicken Sie auf Aktualisieren.
App Lifecycle Manager 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
- Informationen zum Verwalten von Abhängigkeiten zwischen Einheiten
- Weitere Informationen zur Verwendung von Variablen und zur Variabluzuordnung
- Erforderliche Berechtigungen für Dienstkonten prüfen