En este documento, se describe cómo crear, configurar y administrar restricciones personalizadas de políticas de la organización para instancias de Memorystore para Valkey. Para obtener una descripción general de las políticas de la organización personalizadas, consulta Políticas de la organización personalizadas.
El servicio de políticas de la organización de te brinda un control centralizado y programático sobre los recursos de tu organización. Google Cloud Como administrador de políticas de la organización, puedes definir una política de la organización, que es un conjunto de limitaciones llamadas restricciones que se aplican a los Google Cloud recursos y a sus subordinados de esos recursos en la Google Cloud jerarquía de recursos. Puedes aplicar políticas de la organización a nivel de la organización, la carpeta o el proyecto.
El servicio de políticas de la organización proporciona restricciones predefinidas para varios Google Cloud servicios de, incluido Memorystore para Valkey. Sin embargo, si deseas un control más detallado y personalizable sobre los campos específicos que están restringidos en las políticas de tu organización, puedes crear restricciones personalizadas y usarlas en las políticas de la organización.
Si implementas restricciones personalizadas de políticas de la organización, aplicas configuraciones y restricciones coherentes. Esto verifica que tus instancias cumplan con las prácticas recomendadas de seguridad y los requisitos reglamentarios.
Puedes usar políticas de la organización personalizadas para permitir o rechazar recursos de Memorystore para Valkey. Por ejemplo, si intentas crear o actualizar una instancia mientras se aplica una restricción personalizada y la instancia no cumple con la restricción, Memorystore for Valkey no crea ni actualiza la instancia. Además, cualquier proyecto que se agregue a una organización o carpeta que use una política de la organización personalizada hereda las restricciones de esa política.
Herencia de políticas
De forma predeterminada, las políticas de la organización se heredan según los subordinados de los recursos en los que se aplica la política. Por ejemplo, si aplicas una política en una carpeta, se Google Cloud aplica la política en todos los proyectos de la carpeta. Para obtener más información sobre este comportamiento y cómo cambiarlo, consulta Reglas de evaluación de jerarquía.
Antes de comenzar
Antes de comenzar a usar políticas de la organización personalizadas, completa los requisitos previos de esta sección.
Usa la Google Cloud consola de, Google Cloud CLI y las APIs
Para usar la Google Cloud consola de, gcloud CLI y las APIs, haz lo siguiente:
- En la Google Cloud consola, en la página del selector de proyectos, selecciona o crea un Google Cloud proyecto.
- Asegúrate de tener habilitada la facturación para tu proyecto. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.
Instala y, luego, inicializa Google Cloud CLI (gcloud CLI).
Si instalaste gcloud CLI, asegúrate de tener la versión más reciente ejecutando
gcloud components update. Para acceder a los comandos de gcloud CLI de Memorystore para Valkey, necesitas al menos la versión489.0.0de gcloud CLI.-
Habilita la API de Memorystore para Valkey.
API de Memorystore para Valkey - Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
- Asegúrate de conocer el ID de tu organización.
Asignar roles
Para usar políticas de la organización personalizadas para tus instancias, debes tener uno de estos roles de IAM en tu Google Cloud proyecto:
roles/memorystore.admin(el rol de administrador de Memorystore)roles/owner(el rol de propietario)roles/editor(el rol de editor)
Además, debes otorgar el roles/orgpolicy.policyAdmin (administrador de políticas de la organización) y
el memorystore.instances.create permiso a tu usuario o cuenta de servicio. Para obtener más información sobre cómo
otorgar roles y permisos, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Crea y configura una restricción personalizada
Creas una restricción personalizada para definir los recursos, los métodos, las condiciones y las acciones que están sujetos a la restricción. Estos son específicos del servicio en el que aplicas la política de la organización.
Para definir las condiciones de la restricción personalizada, usa Common Expression Language (CEL). Si deseas obtener más información sobre cómo compilar condiciones en restricciones personalizadas mediante CEL, consulta la sección CEL de Crea y administra restricciones personalizadas.
Después de crear la restricción personalizada, la configuras para que esté disponible para las políticas de la organización en tu organización. Puedes hacerlo con la Google Cloud consola o Google Cloud CLI.
Consola
- En la consola de Google Cloud , ve a la página Políticas de la organización.
- Haz clic en el menú de la Google Cloud barra de menú de la consola de y, luego, selecciona el proyecto, la carpeta o la organización para la que crearás y configurarás una restricción personalizada.
- En la página Políticas de la organización, haz clic en Restricción personalizada.
En el campo Nombre visible de la página Crear restricción personalizada, ingresa un nombre legible por humanos para la restricción. Este nombre se usa en los mensajes de error y también puedes usarlo para identificación y depuración. Este campo puede contener hasta 200 caracteres.
En el campo ID de la restricción, ingresa el ID de la restricción personalizada. Esta restricción debe comenzar con
custom.y solo puede incluir letras mayúsculas, minúsculas o números (por ejemplo,custom.restrictFiveShardInstances). La longitud máxima de este valor es de 70 caracteres, sin contar el prefijo. Por ejemplo:organizations/123456789/customConstraints/custom.allowConstraint.En el campo Descripción, ingresa una descripción legible por humanos descripción de la restricción. Esta descripción se usa como mensaje de error cuando se infringe la política de la organización. Incluye detalles sobre por qué se produjo el incumplimiento de la política y cómo resolver el incumplimiento de la política. Este campo puede contener hasta 2,000 caracteres.
- En el menú Tipo de recurso, selecciona el nombre (no el URI) del recurso de Memorystore para Valkey, que contiene el objeto y el campo que deseas restringir. Por ejemplo:
memorystore.googleapis.com/Instance. - En el menú Método de aplicación, realiza una de las siguientes
selecciones:
- Aplicar cuando se cree: La restricción solo se aplica cuando creas instancias de Memorystore para Valkey.
- Aplicar cuando se cree y se actualice: La restricción se aplica cuando creas y actualizas instancias.
Para definir una condición de CEL que se escribe en una representación de un recurso de servicio compatible, haz lo siguiente:
- En el campo Condición, haz clic en Editar.
En el diálogo Agregar condición, ingresa la condición de CEL. Por ejemplo:
resource.shardCount == 5.Esta condición puede tener una longitud máxima de 1,000 caracteres. Para obtener más información sobre los recursos disponibles para escribir condiciones, consulta Restricciones y operaciones personalizadas compatibles.
- Haz clic en Guardar.
- En la sección Acción, realiza una de las siguientes selecciones
que representa la acción que se debe realizar si se cumple la condición:
- Permitir: Si la condición se evalúa como verdadera, se permite la operación para crear o actualizar la instancia. El resto de casos se bloquean, excepto los que se indican explícitamente en la condición.
- Rechazar: Si la condición se evalúa como verdadera, se bloquea la operación para crear o actualizar la instancia.
- En la sección Configuración de YAML, verifica que la configuración de YAML para la restricción personalizada sea correcta.
- Haz clic en Crear restricción.
gcloud
Para crear una restricción personalizada, crea un archivo YAML con el siguiente 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
Realiza los siguientes reemplazos:
ORGANIZATION_ID: Es el ID de tu organización, como123456789.CONSTRAINT_NAME: Es el nombre de la restricción personalizada. Esta restricción debe comenzar concustom.y solo puede incluir letras mayúsculas, minúsculas o números (por ejemplo,custom.restrictFiveShardInstances). La longitud máxima de este valor es de 70 caracteres, sin contar el prefijo. Por ejemplo:organizations/123456789/customConstraints/custom.allowConstraint.RESOURCE_NAME: Es el nombre (no el URI) del recurso de Memorystore para Valkey, que contiene el objeto y el campo que deseas restringir. Por ejemplo:memorystore.googleapis.com/Instance.CONDITION: Es una condición de CEL que se escribe en una representación de un recurso de servicio compatible. Por ejemplo:"resource.shardCount == 5".La longitud máxima de este campo es 1000 caracteres. Para obtener más información sobre los recursos disponibles para escribir condiciones, consulta Restricciones y operaciones personalizadas compatibles.
ACTION: Es la acción que se realiza si se cumple la condición. Esta acción puede ser uno de los siguientes valores:ALLOW: Si la condición se evalúa como verdadera, se permite la operación para crear o actualizar la instancia. El resto de casos se bloquean, excepto los que se indican explícitamente en la condición.DENY: Si la condición se evalúa como verdadera, se bloquea la operación para crear o actualizar la instancia.
DISPLAY_NAME: Es un nombre legible por humanos para la restricción. Este nombre se usa en los mensajes de error y también puedes usarlo para fines de identificación y depuración. Este campo puede contener hasta 200 caracteres.DESCRIPTION: Es una descripción legible por humanos de la restricción. Esta descripción se usa como mensaje de error cuando se infringe la política de la organización. Incluye detalles sobre el motivo por el cual se produjo el incumplimiento de la política y cómo resolverlo. Este campo puede contener hasta 2,000 caracteres.
Para configurar una restricción personalizada, usa el
gcloud org-policies set-custom-constraintcomando:gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Reemplaza CONSTRAINT_PATH por la ruta de acceso completa al archivo de restricción personalizada (por ejemplo,
/home/user/customconstraint.yaml).Después de configurar la restricción personalizada, estará disponible como una política de la organización en la lista de Google Cloud políticas de la organización.
Para verificar que existe la restricción personalizada, usa el
gcloud org-policies list-custom-constraintscomando:gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Aplica de manera forzosa una política de la organización personalizada
Puedes aplicar una restricción cuando creas una política de la organización que haga referencia a ella y, luego, aplicas esa política a un recurso de Google Cloud .Consola
- En la consola de Google Cloud , ve a la página Políticas de la organización.
- En el selector de proyectos, elige el proyecto cuya política de la organización quieres configurar.
- En la lista de la página Políticas de la organización, selecciona una restricción para ver la página Detalles de la política de esa restricción.
- Si deseas configurar las políticas de la organización para este recurso, haz clic en Administrar política.
- En la página Editar política, selecciona Anular la política del elemento superior.
- Haz clic en Agregar una regla.
- En la sección Aplicación, selecciona si quieres que se aplique o no esta política de la organización.
- Opcional: Para que la política de la organización sea condicional en una etiqueta, haz clic en Agregar condición. Ten en cuenta que, si agregas una regla condicional a una política de la organización , debes agregar una regla sin condición como mínimo; de lo contrario, la política no se puede guardar. Para obtener más información, consulta Define el alcance de las políticas de la organización con etiquetas.
- Haz clic en Probar cambios para simular el efecto de la política de la organización. Para obtener más información, consulta Prueba los cambios en políticas de la organización con Policy Simulator.
- Para aplicar la política de la organización en modo de ejecución de prueba, haz clic en Establecer política de ejecución de prueba. Para obtener más información, consulta Prueba las políticas de la organización.
- Luego de verificar que la política de la organización en el modo de ejecución de prueba funciona según lo previsto, configura la política activa haciendo clic en Configurar política.
gcloud
- Para crear una política de la organización con reglas booleanas, crea un archivo YAML de política que haga referencia a la restricción:
-
PROJECT_ID: Es el proyecto en el que quieres aplicar tu restricción. -
CONSTRAINT_NAME: Es el nombre que definiste para tu restricción personalizada. Por ejemplo:custom.restrictFiveShardInstances. -
Para aplicar la política de la organización en
el modo de ejecución de
prueba, ejecuta el comando siguiente con la marca
dryRunSpec: -
Luego de verificar que la política de la organización en modo de ejecución de prueba funciona según lo previsto, configura la política
activa con el comando
org-policies set-policyy la marcaspec:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true dryRunSpec: rules: - enforce: true
Reemplaza los valores que se indican a continuación:
gcloud org-policies set-policy POLICY_PATH --update-mask=dryRunSpec
Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML
de la política de la organización. La política tarda hasta 15 minutos en aplicarse.
gcloud org-policies set-policy POLICY_PATH --update-mask=spec
Reemplaza POLICY_PATH por la ruta de acceso completa al archivo YAML
de la política de la organización. La política tarda hasta 15 minutos en aplicarse.
Prueba una restricción personalizada
Para probar una restricción personalizada de políticas de la organización para Memorystore para Valkey, intenta crear o actualizar una instancia que no cumpla con la política aplicada.
Por ejemplo, supongamos que una restricción te impide crear una instancia si esta tiene cinco fragmentos. Para probar esta restricción, intenta crear la instancia y configura el recuento de fragmentos en cinco. Debido a que la instancia no cumple con la restricción, Memorystore para Valkey no crea la instancia.
Restricciones y operaciones personalizadas compatibles
Los siguientes campos de restricción personalizada de Memorystore para Valkey están disponibles para usarse cuando creas o actualizas una instancia:
- Instancia de Memorystore para 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
Ejemplo de restricción personalizada
En la siguiente tabla, se proporciona un ejemplo de una restricción personalizada que impide que los usuarios creen o actualicen instancias de Memorystore para Valkey si las instancias tienen cinco fragmentos:
| Descripción | Sintaxis de la restricción |
|---|---|
| Restringe la creación o actualización de instancias que tienen cinco fragmentos. |
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. |
¿Qué sigue?
- Obtén más información sobre las políticas de la organización.
- Obtén más información para saber cómo crear y administrar restricciones personalizadas.
- Obtén más información para crear y administrar políticas de la organización.