In diesem Dokument wird beschrieben, wie Sie benutzerdefinierte Einschränkungen für Organisationsrichtlinien für Memorystore for Valkey-Instanzen erstellen, einrichten und verwalten. Eine Übersicht über benutzerdefinierte Organisationsrichtlinien finden Sie unter Benutzerdefinierte Organisationsrichtlinien.
Mit dem Google Cloud Organisationsrichtliniendienst von können Sie die Ressourcen Ihrer Organisation zentral und programmatisch steuern. Als Administrator für Organisationsrichtlinien können Sie eine Organisationsrichtlinie definieren, also eine Reihe von Beschränkungen, die als Einschränkungen bezeichnet werden und für Google Cloud Ressourcen und nachfolgende Elemente dieser Ressourcen in der Google Cloud Ressourcenhierarchie gelten. Sie können Organisationsrichtlinien auf Organisationsebene, Ordnerebene oder Projektebene erzwingen.
Der Organisationsrichtliniendienst bietet vordefinierte Einschränkungen für verschiedene Google Cloud Dienste, einschließlich Memorystore for Valkey. Wenn Sie jedoch eine detailliertere, anpassbare Steuerung der spezifischen Felder wünschen, die in Ihren Organisationsrichtlinien eingeschränkt werden, können Sie benutzerdefinierte Einschränkungen erstellen und diese Einschränkungen in Organisationsrichtlinien verwenden.
Durch die Implementierung benutzerdefinierter Einschränkungen für Organisationsrichtlinien erzwingen Sie einheitliche Konfigurationen und Einschränkungen. So wird sichergestellt, dass Ihre Instanzen den Best Practices für die Sicherheit und den gesetzlichen Anforderungen entsprechen.
Mit benutzerdefinierten Organisationsrichtlinien können Sie Memorystore for Valkey-Ressourcen zulassen oder ablehnen. Wenn Sie beispielsweise versuchen, eine Instanz zu erstellen oder zu aktualisieren, während eine benutzerdefinierte Einschränkung erzwungen wird, und die Instanz nicht mit der Einschränkung konform ist, erstellt oder aktualisiert Memorystore for Valkey die Instanz nicht. Außerdem erben alle Projekte, die einer Organisation oder einem Ordner hinzugefügt werden, in der bzw. dem eine benutzerdefinierte Organisationsrichtlinie verwendet wird, die Einschränkungen dieser Richtlinie.
Übernahme von Richtlinien
Standardmäßig werden Organisationsrichtlinien von den Nachfolgerelementen der Ressourcen übernommen, für die Sie die Richtlinie erzwingen. Wenn Sie beispielsweise eine Richtlinie für einen Ordner erzwingen, erzwingt die Richtlinie für alle Projekte in dem Ordner. Google Cloud Weitere Informationen zu diesem Verhalten und zu dessen Änderung finden Sie unter Regeln für die Evaluierung der Hierarchie.
Hinweis
Bevor Sie benutzerdefinierte Organisationsrichtlinien verwenden, müssen Sie die Voraussetzungen in diesem Abschnitt erfüllen.
Google Cloud Console, Google Cloud CLI und APIs verwenden
So verwenden Sie die Google Cloud Console, die gcloud CLI und APIs:
- Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein -Projekt aus oder erstellen Sie eines. Google Cloud
- Die Abrechnung für Ihr Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist.
Installieren und initialisieren Sie die Google Cloud CLI (gcloud CLI).
Wenn Sie die gcloud CLI installiert haben, prüfen Sie mit
gcloud components update, ob Sie die neueste Version haben. Für den Zugriff auf die gcloud CLI-Befehle von Memorystore for Valkey benötigen Sie mindestens die gcloud CLI-Version489.0.0.-
Aktivieren Sie die Memorystore for Valkey API.
Memorystore for Valkey API - Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
- Sie müssen die ID Ihrer Organisation kennen.
Rollen zuweisen
Wenn Sie benutzerdefinierte Organisationsrichtlinien für Ihre Instanzen verwenden möchten, benötigen Sie eine der folgenden IAM-Rollen in Ihrem Google Cloud Projekt:
roles/memorystore.admin(Rolle „Memorystore-Administrator“)roles/owner(Rolle „Inhaber“)roles/editor(Rolle „Bearbeiter“)
Außerdem müssen Sie Ihrem Nutzer- oder Dienstkonto die Rolle roles/orgpolicy.policyAdmin (Administrator für Organisationsrichtlinien) und
die Berechtigung memorystore.instances.create gewähren. Weitere Informationen zum
Zuweisen von Rollen und Berechtigungen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Benutzerdefinierte Einschränkung erstellen und einrichten
Sie erstellen eine benutzerdefinierte Einschränkung, um die Ressourcen, Methoden, Bedingungen und Aktionen zu definieren, die der Einschränkung unterliegen. Diese sind spezifisch für den Dienst, für den Sie die Organisationsrichtlinie erzwingen.
Sie definieren Bedingungen für die benutzerdefinierte Einschränkung mithilfe der Common Expression Language (CEL). Weitere Informationen zum Erstellen von Bedingungen in benutzerdefinierten Einschränkungen mit CEL finden Sie im Abschnitt CEL unter Benutzerdefinierte Einschränkungen erstellen und verwalten.
Nachdem Sie die benutzerdefinierte Einschränkung erstellt haben, richten Sie sie ein, um sie für Organisationsrichtlinien in Ihrer Organisation verfügbar zu machen. Sie können dazu die Google Cloud Console oder die Google Cloud CLI verwenden.
Console
- Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
- Klicken Sie in der Menüleiste der Google Cloud Console auf das Menü und wählen Sie dann das Projekt, den Ordner oder die Organisation aus, für das bzw. die Sie eine benutzerdefinierte Einschränkung erstellen und einrichten möchten.
- Klicken Sie auf der Seite Organisationsrichtlinien auf Benutzerdefinierte Einschränkung.
Geben Sie auf der Seite Benutzerdefinierte Einschränkung erstellen im Feld Anzeigename einen nutzerfreundlichen Namen für die Einschränkung ein. Dieser Name wird in Fehlermeldungen verwendet und kann auch zur Identifizierung und Fehlerbehebung dienen. Dieses Feld kann bis zu 200 Zeichen enthalten.
Geben Sie im Feld Einschränkungs-ID die ID der benutzerdefinierten Einschränkung ein. Diese Einschränkung muss mit
custom.beginnen und darf nur Großbuchstaben, Kleinbuchstaben oder Ziffern enthalten (z. B.custom.restrictFiveShardInstances). Die maximale Länge dieses Werts beträgt 70 Zeichen, ohne das Präfix. Beispiel:organizations/123456789/customConstraints/custom.allowConstraint.Geben Sie im Feld Beschreibung eine nutzerfreundliche Beschreibung der Einschränkung ein. Diese Beschreibung wird als Fehlermeldung verwendet, wenn gegen die Organisationsrichtlinie verstoßen wird. Geben Sie Details dazu an, warum der Richtlinienverstoß aufgetreten ist und wie er behoben werden kann. Dieses Feld kann bis zu 2.000 Zeichen enthalten.
- Wählen Sie im Menü Ressourcentyp den Namen (nicht den URI) der Memorystore for Valkey-Ressource aus, die das Objekt und das Feld enthält, das Sie einschränken möchten. Beispiel:
memorystore.googleapis.com/Instance. - Wählen Sie im Menü Erzwingungsmethode eine der folgenden
Optionen aus:
- Beim Erstellen erzwingen: Die Einschränkung wird nur erzwungen, wenn Sie Memorystore for Valkey-Instanzen erstellen.
- Beim Erstellen und Aktualisieren erzwingen: Die Einschränkung wird erzwungen wenn Sie Instanzen erstellen und aktualisieren.
So definieren Sie eine CEL-Bedingung, die für eine Darstellung einer unterstützten Dienstressource geschrieben wird:
- Klicken Sie im Feld Bedingung auf Bearbeiten.
Geben Sie im Dialogfeld Bedingung hinzufügen die CEL-Bedingung ein. Zum Beispiel:
resource.shardCount == 5.Diese Bedingung kann maximal 1.000 Zeichen lang sein. Weitere Informationen zu den verfügbaren Ressourcen, auf die Bedingungen geschrieben werden können, finden Sie unter Unterstützte benutzerdefinierte Einschränkungen und Vorgänge.
- Klicken Sie auf Speichern.
- Wählen Sie im Abschnitt Aktion eine der folgenden Optionen aus,
die die Aktion darstellt, die ausgeführt werden soll, wenn die Bedingung erfüllt ist:
- Zulassen: Wenn die Bedingung als „true“ ausgewertet wird, ist der Vorgang zum Erstellen oder Aktualisieren der Instanz zulässig. Alle anderen Fälle, die nicht explizit in der Bedingung aufgeführt sind, werden blockiert.
- Ablehnen: Wenn die Bedingung als „true“ ausgewertet wird, wird der Vorgang zum Erstellen oder Aktualisieren der Instanz blockiert.
- Prüfen Sie im Abschnitt YAML-Konfiguration, ob die YAML Konfiguration für die benutzerdefinierte Einschränkung korrekt ist.
- Klicken Sie auf Einschränkung erstellen.
gcloud
Zum Erstellen einer benutzerdefinierten Einschränkung erstellen Sie eine YAML-Datei im folgenden Format:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: - memorystore.googleapis.com/RESOURCE_NAME methodTypes: - CREATE - UPDATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
Ersetzen Sie die folgenden Werte:
ORGANIZATION_ID: Ihre Organisations-ID, z. B.123456789.CONSTRAINT_NAME: Der Name der benutzerdefinierten Einschränkung. Diese Einschränkung muss mitcustom.beginnen und darf nur Großbuchstaben, Kleinbuchstaben oder Ziffern enthalten (z. B.custom.restrictFiveShardInstances). Die maximale Länge dieses Werts beträgt 70 Zeichen, ohne das Präfix. Beispiel:organizations/123456789/customConstraints/custom.allowConstraint.RESOURCE_NAME: der Name (nicht der URI) der Memorystore for Valkey-Ressource, die das Objekt und das Feld enthält, das Sie einschränken möchten. Beispiel:memorystore.googleapis.com/Instance.CONDITION: Eine CEL-Bedingung, die für eine Darstellung einer unterstützten Dienstressource geschrieben wird. Beispiel:"resource.shardCount == 5".Dieses Feld hat eine maximale Länge von 1.000 Zeichen. Weitere Informationen zu den verfügbaren Ressourcen, auf die Bedingungen geschrieben werden können, finden Sie unter Unterstützte benutzerdefinierte Einschränkungen und Vorgänge.
ACTION: Die Aktion, die ausgeführt werden soll, wenn die Bedingung erfüllt ist. Folgende Werte sind möglich:ALLOW: Wenn die Bedingung als „true“ ausgewertet wird, ist der Vorgang zum Erstellen oder Aktualisieren der Instanz zulässig. Alle anderen Fälle, die nicht explizit in der Bedingung aufgeführt sind, werden blockiert.DENY: Wenn die Bedingung als „true“ ausgewertet wird, wird der Vorgang zum Erstellen oder Aktualisieren der Instanz blockiert.
DISPLAY_NAME: Ein nutzerfreundlicher Name für die Einschränkung. Dieser Name wird in Fehlermeldungen verwendet und kann auch zur Identifizierung und Fehlerbehebung dienen. Dieses Feld kann bis zu 200 Zeichen enthalten.DESCRIPTION: Eine nutzerfreundliche Beschreibung der Einschränkung. Diese Beschreibung wird als Fehlermeldung verwendet, wenn gegen die Organisation richtlinie verstoßen wird. Geben Sie Details dazu an, warum der Richtlinienverstoß aufgetreten ist und wie er behoben werden kann. Dieses Feld kann bis zu 2.000 Zeichen enthalten.
Verwenden Sie zum Einrichten einer benutzerdefinierten Einschränkung den
gcloud org-policies set-custom-constraintBefehl:gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Ersetzen Sie CONSTRAINT_PATH durch den vollständigen Pfad zur Datei der benutzerdefinierten Einschränkung (z. B.
/home/user/customconstraint.yaml).Nachdem Sie die benutzerdefinierte Einschränkung eingerichtet haben, ist sie als Organisationsrichtlinie in der Liste der Google Cloud Organisations richtlinien verfügbar.
Prüfen Sie mit dem
gcloud org-policies list-custom-constraintsBefehl, ob die benutzerdefinierte Einschränkung vorhanden ist:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Benutzerdefinierte Organisationsrichtlinie erzwingen
Sie können eine Beschränkung erzwingen, indem Sie eine Organisationsrichtlinie erstellen, die darauf verweist, und diese Organisationsrichtlinie dann auf eine Ressource von Google Cloud anwenden.Console
- Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.
- Wählen Sie in der Projektauswahl das Projekt aus, für das Sie die Organisationsrichtlinie festlegen möchten.
- Wählen Sie auf der Seite Organisationsrichtlinien die gewünschte Einschränkung aus, um die Seite Richtliniendetails aufzurufen.
- Zum Konfigurieren der Organisationsrichtlinie für diese Ressource klicken Sie auf Richtlinie verwalten.
- Wählen Sie auf der Seite Richtlinie bearbeiten die Option Richtlinie der übergeordneten Ressource überschreiben aus.
- Klicken Sie auf Regel hinzufügen.
- Wählen Sie im Abschnitt Erzwingung aus, ob diese Organisationsrichtlinie erzwungen werden soll oder nicht.
- Optional: Klicken Sie auf Bedingung hinzufügen, um die Organisationsrichtlinie von einem Tag abhängig zu machen. Wenn Sie einer Organisationsrichtlinie eine bedingte Regel hinzufügen, müssen Sie mindestens eine unbedingte Regel hinzufügen, da die Richtlinie sonst nicht gespeichert werden kann. Weitere Informationen finden Sie unter Organisationsrichtlinien mit Tags eingrenzen.
- Klicken Sie auf Änderungen testen , um die Auswirkungen der Organisationsrichtlinie zu simulieren. Weitere Informationen finden Sie unter Änderungen an Organisationsrichtlinien mit dem Policy Simulator testen.
- Klicken Sie auf Probelaufrichtlinie festlegen, um die Organisationsrichtlinie im Probelaufmodus zu erzwingen. Weitere Informationen finden Sie unter Organisationsrichtlinien testen.
- Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie gewünscht funktioniert, legen Sie die Live-Richtlinie fest, indem Sie auf Richtlinie festlegen klicken.
gcloud
- Wenn Sie eine Organisationsrichtlinie mit booleschen Regeln erstellen möchten, erstellen Sie eine YAML-Richtliniendatei, die auf die Einschränkung verweist:
-
PROJECT_ID: Das Projekt, für das Sie die Einschränkung erzwingen möchten. -
CONSTRAINT_NAME: Der Name, den Sie für Ihre benutzerdefinierte Einschränkung definiert haben. Beispiel:custom.restrictFiveShardInstances. -
Führen Sie den folgenden Befehl mit dem
dryRunSpecFlag aus, um die Organisationsrichtlinie im Probelaufmodus zu erzwingen: -
Nachdem Sie geprüft haben, ob die Organisationsrichtlinie im Probelaufmodus wie gewünscht funktioniert, legen Sie die
Live-Richtlinie mit dem
org-policies set-policyBefehl und demspecFlag fest:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
Ersetzen Sie Folgendes:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
Ersetzen Sie POLICY_PATH durch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie. Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
Ersetzen Sie POLICY_PATH durch den vollständigen Pfad zur YAML-Datei Ihrer Organisationsrichtlinie. Es kann bis zu 15 Minuten dauern, bis die Richtlinie wirksam wird.
Benutzerdefinierte Einschränkung testen
Wenn Sie eine benutzerdefinierte Einschränkung für Organisationsrichtlinien für Memorystore for Valkey testen möchten, versuchen Sie, eine Instanz zu erstellen oder zu aktualisieren, die nicht der erzwungenen Richtlinie entspricht.
Angenommen, eine Einschränkung verhindert, dass Sie eine Instanz erstellen, wenn sie fünf Shards hat. Sie können diese Einschränkung testen, indem Sie versuchen, die Instanz zu erstellen und die Anzahl der Shards auf fünf festzulegen. Da die Instanz nicht mit der Einschränkung konform ist, erstellt Memorystore for Valkey die Instanz nicht.
Unterstützte benutzerdefinierte Einschränkungen und Vorgänge
Die folgenden benutzerdefinierten Einschränkungsfelder für Memorystore for Valkey sind verfügbar, wenn Sie eine Instanz erstellen oder aktualisieren:
- Memorystore for Valkey-Instanz
resource.nameresource.replicaCountresource.shardCountresource.nodeTyperesource.engineVersionresource.moderesource.kmsKeyresource.simulateMaintenanceEventresource.engineConfigsresource.persistenceConfig.moderesource.persistenceConfig.rdbConfig.rdbSnapshotPeriodresource.persistenceConfig.rdbConfig.rdbSnapshotStartTimeresource.persistenceConfig.aofConfig.appendFsyncresource.deletionProtectionEnabledresource.maintenancePolicy.weeklyMaintenanceWindow.dayresource.maintenancePolicy.weeklyMaintenanceWindow.startTimeresource.automatedBackupConfig.automatedBackupModeresource.automatedBackupConfig.fixedFrequencyScheduleresource.automatedBackupConfig.retentionresource.crossInstanceReplicationConfig.instanceRoleresource.crossInstanceReplicationConfig.primaryInstanceresource.crossInstanceReplicationConfig.secondaryInstancesresource.crossInstanceReplicationConfig.primaryInstance.instanceresource.crossInstanceReplicationConfig.secondaryInstances.instanceresource.zoneDistributionConfig.zoneresource.zoneDistributionConfig.moderesource.transitEncryptionModeresource.authorizationModeresource.serverCaModeresource.managedBackupSource.backupresource.serverCaPool
Beispiel für eine benutzerdefinierte Einschränkung
Die folgende Tabelle enthält ein Beispiel für eine benutzerdefinierte Einschränkung, die verhindert, dass Nutzer Memorystore for Valkey-Instanzen erstellen oder aktualisieren, wenn die Instanzen fünf Shards haben:
| Beschreibung | Einschränkungssyntax |
|---|---|
| Erstellen oder Aktualisieren von Instanzen mit fünf Shards einschränken |
name: organizations/ORGANIZATION_ID/customConstraints/custom.restrictFiveShardInstances resourceTypes: - memorystore.googleapis.com/Instance methodTypes: - CREATE - UPDATE condition: "resource.shardCount == 5" actionType: DENY displayName: Restrict five-shard Memorystore for Valkey instances description: Prevent users from creating or updating instances that have five shards. |
Nächste Schritte
- Weitere Informationen zu Organisationsrichtlinien.
- Weitere Informationen zum Erstellen und Verwalten benutzerdefinierter Einschränkungen
- Weitere Informationen zum Erstellen und Verwalten von Organisationsrichtlinien