Questo documento descrive come creare, configurare e gestire i vincoli personalizzati delle policy dell'organizzazione per le istanze Memorystore for Valkey. Per una panoramica delle policy dell'organizzazione personalizzate, consulta Policy dell'organizzazione personalizzate.
Il servizio Google Cloud Policy dell'organizzazione offre un controllo centralizzato e programmatico sulle risorse della tua organizzazione. In qualità di amministratore della policy dell'organizzazione, puoi definire una policy dell'organizzazione, ovvero un set di limitazioni chiamate vincoli che si applicano alle Google Cloud risorse e ai discendenti di queste risorse nella Google Cloud gerarchia delle risorse. Puoi applicare le policy dell'organizzazione a livello di organizzazione, cartella o progetto.
Il servizio Policy dell'organizzazione fornisce vincoli predefiniti per vari Google Cloud servizi, tra cui Memorystore for Valkey. Tuttavia, se cerchi un controllo più granulare e personalizzabile sui campi specifici limitati dalle policy dell'organizzazione, puoi creare vincoli personalizzati e utilizzarli nelle policy dell'organizzazione.
Implementando vincoli personalizzati delle policy dell'organizzazione, applichi configurazioni e limitazioni coerenti. In questo modo, verifichi che le tue istanze rispettino le best practice di sicurezza e i requisiti normativi.
Puoi utilizzare policy dell'organizzazione personalizzate per consentire o negare le risorse Memorystore for Valkey. Ad esempio, se tenti di creare o aggiornare un'istanza mentre è applicato un vincolo personalizzato e l'istanza non è conforme al vincolo, Memorystore for Valkey non crea o aggiorna l'istanza. Inoltre, qualsiasi progetto aggiunto a un'organizzazione o a una cartella che utilizza una policy dell'organizzazione personalizzata eredita i vincoli di quella policy.
Ereditarietà delle policy
Per impostazione predefinita, le policy dell'organizzazione vengono ereditate dai discendenti delle risorse su cui applichi la policy. Ad esempio, se applichi una policy a una cartella, la policy viene applicata a tutti i progetti nella cartella. Google Cloud Per scoprire di più su questo comportamento e su come modificarlo, consulta Regole di valutazione della gerarchia.
Prima di iniziare
Prima di iniziare a utilizzare le policy dell'organizzazione personalizzate, completa i prerequisiti in questa sezione.
Utilizza la Google Cloud console, Google Cloud CLI e le API
Per utilizzare la Google Cloud console, gcloud CLI e le API:
- Nella Google Cloud console, nella pagina di selezione del progetto, seleziona o crea un Google Cloud progetto.
- Verifica che la fatturazione sia attivata per il tuo progetto. Scopri come verificare se la fatturazione è attivata per un progetto.
Installa e inizializza Google Cloud CLI (gcloud CLI).
Se hai installato gcloud CLI, assicurati di avere l'ultima versione eseguendo
gcloud components update. Per accedere ai comandi gcloud CLI di Memorystore for Valkey, devi avere almeno la versione489.0.0di gcloud CLI.-
Attiva l'API Memorystore for Valkey.
API Memorystore for Valkey - Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.
- Assicurati di conoscere l'ID della tua organizzazione.
Assegna i ruoli
Per utilizzare le policy dell'organizzazione personalizzate per le tue istanze, devi disporre di uno di questi ruoli IAM nel tuo Google Cloud progetto:
roles/memorystore.admin(il ruolo Memorystore Admin)roles/owner(il ruolo Proprietario)roles/editor(il ruolo Editor)
Inoltre, devi concedere il ruolo roles/orgpolicy.policyAdmin (Amministratore delle policy dell'organizzazione) e
l'autorizzazione memorystore.instances.create al tuo utente o account di servizio. Per saperne di più sulla concessione di ruoli e autorizzazioni, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Crea e configura un vincolo personalizzato
Crea un vincolo personalizzato per definire le risorse, i metodi, le condizioni e le azioni soggette al vincolo. Questi sono specifici del servizio su cui stai applicando la policy dell'organizzazione.
Definisci le condizioni per il vincolo personalizzato utilizzando il Common Expression Language (CEL). Per saperne di più su come creare condizioni nei vincoli personalizzati utilizzando il CEL, consulta la sezione relativa al CEL di Creare e gestire vincoli personalizzati.
Dopo aver creato il vincolo personalizzato, devi configurarlo per renderlo disponibile per le policy dell'organizzazione. Puoi farlo utilizzando la Google Cloud console o Google Cloud CLI.
Console
- Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
- Fai clic sul menu nella barra dei menu della Google Cloud console e seleziona il progetto, la cartella o l'organizzazione per cui stai creando e configurando un vincolo personalizzato.
- Nella pagina Policy dell'organizzazione, fai clic su Vincolo personalizzato.
Nel campo Nome visualizzato della pagina Crea vincolo personalizzato, inserisci un nome leggibile per il vincolo. Questo nome viene utilizzato nei messaggi di errore e puoi utilizzarlo anche per l' identificazione e il debug. Questo campo può contenere fino a 200 caratteri.
Nel campo ID vincolo, inserisci l'ID del vincolo personalizzato vincolo. Questo vincolo deve iniziare con
custom.e può includere solo lettere maiuscole, lettere minuscole o numeri (ad esempio,custom.restrictFiveShardInstances). La lunghezza massima di questo valore è di 70 caratteri, senza contare il prefisso. Ad esempio:organizations/123456789/customConstraints/custom.allowConstraint.Nel campo Descrizione, inserisci una descrizione leggibile del vincolo. Questa descrizione viene utilizzata come messaggio di errore in caso di violazione della policy dell'organizzazione. Includi dettagli sul motivo della violazione della policy e su come risolverla. Questo campo può contenere fino a 2000 caratteri.
- Dal menu Tipo di risorsa , seleziona il nome (non l'URI) della risorsa Memorystore for Valkey contenente l'oggetto e il campo che vuoi limitare. Ad esempio:
memorystore.googleapis.com/Instance. - Dal menu Metodo di applicazione, effettua una delle seguenti
selezioni:
- Forza applicazione in fase di creazione: il vincolo viene applicato solo quando crei istanze Memorystore for Valkey.
- Forza applicazione in fase di creazione e aggiornamento: il vincolo viene applicato quando crei e aggiorni le istanze.
Per definire una condizione CEL scritta in base a una rappresentazione di una risorsa di servizio supportata:
- Nel campo Condizione, fai clic su Modifica.
Nella finestra di dialogo Aggiungi condizione, inserisci la condizione CEL. Ad esempio:
resource.shardCount == 5.Questa condizione può avere una lunghezza massima di 1000 caratteri. Per saperne di più sulle risorse disponibili in base alle quali scrivere condizioni contro, consulta Vincoli e operazioni personalizzati supportati.
- Fai clic su Salva.
- Nella sezione Azione, effettua una delle seguenti selezioni che rappresenta l'azione da eseguire se la condizione è soddisfatta:
- Consenti: se la condizione restituisce il valore true, l' operazione di creazione o aggiornamento dell'istanza è consentita. Tutti gli altri casi, tranne quelli elencati esplicitamente nella condizione, vengono bloccati.
- Nega: se la condizione restituisce il valore true, l' operazione di creazione o aggiornamento dell'istanza viene bloccata.
- Nella sezione Configurazione YAML, verifica che la configurazione YAML per il vincolo personalizzato sia corretta.
- Fai clic su Crea vincolo.
gcloud
Per creare un vincolo personalizzato, crea un file YAML utilizzando il seguente formato:
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
Effettua le seguenti sostituzioni:
ORGANIZATION_ID: l'ID della tua organizzazione, ad esempio123456789.CONSTRAINT_NAME: il nome del vincolo personalizzato. Questo vincolo deve iniziare concustom.e può includere solo lettere maiuscole, lettere minuscole o numeri (ad esempio,custom.restrictFiveShardInstances). La lunghezza massima di questo valore è di 70 caratteri, senza contare il prefisso. Ad esempio:organizations/123456789/customConstraints/custom.allowConstraint.RESOURCE_NAME: il nome (non l'URI) della risorsa Memorystore for Valkey contenente l'oggetto e il campo che vuoi limitare. Ad esempio:memorystore.googleapis.com/Instance.CONDITION: una condizione CEL scritta in base a una rappresentazione di una risorsa di servizio supportata. Ad esempio:"resource.shardCount == 5".Questo campo ha una lunghezza massima di 1000 caratteri. Per saperne di più sulle risorse disponibili in base alle quali scrivere condizioni, consulta Vincoli e operazioni personalizzati supportati.
ACTION: l'azione da eseguire se la condizione è soddisfatta. Questa azione può avere uno dei seguenti valori:ALLOW: se la condizione restituisce il valore true, l'operazione di creazione o aggiornamento dell'istanza è consentita. Tutti gli altri casi tranne quelli elencati esplicitamente nella condizione vengono bloccati.DENY: se la condizione restituisce il valore true, l'operazione di creazione o aggiornamento dell'istanza viene bloccata.
DISPLAY_NAME: un nome leggibile per il vincolo. Questo nome viene utilizzato nei messaggi di errore e puoi utilizzarlo anche per l' identificazione e il debug. Questo campo può contenere fino a 200 caratteri.DESCRIPTION: una descrizione leggibile del vincolo. Questa descrizione viene utilizzata come messaggio di errore in caso di violazione della policy dell'organizzazione. Includi dettagli sul motivo della violazione della policy e su come risolverla. Questo campo può contenere fino a 2000 caratteri.
Per configurare un vincolo personalizzato, utilizza il
gcloud org-policies set-custom-constraintcomando:gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Sostituisci CONSTRAINT_PATH con il percorso completo del file del vincolo personalizzato (ad esempio,
/home/user/customconstraint.yaml).Dopo aver configurato il vincolo personalizzato, questo sarà disponibile come policy dell'organizzazione nell'elenco delle Google Cloud policy dell'organizzazione.
Per verificare che il vincolo personalizzato esista, utilizza il
gcloud org-policies list-custom-constraintscomando:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Forza l'applicazione di una policy dell'organizzazione personalizzata
Puoi applicare un vincolo creando una policy dell'organizzazione che lo richiami e poi applicando questa policy dell'organizzazione a una risorsa Google Cloud .Console
- Nella console Google Cloud , vai alla pagina Policy dell'organizzazione.
- Nel selettore di progetti, seleziona il progetto per cui vuoi impostare la policy dell'organizzazione.
- Nell'elenco della pagina Policy dell'organizzazione, seleziona il vincolo per visualizzare la pagina Dettagli policy relativa al vincolo in questione.
- Per configurare la policy dell'organizzazione per questa risorsa, fai clic su Gestisci policy.
- Nella pagina Modifica policy, seleziona Esegui override della policy dell'unità organizzativa principale.
- Fai clic su Aggiungi una regola.
- Nella sezione Applicazione, seleziona se questa policy dell'organizzazione viene applicata o meno.
- (Facoltativo) Per rendere la policy dell'organizzazione condizionale su un tag, fai clic su Aggiungi condizione. Tieni presente che se aggiungi una regola condizionale a una policy dell'organizzazione devi aggiungere almeno una regola non condizionale, altrimenti la policy non può essere salvata. Per saperne di più, consulta Definisci l'ambito delle policy dell'organizzazione con i tag.
- Fai clic su Testa modifiche per simulare l'effetto della policy dell'organizzazione. Per saperne di più, consulta Testa le modifiche alla policy dell'organizzazione con Policy Simulator.
- Per applicare la policy dell'organizzazione in modalità dry run, fai clic su Imposta policy dry run. Per saperne di più, consulta Testare le policy dell'organizzazione.
- Dopo aver verificato che la policy dell'organizzazione in modalità dry run funziona come previsto, imposta la policy attiva facendo clic su Imposta policy.
gcloud
- Per creare una policy dell'organizzazione con regole booleane, crea un file YAML della policy che faccia riferimento al vincolo:
-
PROJECT_ID: il progetto in cui vuoi applicare il vincolo. -
CONSTRAINT_NAME: il nome definito per il vincolo personalizzato. Ad esempio:custom.restrictFiveShardInstances. -
Per applicare la policy dell'organizzazione in modalità dry run, esegui il seguente comando con il flag
dryRunSpec: -
Dopo aver verificato che la policy dell'organizzazione in modalità dry run funziona come previsto, imposta la policy attiva con il comando
org-policies set-policye il flagspec:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
Sostituisci quanto segue:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
Sostituisci POLICY_PATH con il percorso completo del file YAML della policy dell'organizzazione. L'applicazione della policy può richiedere fino a 15 minuti.
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
Sostituisci POLICY_PATH con il percorso completo del file YAML della policy dell'organizzazione. L'applicazione della policy può richiedere fino a 15 minuti.
Testa un vincolo personalizzato
Per testare un vincolo personalizzato della policy dell'organizzazione per Memorystore for Valkey, prova a creare o aggiornare un'istanza che non è conforme alla policy applicata.
Ad esempio, supponiamo che un vincolo ti impedisca di creare un'istanza se questa ha cinque shard. Puoi testare questo vincolo provando a creare l'istanza e impostando il numero di shard su cinque. Poiché l'istanza non è conforme al vincolo, Memorystore for Valkey non crea l'istanza.
Vincoli e operazioni personalizzati supportati
I seguenti campi di vincoli personalizzati di Memorystore for Valkey sono disponibili per l'utilizzo quando crei o aggiorni un'istanza:
- Istanza 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
Vincolo personalizzato di esempio
La seguente tabella fornisce un esempio di vincolo personalizzato che impedisce agli utenti di creare o aggiornare le istanze Memorystore for Valkey se le istanze hanno cinque shard:
| Descrizione | Sintassi del vincolo |
|---|---|
| Limita la creazione o l'aggiornamento di istanze con cinque shard |
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. |
Passaggi successivi
- Scopri di più sulle policy dell'organizzazione.
- Scopri di più sulla creazione e gestione di vincoli personalizzati.
- Scopri di più sulla creazione e gestione delle policy dell'organizzazione.