Einheiten mit Mandanten verknüpfen
In dieser Kurzanleitung ändern Sie Ihr App-Angebot, um die bereitgestellte VM-Einheit mit einer Mandantenressource zu verknüpfen und die VM in einem dedizierten Mandantenprojekt bereitzustellen, das Ihrem Mandanten gehört.
Dieser Ansatz verbessert die Ressourcenisolation, sodass Sie Ressourcen für jeden Mandanten separat verwalten und die Sicherheit und Compliance für Ihr App-Angebot verbessern können.
Wir bauen auf dem Szenario aus der Kurzanleitung MySQL-Instanz mit App Lifecycle Manager bereitstellen auf und ändern es so, dass die bereitgestellte VM-Einheit mit einer Mandantenressource verknüpft und die VM in einem dedizierten Projekt bereitgestellt wird, das dem Mandanten gehört:
- Erstellen Sie eine Mandantenressource in App Lifecycle Manager.
- Verknüpfen Sie eine VM mit der Mandantenressource.
- Konfigurieren Sie App Lifecycle Manager und Ihre Terraform-Konfiguration, um Ressourcen in einem separaten Mandantenprojekt bereitzustellen.
- Beheben Sie häufige Probleme mit Berechtigungen und der API-Aktivierung bei der projektübergreifenden Bereitstellung.
Am Ende dieser Kurzanleitung haben Sie die Grundlage für ein App-Angebot mit mehreren Mandanten geschaffen, mit dem Sie Konfigurationen und Richtlinien auf Mandantenebene festlegen können, indem Sie Mandanten erstellen und sie mit Einheiten verknüpfen.
Hinweis
Bevor Sie Mandanten erstellen oder sie mit Einheiten verknüpfen, sollten Sie die Grundlagen des App Lifecycle Manager Ökosystems kennen und ein App-Angebot erstellen.
-
Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie noch kein Google Cloud-Nutzer sind, erstellen Sie ein Konto, um zu sehen, wie sich unsere Produkte in realen Szenarien schlagen. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Verify that billing is enabled for your Google Cloud project.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Verify that billing is enabled for your Google Cloud project.
Stellen Sie eine MySQL-Instanz mit App Lifecycle Manager bereit, einschließlich der Erstellung einer Terraform-Konfiguration, eines Artifact Registry-Repositorys, eines App-Angebots, einer Einheitsart, einer Einheit und von Komponenten (einschließlich
terraform-files.zip).- Prüfen Sie, ob die im Abschnitt Hinweis der Kurzanleitung aufgeführten APIs in Ihrem Producer-Projekt aktiviert sind.
- Prüfen Sie, ob Sie die erforderlichen Dienstkonten und IAM-Rollen 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 Producer-Projekt gewährt wurden.
Ihr Producer-Projekt und alle Mandantenprojekte müssen erstellt werden, bevor Sie Ihre Mandantenressourcen erstellen und verknüpfen. Weitere Informationen finden Sie unter Mandantenprojekt einrichten.
Mandantenressource erstellen und verknüpfen
Mit Mandanten können Sie Einheitsressourcen gruppieren. Erstellen Sie eine Mandantenressource im App-Angebot Ihres Producer-Projekts, um Ihren Kunden darzustellen:
Rufen Sie in der Google Cloud Console App Lifecycle Manager > Mandanten auf.
Klicken Sie auf Erstellen.
Geben Sie auf der Seite Mandanten erstellen im Feld Mandantenname
vm-quickstart-tenantein.Wählen Sie im Feld App-Angebot
vm-quickstart-saas-offeringaus.Wählen Sie im Drop-down-Menü Region die Option
us-central1aus.Klicken Sie auf Einheit hinzufügen. Ein Abschnitt Neue Einheit wird angezeigt.
Wählen Sie im Drop-down-Menü Einheit die Einheit
projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unitaus.Klicken Sie auf Fertig , um die Ressource
vm-quickstart-unitmit der Ressourcevm-quickstart-tenantzu verknüpfen.Klicken Sie auf Erstellen , um die Mandantenressource zu erstellen. Sie haben die Ressource
vm-quickstart-tenanterfolgreich erstellt und mit der Ressourcevm-quickstart-unitverknüpft. Diese Verknüpfung dient in erster Linie als organisatorisches Tag in der Google Cloud Console, mit dem Sie erkennen können, welche Einheiten zu welchem Mandanten gehören.
Mandantenrelease erstellen
Rufen Sie in der Google Cloud Console App Lifecycle Manager > Releases auf.
Klicken Sie auf der Seite Releases auf Erstellen.
Geben Sie auf der Seite Release erstellen im Feld Releasename
vm-quickstart-tenant-releaseein.Wählen Sie im Feld Einheitsart
vm-quickstart-unit-kindaus. Klicken Sie auf Weiter.Klicken Sie im Schritt Blaupause auswählen auf die Schaltfläche Vorhandenes Image aus Artifact Registry auswählen.
Klicken Sie im Schritt Blaupause speichern auf Durchsuchen und wählen Sie das Artefakt aus, das mit
vm-quickstart-tenant-blueprintverknüpft ist. Klicken Sie auf Weiter.Klicken Sie auf Erstellen. Sie haben die Ressource
vm-quickstart-tenant-releaseerfolgreich erstellt.
Mandantenprojekt erstellen und Einheit bereitstellen
In der Kurzanleitung MySQL-Instanz mit App Lifecycle Manager bereitstellen stellen Sie App Lifecycle Manager-Ressourcen im selben Projekt bereit, das Ihre App-Angebotskonfiguration enthält.
In dieser Kurzanleitung leiten Sie die Ressourcenbereitstellung stattdessen in das Mandanten projekt um.
Sie müssen während der Einheitsbereitstellung die geänderten Variablen tenant_project_id und tenant_project_number übergeben.
Erstellen Sie ein Mandantenprojekt, in dem Sie die Dateien
terraform-vm.zipbereitstellen:gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"Aktivieren Sie APIs und gewähren Sie IAM-Rollen für das Mandantenprojekt. Wenn Sie Einheiten in Ihrem Mandantenprojekt bereitstellen möchten, müssen Sie die Compute Engine API aktivieren und IAM-Rollen für Ihr Mandantenprojekt gewähren.
APIs in Ihrem Mandantenprojekt aktivieren
Aktivieren Sie die Compute Engine API im Mandantenprojekt mit der Google Cloud Console:
Rufen Sie die Projektauswahl auf.
Klicken Sie auf Projekt auswählen.
Wählen Sie
quickstart-tenant-projectaus.Aktivieren Sie die Compute Engine API, falls sie noch nicht aktiviert ist.
Erforderliche Rollen zum Aktivieren von APIs
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 „Administrator der Dienstnutzung“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen.Achten Sie darauf, dass Sie die folgende Rolle oder die folgenden Rollen für das Projekt haben: roles/compute.admin
Rollen prüfen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
-
Suchen Sie in der Spalte Hauptkonto alle Zeilen, in denen Sie oder eine Gruppe, zu der Sie gehören, angegeben sind. Wenden Sie sich an Ihren Administrator, um herauszufinden, zu welchen Gruppen Sie gehören.
- Prüfen Sie in allen Zeilen, in denen Sie angegeben sind oder die Sie enthalten, in der Spalte Rolle , ob die Liste der Rollen die erforderlichen Rollen enthält.
Rollen zuweisen
-
Rufen Sie in der Google Cloud Console die Seite IAM auf.
IAM aufrufen - Wählen Sie das Projekt aus.
- Klicken Sie auf „“ Zugriffsrechte erteilen.
-
Geben Sie im Feld Neue Hauptkonten Ihre Nutzer-ID ein. Das ist in der Regel die E‑Mail-Adresse eines Google-Kontos.
- Klicken Sie auf Rolle auswählen und suchen Sie nach der Rolle.
- Klicken Sie auf Add another role, wenn Sie weitere Rollen zuweisen möchten.
- Klicken Sie auf Speichern.
-
Einheit mit Variablen für das Mandantenprojekt bereitstellen
Stellen Sie in Ihrem Producer-Projekt eine neue Einheit mit den Eingabevariablen Ihres Mandantenprojekts bereit:
Rufen Sie die Projektauswahl auf.
Klicken Sie auf Projekt auswählen.
Wählen Sie Ihr Producer-Projekt aus.
Rufen Sie in der Google Cloud Console App Lifecycle Manager > Einheiten auf.
Wählen Sie die Ressource
vm-quickstart-unitaus.Klicken Sie auf Bereitstellen.
Wählen Sie die Ressource
vm-quickstart-tenant-releaseaus.Wählen Sie das Dienstkonto zum Starten aus, dem Sie Berechtigungen im Mandantenprojekt gewährt haben.
Im Abschnitt Eingabevariablen:
- Die Variable
tenant_project_idwird so aufgeführt, wie Sie sie invariables.tfdefiniert haben. - Geben Sie im Feld Mandantenprojekt-ID
quickstart-tenant-projectein.
- Die Variable
Klicken Sie auf Bereitstellen.
App Lifecycle Manager löst mit dem angegebenen Dienstkonto zum Starten Infrastructure Manager aus. Infrastructure Manager liest die Variable tenant_project_id und erstellt die VM in diesem Mandantenprojekt.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen in Rechnung gestellt werden.
- Wechseln Sie in der Google Cloud -Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie auf Löschen.
- Geben Sie an der Eingabeaufforderung die Projekt-ID ein und klicken Sie auf Beenden.
Nächste Schritte
- Weitere Informationen zum Einrichten von Mandantenprojekten und -ressourcen
- Verwenden Sie Variablen und Variablenzuordnung für eine ausgefeilte Orchestrierung von App-Angeboten (einschließlich automatisierter Ressourcen bereitstellung).