Ce document explique comment créer, configurer et gérer des contraintes de règles d'administration personnalisées pour les instances Memorystore for Valkey. Pour obtenir une présentation des règles d'administration personnalisées, consultez la page Règles d'administration personnalisées.
Le service de règles d'administration Google Cloud vous offre un contrôle centralisé et automatisé sur les ressources de votre organisation. En tant qu'administrateur des règles d'administration, vous pouvez définir des ensembles de restrictions appelées contraintes qui s'appliquent aux Google Cloud ressources et à leurs descendants dans la Google Cloud hiérarchie des ressources. Chaque ensemble de restrictions constitue une règle d'administration. Vous pouvez appliquer des règles d'administration au niveau de l'organisation, du dossier ou du projet.
Le service de règles d'administration fournit des contraintes prédéfinies pour divers Google Cloud services, y compris Memorystore for Valkey. Toutefois, si vous souhaitez exercer un contrôle plus précis et personnalisable sur des champs spécifiques restreints par vos règles d'administration, vous pouvez créer des contraintes personnalisées et les utiliser dans des règles d'administration.
En implémentant des contraintes de règles d'administration personnalisées, vous appliquez des configurations et des restrictions cohérentes. Vous vous assurez ainsi que vos instances respectent les bonnes pratiques de sécurité et les exigences réglementaires.
Vous pouvez utiliser des règles d'administration personnalisées pour autoriser ou refuser des ressources Memorystore for Valkey. Par exemple, si vous tentez de créer ou de mettre à jour une instance alors qu'une contrainte personnalisée est appliquée et que l'instance n'est pas conforme à la contrainte, Memorystore for Valkey ne crée ni ne met à jour l'instance. De plus, tout projet ajouté à une organisation ou à un dossier qui utilise une règle d'administration personnalisée hérite des contraintes de cette règle.
Héritage des règles
Par défaut, les règles d'administration sont héritées par les descendants des ressources sur lesquelles vous les appliquez. Par exemple, si vous appliquez une règle à un dossier, elle est Google Cloud appliquée à tous les projets du dossier. Pour mieux comprendre ce comportement et savoir comment le modifier, consultez la section Règles d'évaluation hiérarchique.
Avant de commencer
Avant de commencer à utiliser des règles d'administration personnalisées, remplissez les prérequis de cette section.
Utiliser la Google Cloud console, Google Cloud CLI et les API
Pour utiliser la Google Cloud console, gcloud CLI et les API, procédez comme suit :
- Dans la Google Cloud console, sur la page de sélection du projet, sélectionnez ou créez un Google Cloud projet.
- Assurez-vous que la facturation est activée pour votre projet. Découvrez comment vérifier si la facturation est activée sur un projet.
Installez et initialisez Google Cloud CLI (gcloud CLI).
Si vous avez installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant
gcloud components update. Pour accéder aux commandes gcloud CLI de Memorystore for Valkey, vous devez disposer d'au moins la version489.0.0de gcloud CLI.-
Activez l'API Memorystore for Valkey.
API Memorystore for Valkey - Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à gcloud CLI avec votre identité fédérée.
- Assurez-vous de connaître l'ID de votre organisation.
Attribuer des rôles
Pour utiliser des règles d'administration personnalisées pour vos instances, vous devez disposer de l'un de ces rôles IAM dans votre Google Cloud projet :
roles/memorystore.admin(rôle Administrateur Memorystore)roles/owner(rôle Propriétaire)roles/editor(rôle Éditeur)
De plus, vous devez accorder le roles/orgpolicy.policyAdmin (Administrateur des règles d'administration) rôle et
le memorystore.instances.create autorisation à votre compte utilisateur ou de service. Pour en savoir plus sur l'
attribution de rôles et d'autorisations, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Créer et configurer une contrainte personnalisée
Vous créez une contrainte personnalisée pour définir les ressources, les méthodes, les conditions et les actions qui y sont soumises. Elles sont spécifiques au service sur lequel vous appliquez la règle d'administration.
Vous définissez des conditions pour la contrainte personnalisée à l'aide du CEL (Common Expression Language). Pour en savoir plus sur la création de conditions dans des contraintes personnalisées à l'aide du CEL, consultez la section CEL de Créer et gérer des contraintes personnalisées.
Après avoir créé la contrainte personnalisée, vous la configurez pour la rendre disponible pour les règles d'administration de votre organisation. Pour ce faire, utilisez la Google Cloud console ou Google Cloud CLI.
Console
- Dans la console Google Cloud , accédez à la page Règles d'administration.
- Cliquez sur le menu de la Google Cloud barre de menu de la console, puis sélectionnez le projet, le dossier ou l'organisation pour lesquels vous créez et configurez une contrainte personnalisée.
- Sur la page Règles d'administration, cliquez sur Contrainte personnalisée.
Dans le champ Nom à afficher de la page Créer une contrainte personnalisée, saisissez un nom lisible par l'humain pour la contrainte. Ce nom est utilisé dans les messages d'erreur. Vous pouvez également l'utiliser à des fins d' identification et de débogage. Ce champ peut contenir jusqu'à 200 caractères.
Dans le champ ID de la contrainte, saisissez l'ID de la contrainte personnalisée. Cette contrainte doit commencer par
custom.et ne peut inclure que des lettres majuscules, minuscules ou des chiffres (par exemple,custom.restrictFiveShardInstances). La longueur maximale de cette valeur est de 70 caractères, sans compter le préfixe. Exemple :organizations/123456789/customConstraints/custom.allowConstraint.Dans le champ Description, saisissez une description lisible par l'humain pour la contrainte. Cette description est utilisée comme message d'erreur en cas de non-respect de la règle d'administration. Incluez des informations sur les raisons du non-respect de la règle et sur la façon de résoudre ce cas de non-respect. Ce champ peut contenir jusqu'à 2 000 caractères.
- Dans le menu Type de ressource , sélectionnez le nom (pas l'URI) de
la ressource Memorystore for Valkey contenant l'objet et le champ
que vous souhaitez restreindre. Exemple :
memorystore.googleapis.com/Instance. - Dans le menu Méthode d'application, sélectionnez l'une des options suivantes
:
- Appliquer lors de la création : la contrainte n'est appliquée que lorsque vous créez des instances Memorystore for Valkey.
- Appliquer lors de la création et de la mise à jour : la contrainte est appliquée lors de la création et de la mise à jour des instances.
Pour définir une condition CEL écrite pour une représentation d'une ressource de service compatible, procédez comme suit :
- Dans le champ Condition, cliquez sur Modifier.
Dans la boîte de dialogue Ajouter une condition, saisissez la condition CEL. Exemple :
resource.shardCount == 5.Cette condition ne doit pas comporter plus de 1 000 caractères. Pour en savoir plus sur les ressources disponibles pour l'écriture de conditions, consultez la section Contraintes et opérations personnalisées compatibles.
- Cliquez sur Enregistrer.
- Dans la section Action, sélectionnez l'une des options suivantes
qui représente l'action à effectuer si la condition est remplie :
- Autoriser : si la condition renvoie "true", l' opération de création ou de mise à jour de l'instance est autorisée. Tous les autres cas, à l'exception de ceux explicitement listés dans la condition, sont bloqués.
- Refuser : si la condition renvoie "true", l' opération de création ou de mise à jour de l'instance est bloquée.
- Dans la section Configuration YAML, vérifiez que la configuration YAML de la contrainte personnalisée est correcte.
- Cliquez sur Créer une contrainte.
gcloud
Pour créer une contrainte personnalisée, créez un fichier YAML au format suivant :
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
Effectuez les remplacements suivants :
ORGANIZATION_ID: ID de votre organisation, par exemple123456789.CONSTRAINT_NAME: nom de la contrainte personnalisée. Cette contrainte doit commencer parcustom.et ne peut inclure que des lettres majuscules, minuscules ou des chiffres (par exemple,custom.restrictFiveShardInstances). La longueur maximale de cette valeur est de 70 caractères, sans compter le préfixe. Par exemple :organizations/123456789/customConstraints/custom.allowConstraint.RESOURCE_NAME: nom (pas l'URI) de la ressource Memorystore for Valkey contenant l'objet et le champ que vous souhaitez restreindre. Exemple :memorystore.googleapis.com/Instance.CONDITION: condition CEL écrite pour une représentation d'une ressource de service compatible. Par exemple:"resource.shardCount == 5".Ce champ ne doit pas comporter plus de 1 000 caractères. Pour en savoir plus sur les ressources disponibles pour l'écriture de conditions, consultez la section Contraintes et opérations personnalisées compatibles.
ACTION: action à effectuer si la condition est remplie. Cette action peut être l'une des valeurs suivantes :ALLOW: si la condition renvoie "true", l'opération de création ou de mise à jour de l'instance est autorisée. Tous les autres cas à l'exception de ceux explicitement listés dans la condition, sont bloqués.DENY: si la condition renvoie "true", l'opération de création ou de mise à jour de l'instance est bloquée.
DISPLAY_NAME: nom lisible par l'humain de la contrainte. Ce nom est utilisé dans les messages d'erreur. Vous pouvez également l'utiliser à des fins d' identification et de débogage. Ce champ peut contenir jusqu'à 200 caractères.DESCRIPTION: description lisible par l'humain de la contrainte. Cette description est utilisée comme message d'erreur en cas de non-respect de la règle d'administration. Incluez des informations sur les raisons du non-respect de la règle et sur la façon de résoudre ce cas de non-respect. Ce champ peut contenir jusqu'à 2 000 caractères.
Pour configurer une contrainte personnalisée, utilisez la
gcloud org-policies set-custom-constraintcommande :gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Remplacez CONSTRAINT_PATH par le chemin d'accès complet au fichier de contrainte personnalisée (par exemple,
/home/user/customconstraint.yaml).Une fois la contrainte personnalisée configurée, elle est disponible en tant que règle d'administration dans la liste des Google Cloud règles d'administration.
Pour vérifier que la contrainte personnalisée existe, utilisez la
gcloud org-policies list-custom-constraintscommande :gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Appliquer une règle d'administration personnalisée
Vous pouvez appliquer une contrainte en créant une règle d'administration qui y fait référence, puis en appliquant cette règle à une ressource Google Cloud .Console
- Dans la console Google Cloud , accédez à la page Règles d'administration.
- Dans le sélecteur de projets, choisissez le projet pour lequel vous souhaitez définir la règle d'administration.
- Dans la liste de la page Règles d'administration, sélectionnez votre contrainte pour afficher la page Détails de la règle propres à cette contrainte.
- Pour configurer la règle d'administration pour cette ressource, cliquez sur Gérer la règle.
- Sur la page Modifier la stratégie, sélectionnez Remplacer la stratégie parente.
- Cliquez sur Ajouter une règle.
- Dans la section Application, indiquez si cette règle d'administration est appliquée ou non.
- Facultatif : pour rendre la règle d'administration conditionnelle à un tag, cliquez sur Ajouter une condition. Notez que si vous ajoutez une règle conditionnelle à une règle d'administration , vous devez ajouter au moins une règle non conditionnelle, sinon la règle ne pourra pas être enregistrée. Pour en savoir plus, consultez la section Délimiter les règles d'administration avec des tags.
- Cliquez sur Tester les modifications pour simuler l'effet de la règle d'administration. Pour en savoir plus, consultez Tester les modifications apportées aux règles d'administration à l'aide de Policy Simulator.
- Pour appliquer la règle d'administration en mode dry run, cliquez sur Définir la règle de dry run. Pour en savoir plus, consultez Tester les règles d'administration.
- Une fois que vous avez vérifié que la règle d'administration en mode dry run fonctionne comme prévu, définissez la règle active en cliquant sur Définir la règle.
gcloud
- Pour créer une règle d'administration avec des règles booléennes, créez un fichier YAML de règle qui fait référence à la contrainte :
-
PROJECT_ID: projet sur lequel vous souhaitez appliquer votre contrainte. -
CONSTRAINT_NAME: nom que vous avez défini pour la contrainte personnalisée. Exemple :custom.restrictFiveShardInstances. -
Pour appliquer la règle d'administration en mode dry run, exécutez la commande suivante avec le flag
dryRunSpec: -
Après avoir vérifié que la règle d'administration en mode dry run fonctionne comme prévu, définissez la règle active avec la commande
org-policies set-policyet le flagspec:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
Remplacez les éléments suivants :
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
Remplacez POLICY_PATH par le chemin d'accès complet au fichier YAML de votre règle d'administration. L'application de la règle peut prendre jusqu'à 15 minutes.
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
Remplacez POLICY_PATH par le chemin d'accès complet au fichier YAML de votre règle d'administration. L'application de la règle peut prendre jusqu'à 15 minutes.
Tester une contrainte personnalisée
Pour tester une contrainte de règle d'administration personnalisée pour Memorystore for Valkey, essayez de créer ou de mettre à jour une instance qui n'est pas conforme à la règle appliquée.
Par exemple, supposons qu'une contrainte vous empêche de créer une instance si elle comporte cinq fragments. Vous pouvez tester cette contrainte en essayant de créer l'instance et en définissant le nombre de fragments sur cinq. Comme l'instance n'est pas conforme à la contrainte, Memorystore for Valkey ne la crée pas.
Contraintes et opérations personnalisées compatibles
Les champs de contrainte personnalisée Memorystore for Valkey suivants sont disponibles lorsque vous créez ou mettez à jour une instance :
- Instance Memorystore for Valkey
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
Exemple de contrainte personnalisée
Le tableau suivant fournit un exemple de contrainte personnalisée qui empêche les utilisateurs de créer ou de mettre à jour des instances Memorystore for Valkey si elles comportent cinq fragments :
| Description | Syntaxe de la contrainte |
|---|---|
| Restreindre la création ou la mise à jour d'instances comportant cinq fragments |
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. |
Étape suivante
- En savoir plus sur les règles d'administration.
- En savoir plus sur la création et la gestion de contraintes personnalisées.
- En savoir plus sur la création et la gestion de règles d'administration.