LaGoogle Cloud Política de la organización te brinda un control centralizado y programático sobre los recursos de tu organización. 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 recursos deGoogle Cloud y a sus descendientes en la jerarquía de recursos deGoogle Cloud . Puedes aplicar políticas de la organización a nivel de la organización, carpeta o proyecto.
La política de la organización proporciona restricciones predefinidas para varios servicios deGoogle Cloud . Sin embargo, si quieres un control más detallado y personalizable sobre los campos específicos que están restringidos en las políticas de tu organización, también puedes crear restricciones personalizadas y usarlas en una política personalizada de la organización.
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, Google Cloud aplica la política en todos los proyectos en ella. Para obtener más información sobre este comportamiento y cómo cambiarlo, consulta Reglas de evaluación de jerarquía.
Recursos admitidos de Cloud Armor
En el caso de los recursos de Google Cloud Armor, puedes establecer restricciones personalizadas en los siguientes recursos y campos.
-
Política de seguridad:
compute.googleapis.com/SecurityPolicy- Nombre:
resource.name - Descripción:
resource.description -
Reglas:
resource.rules[]-
Acción del encabezado:
resource.rules[].headerAction-
Encabezados de solicitud para agregar:
resource.rules[].headerAction.requestHeadersToAdds[]-
Nombre del encabezado:
resource.rules[].headerAction.requestHeadersToAdds[].headerName -
Valor del encabezado:
resource.rules[].headerAction.requestHeadersToAdds[].headerValue
-
Nombre del encabezado:
-
Encabezados de solicitud para agregar:
-
Matcher:
resource.rules[].match-
Expresión versionada:
resource.rules[].match.versionedExpr -
Config.:
resource.rules[].match.config-
Rangos de IP de origen:
resource.rules[].match.config.srcIpRanges[]
-
Rangos de IP de origen:
- Expresión:
resource.rules[].match.expr -
Opciones de expresión:
resource.rules[].match.exprOptions-
Opciones de reCAPTCHA:
resource.rules[].match.exprOptions.recaptchaOptions-
Claves de sitio de token de acción:
resource.rules[].match.exprOptions.recaptchaOptions.actionTokenSiteKeys[] -
Claves de sitio de token de sesión:
resource.rules[].match.exprOptions.recaptchaOptions.sessionTokenSiteKeys[]
-
Claves de sitio de token de acción:
-
Opciones de reCAPTCHA:
-
Expresión versionada:
-
Network matcher:
resource.rules[].networkMatch-
Coincidencia del campo definido por el usuario:
resource.rules[].networkMatch.userDefinedFieldMatch-
Nombre:
resource.rules[].networkMatch.userDefinedFieldMatch.name -
Valores:
resource.rules[].networkMatch.userDefinedFieldMatch.values
-
Nombre:
-
Rangos de IP de origen:
resource.rules[].networkMatch.srcIpRanges -
Rangos de IP de destino:
resource.rules[].networkMatch.destIpRanges -
Protocolos de IP:
resource.rules[].networkMatch.ipProtocols -
Puertos de origen:
resource.rules[].networkMatch.srcPorts -
Puertos de destino:
resource.rules[].networkMatch.destPorts -
Códigos de regiones de origen:
resource.rules[].networkMatch.srcRegionCodes -
ASN de origen:
resource.rules[].networkMatch.srcAsns
-
Coincidencia del campo definido por el usuario:
-
Configuración del WAF preconfigurado:
resource.rules[].preconfiguredWafConfig-
Exclusiones:
resource.rules[].preconfiguredWafConfig.exclusions[]-
Conjunto de reglas de destino:
resource.rules[].preconfiguredWafConfig.exclusions[].targetRuleSet -
IDs de reglas de segmentación:
resource.rules[].preconfiguredWafConfig.exclusions[].targetRuleIds[] -
Encabezados de solicitud para excluir:
resource.rules[].preconfiguredWafConfig.exclusions[].requestHeadersToExclude[]-
Valor:
resource.rules[].preconfiguredWafConfig.exclusions[].requestHeadersToExclude[].val -
Operación:
resource.rules[].preconfiguredWafConfig.exclusions[].requestHeadersToExclude[].op
-
Valor:
-
Cookies de solicitud para excluir:
resource.rules[].preconfiguredWafConfig.exclusions[].requestCookiesToExclude[]-
Valor:
resource.rules[].preconfiguredWafConfig.exclusions[].requestCookiesToExclude[].val -
Operación:
resource.rules[].preconfiguredWafConfig.exclusions[].requestCookiesToExclude[].op
-
Valor:
-
Parámetros de consulta de la solicitud que se excluirán:
resource.rules[].preconfiguredWafConfig.exclusions[].requestQueryParamsToExclude[]-
Valor:
resource.rules[].preconfiguredWafConfig.exclusions[].requestQueryParamsToExclude[].val -
Operación:
resource.rules[].preconfiguredWafConfig.exclusions[].requestQueryParamsToExclude[].op
-
Valor:
-
URIs de solicitud para excluir:
resource.rules[].preconfiguredWafConfig.exclusions[].requestUrisToExclude[]-
Valor:
resource.rules[].preconfiguredWafConfig.exclusions[].requestUrisToExclude[].val -
Operación:
resource.rules[].preconfiguredWafConfig.exclusions[].requestUrisToExclude[].op
-
Valor:
-
Conjunto de reglas de destino:
-
Exclusiones:
-
Opciones de redireccionamiento:
resource.rules[].redirectOptions[]- Tipo:
resource.rules[].redirectOptions[].type -
Destino:
resource.rules[].redirectOptions[].target
- Tipo:
-
Opciones de límite de frecuencia:
resource.rules[].rateLimitOptions[]-
Umbral del límite de frecuencia:
resource.rules[].rateLimitOptions[].rateLimitThreshold-
Recuento:
resource.rules[].rateLimitOptions[].rateLimitThreshold.count -
Intervalo en segundos:
resource.rules[].rateLimitOptions[].rateLimitThreshold.intervalSec
-
Recuento:
-
Acción de confirmación:
resource.rules[].rateLimitOptions[].conformAction -
Acción de exceso:
resource.rules[].rateLimitOptions[].exceedAction -
Opciones de redireccionamiento excedidas:
resource.rules[].rateLimitOptions[].exceedRedirectOptions-
Tipo:
resource.rules[].rateLimitOptions[].exceedRedirectOptions.type -
Objetivo:
resource.rules[].rateLimitOptions[].exceedRedirectOptions.target
-
Tipo:
-
Estado de la RPC de la acción de exceso:
resource.rules[].rateLimitOptions[].exceedActionRpcStatus-
Código:
resource.rules[].rateLimitOptions[].exceedActionRpcStatus.code -
Mensaje:
resource.rules[].rateLimitOptions[].exceedActionRpcStatus.message
-
Código:
-
Aplicar en la clave:
resource.rules[].rateLimitOptions[].enforceOnKey -
Aplicar de manera forzosa sobre el nombre de la clave:
resource.rules[].rateLimitOptions[].enforceOnKeyName -
Aplicar de manera forzosa en la configuración de claves:
resource.rules[].rateLimitOptions[].enforceOnKeyConfigs-
Aplicar de manera forzosa sobre el tipo de clave:
resource.rules[].rateLimitOptions[].enforceOnKeyConfigs.enforceOnKeyType -
Aplicar de manera forzosa sobre el nombre de la clave:
resource.rules[].rateLimitOptions[].enforceOnKeyConfigs.enforceOnKeyName
-
Aplicar de manera forzosa sobre el tipo de clave:
-
Umbral de bloqueo:
resource.rules[].rateLimitOptions[].banThreshold-
Recuento:
resource.rules[].rateLimitOptions[].banThreshold.count -
Intervalo en segundos:
resource.rules[].rateLimitOptions[].banThreshold.intervalSec
-
Recuento:
-
Duración del bloqueo en segundos:
resource.rules[].rateLimitOptions[].banDurationSec
-
Umbral del límite de frecuencia:
-
Destino del redireccionamiento:
resource.rules[].redirectTarget - Número de regla:
resource.rules[].ruleNumber
-
Acción del encabezado:
-
Configuración de protección adaptable:
resource.adaptiveProtectionConfig-
Configuración de defensa contra ataques DSD en la capa 7:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig-
Habilitar:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.enable -
Visibilidad de la regla:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.ruleVisibility -
Configuraciones de umbral:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[]-
Nombre:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].name -
Umbral de carga de la implementación automática:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].autoDeployLoadThreshold -
Umbral de confianza de la implementación automática:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].autoDeployConfidenceThreshold -
Umbral de referencia afectado de implementación automática:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].autoDeployImpactedBaselineThreshold -
Vencimiento de la implementación automática en segundos:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].autoDeployExpirationSec -
Umbral de carga de detección:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].detectionLoadThreshold -
QPS absoluta de detección:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].detectionAbsoluteQps -
Detección en relación con las QPS del modelo de referencia:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].detectionRelativeToBaselineQps -
Configuraciones de granularidad del tráfico:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].trafficGranularityConfigs[]-
Tipo:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].trafficGranularityConfigs[].type -
Valor:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].trafficGranularityConfigs[].value -
Habilita cada valor único:
resource.adaptiveProtectionConfig.layer7DdosDefenseConfig.thresholdConfigs[].trafficGranularityConfigs[].enableEachUniqueValue
-
Tipo:
-
Nombre:
-
Habilitar:
-
Configuración de la implementación automática:
resource.adaptiveProtectionConfig.autoDeployConfig-
Umbral de carga:
resource.adaptiveProtectionConfig.autoDeployConfig.loadThreshold -
Umbral de confianza:
resource.adaptiveProtectionConfig.autoDeployConfig.confidenceThreshold -
Umbral de referencia afectado:
resource.adaptiveProtectionConfig.autoDeployConfig.impactedBaselineThreshold -
Vencimiento en segundos:
resource.adaptiveProtectionConfig.autoDeployConfig.expirationSec
-
Umbral de carga:
-
Configuración de defensa contra ataques DSD en la capa 7:
-
Configuración de opciones avanzadas:
resource.advancedOptionsConfig-
Análisis de JSON:
resource.advancedOptionsConfig.jsonParsing -
Configuración personalizada de JSON:
resource.advancedOptionsConfig.jsonCustomConfig-
Tipos de contenido:
resource.advancedOptionsConfig.jsonCustomConfig.contentTypes[]
-
Tipos de contenido:
-
Nivel de registro:
resource.advancedOptionsConfig.logLevel -
Encabezados de la solicitud de IP del usuario:
resource.advancedOptionsConfig.userIpRequestHeaders[]
-
Análisis de JSON:
-
Configuración de protección contra DSD:
resource.ddosProtectionConfig-
Protección contra DSD:
resource.ddosProtectionConfig.ddosProtection
-
Protección contra DSD:
-
Configuración de las opciones de reCAPTCHA:
resource.recaptchaOptionsConfig-
Clave del sitio de redireccionamiento:
resource.recaptchaOptionsConfig.redirectSiteKey
-
Clave del sitio de redireccionamiento:
- Tipo:
resource.type -
Campos definidos por el usuario:
resource.userDefinedFields[]- Nombre:
resource.userDefinedFields[].name - Base:
resource.userDefinedFields[].base - Compensación:
resource.userDefinedFields[].offset - Tamaño:
resource.userDefinedFields[].size - Máscara:
resource.userDefinedFields[].mask
- Nombre:
- Nombre:
-
Servicio de seguridad de borde de red:
compute.googleapis.com/NetworkEdgeSecurityService- Nombre:
resource.name - Descripción:
resource.description - Política de seguridad:
resource.securityPolicy
- Nombre:
Define restricciones personalizadas
Una restricción personalizada se define mediante los recursos, los métodos, las condiciones y las acciones que son compatibles con el servicio en el que aplicas la política de la organización. Las condiciones para tus restricciones personalizadas se definen con Common Expression Language (CEL). Si quieres obtener más información para compilar condiciones en restricciones personalizadas mediante CEL, consulta la sección CEL de Crea y administra políticas de la organización.
Antes de comenzar
-
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Selecciona la pestaña que corresponda a la forma en que planeas usar las muestras de esta página:
Console
Cuando usas la consola de Google Cloud para acceder a los servicios y las APIs de Google Cloud , no necesitas configurar la autenticación.
gcloud
-
Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI con el siguiente comando:
gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
- Configura una región y una zona predeterminadas.
REST
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la gcloud CLI.
Instala Google Cloud CLI.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud .
Roles obligatorios
Para obtener los permisos que necesitas para administrar las políticas de la organización para los recursos de Cloud Armor, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Administrador de políticas de la organización (
roles/orgpolicy.policyAdmin) en el recurso de la organización -
Para probar las restricciones:
-
Administrador de seguridad de Compute (
roles/compute.securityAdmin) en el proyecto -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en el proyecto
-
Administrador de seguridad de Compute (
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para administrar las políticas de la organización de los recursos de Cloud Armor. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para administrar las políticas de la organización de los recursos de Cloud Armor:
-
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update -
orgpolicy.policy.get -
orgpolicy.policy.set
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Configura una restricción personalizada
Puedes crear una restricción personalizada y configurarla para su uso en las políticas de la organización con la Google Cloud consola o Google Cloud CLI.Console
En la consola de Google Cloud , accede a la página Políticas de la organización.
Selecciona el Selector de proyectos en la parte superior de la página.
En el Selector de proyectos, selecciona el recurso para el que deseas configurar la política de la organización.
Haz clic en Restricción personalizada.
En el cuadro Nombre visible, ingresa un nombre descriptivo para la restricción. La longitud máxima de este campo es 200 caracteres. No uses PII ni datos sensibles en nombres de restricciones, ya que podrían exponerse en mensajes de error.
En el cuadro ID de restricción, ingresa el nombre que deseas para la nueva restricción personalizada. Una restricción personalizada debe comenzar con
custom.y solo puede incluir letras mayúsculas, minúsculas o números, por ejemplo, custom.requireSecurityPolicyWithStandardJsonParsing. La longitud máxima de este campo es de 70 caracteres, sin contar el prefijo (por ejemplo,organizations/123456789/customConstraints/custom.).En el cuadro Description, ingresa una descripción fácil de usar de la restricción que se mostrará como un mensaje de error cuando se infringe la política. La longitud máxima de este campo es 2000 caracteres.
En el cuadro Tipo de recurso, selecciona el nombre del recurso de REST Google Cloud que contiene el objeto y el campo que deseas restringir. Por ejemplo:
compute.googleapis.com/SecurityPolicy.En Método de aplicación, selecciona si deseas aplicar la restricción solo en el método de REST
CREATEo en los métodos de RESTCREATEyUPDATE.Para definir una condición, haz clic en Editar condición.
En el panel Agregar condición, crea una condición de CEL que haga referencia a un recurso de servicio compatible. La longitud máxima de este campo es 1000 caracteres.
Haz clic en Guardar.
En Acción, selecciona si deseas permitir o rechazar el método evaluado si se cumple la condición anterior.
Haz clic en Crear restricción.
Cuando ingreses un valor en cada campo, aparecerá a la derecha la configuración de YAML equivalente para esta restricción personalizada.
gcloud
Para crear una restricción personalizada con Google Cloud CLI, crea un archivo YAML.
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resource_types: compute.googleapis.com/RESOURCE_NAME method_types: – METHOD1 – METHOD2 condition: "CONDITION" action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
Reemplaza lo siguiente:
ORGANIZATION_ID: Es el ID de la organización, como123456789.CONSTRAINT_NAME: Es el nombre que deseas usar para tu nueva restricción personalizada. Una restricción personalizada debe comenzar concustom.y solo puede incluir letras mayúsculas, minúsculas o números, por ejemplo, custom.requireSecurityPolicyWithStandardJsonParsing. La longitud máxima de este campo es de 70 caracteres, sin contar el prefijo (por ejemplo,organizations/123456789/customConstraints/custom).RESOURCE_NAME: el nombre (no el URI) del recurso REST de la API de REST de Compute Engine que contiene el objeto y el campo que deseas restringir. Por ejemplo, compute.googleapis.com/SecurityPolicy.METHOD1,METHOD2,...: una lista de métodos de RESTful para aplicar la restricción. Puede serCREATEoCREATEyUPDATE.CONDITION: una condición de CEL que se escribe en una representación de un recurso de servicio compatible. La longitud máxima de este campo es 1000 caracteres. Consulta Recursos compatibles con el fin de obtener más información sobre los recursos disponibles para escribir condiciones.ACTION: la acción que se realiza si se cumplecondition. Puede serALLOWoDENY.DISPLAY_NAME: un nombre descriptivo para la restricción. La longitud máxima de este campo es 200 caracteres.DESCRIPTION: una descripción fácil de usar de la restricción que se mostrará como un mensaje de error cuando se infringe la política. La longitud máxima de este campo es 2000 caracteres.
Para obtener más información sobre cómo crear una restricción personalizada, consulta Define restricciones personalizadas.
Console
Para crear una restricción personalizada, haz lo siguiente:
- En la consola de Google Cloud , accede a la página Políticas de la organización.
- En el selector de proyectos, elige uno cuya política de la organización quieras configurar.
- Haz clic en Restricción personalizada.
- En el cuadro Nombre visible, ingresa un nombre legible por humanos para la restricción. Este nombre se usa en los mensajes de error y se puede usar para la identificación y depuración. No uses información de identificación personal (PII) ni datos sensibles en los nombres visibles, ya que podrían exponerse en mensajes de error. Este campo puede contener hasta 200 caracteres.
-
En el cuadro ID de restricción, ingresa el ID que quieras asignar a la nueva restricción
personalizada. Las restricciones personalizadas solo pueden contener letras (mayúsculas y minúsculas) o
números, por ejemplo,
custom.requireSecurityPolicyWithStandardJsonParsing. Este campo puede contener hasta 70 caracteres, sin contar el prefijo (custom.), por ejemplo,organizations/123456789/customConstraints/custom. No incluyas IIP ni datos sensibles en el ID de la restricción, ya que podrían exponerse en mensajes de error. - En el cuadro Descripción, ingresa una descripción legible por humanos de la restricción. Esta se usa como mensaje de error cuando se infringe la política. Incluye detalles sobre el motivo por el cual se produjo el incumplimiento de la política y cómo resolverlo. No incluyas IIP ni datos sensibles en la descripción, ya que podrían exponerse en mensajes de error. Este campo puede contener hasta 2,000 caracteres.
-
En el cuadro Tipo de recurso, selecciona el nombre del recurso de REST Google Cloud
que contiene el objeto y el campo que quieres restringir, por ejemplo,
container.googleapis.com/NodePool. La mayoría de los tipos de recursos admiten hasta 20 restricciones personalizadas. Si intentas crear más, la operación fallará. -
Esta restricción solo se puede aplicar en el método
CREATEde REST. - Para definir una condición, haz clic en Editar condición.
-
En el panel Agregar condición, crea una condición de CEL que haga referencia a un recurso de servicio compatible, por ejemplo,
resource.management.autoUpgrade == false. Este campo puede contener hasta 1,000 caracteres. Para obtener detalles sobre el uso de CEL, consulta Common Expression Language. Para obtener más información sobre los recursos de servicio que puedes usar en las restricciones personalizadas, consulta Servicios compatibles con restricciones personalizadas. - Haz clic en Guardar.
- En Acción, selecciona si quieres permitir o rechazar el método evaluado en caso de cumplirse la condición.
- Haz clic en Crear restricción.
Para ver los métodos compatibles con cada servicio, busca el servicio en Servicios que admiten restricciones personalizadas.
La acción de rechazo implica que la operación para crear o actualizar el recurso se bloquea si la condición se evalúa como verdadera.
La acción de permitir implica que la operación para crear o actualizar el recurso solo se permite si la condición se evalúa como verdadera. El resto de casos se bloquean, excepto los que se indican explícitamente en la condición.
Cuando ingreses un valor en cada campo, aparecerá a la derecha la configuración de YAML equivalente para esta restricción personalizada.
gcloud
- Para crear una restricción personalizada, crea un archivo YAML con el formato siguiente:
-
ORGANIZATION_ID: Es el ID de la organización, como123456789. -
CONSTRAINT_NAME: Es el nombre que quieres usar para la nueva restricción personalizada. Una restricción personalizada solo puede contener letras (mayúsculas y minúsculas) o números, por ejemplo,custom.requireSecurityPolicyWithStandardJsonParsing. Este campo puede contener hasta 70 caracteres, sin contar el prefijo (custom.), por ejemplo,organizations/123456789/customConstraints/custom. No incluyas PII ni datos sensibles en el ID de la restricción, ya que podrían exponerse en mensajes de error. -
RESOURCE_NAME: Es el nombre completamente calificado del recurso de Google Cloudque contiene el objeto y el campo que quieres restringir. Por ejemplo,compute.googleapis.com/SecurityPolicy. La mayoría de los tipos de recursos admiten hasta 20 restricciones personalizadas. Si intentas crear más, la operación fallará. -
methodTypes: Son los métodos de REST en los que se aplica la restricción. Solo puede serCREATE. -
CONDITION: Es una condición de CEL que se escribe con base en una representación de un recurso de servicio compatible. Este campo puede contener hasta 1,000 caracteres. Por ejemplo,"resource.advancedOptionsConfig.jsonParsing != 'STANDARD'". -
ACTION: Es la acción que se realiza si se cumple lacondition. Solo puede serALLOW. -
DISPLAY_NAME: Es un nombre legible para la restricción. Este nombre se usa en los mensajes de error y se puede usar para la identificación y depuración. No uses PII ni datos sensibles en los nombres visibles, ya que podrían exponerse en mensajes de error. Este campo puede contener hasta 200 caracteres. -
DESCRIPTION: Es una descripción simple de la restricción que se mostrará como un mensaje de error cuando se infrinja la política. Este campo puede contener hasta 2,000 caracteres. -
Después de crear el archivo YAML de una nueva restricción personalizada, debes configurarla con el objetivo de que esté
disponible para las políticas de la organización de tu empresa. Para configurar una restricción personalizada,
usa el
el comando
gcloud org-policies set-custom-constraint: -
Para verificar que la restricción personalizada exista, usa el
comando
gcloud org-policies list-custom-constraints:
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: RESOURCE_NAME methodTypes: - CREATE condition: "CONDITION" actionType: ACTION displayName: DISPLAY_NAME description: DESCRIPTION
Reemplaza los valores que se indican a continuación:
Para ver los métodos compatibles con cada servicio, busca el servicio en Servicios que admiten restricciones personalizadas.
Para obtener más información sobre los recursos disponibles para escribir condiciones, consulta Recursos admitidos.
La acción de permitir implica que, si la condición se evalúa como verdadera, se permite la operación para crear o actualizar el recurso. Esto también quiere decir que se bloquea el resto de casos, excepto el que se indica de forma explícita en la condición.
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
Reemplaza CONSTRAINT_PATH por la ruta de acceso completa al
archivo de la restricción personalizada. Por ejemplo, /home/user/customconstraint.yaml.
Una vez que se complete esta operación, tus restricciones personalizadas estarán disponibles en la lista de políticas de la organización de Google Cloud .
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
Reemplaza ORGANIZATION_ID por el ID del recurso de tu organización.
Para obtener más información, consulta Visualiza las políticas de la organización .
Aplica una restricció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 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 Cómo definir 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, haz clic en Configurar política para configurar la política activa.
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.requireSecurityPolicyWithStandardJsonParsing. -
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.
Ejemplo: Crea una restricción que requiera que todas las políticas de seguridad tengan habilitado el análisis JSON estándar
Esta restricción impide que se creen políticas de seguridad si no tienen habilitado el análisis JSON estándar.
gcloud
Crea un archivo de restricción
requireStandardJsonParsing.yamlcon la siguiente información:name: organizations/ORGANIZATION_ID/customConstraints/custom.requireStandardJsonParsing resource_types: compute.googleapis.com/SecurityPolicy condition: "resource.advancedOptionsConfig.jsonParsing != 'STANDARD'" action_type: DENY method_types: [CREATE, UPDATE] display_name: Security policies must have standard JSON parsing enabled.
Reemplaza
ORGANIZATION_IDpor el ID de tu organización.Establece la restricción personalizada.
gcloud org-policies set-custom-constraint requireStandardJsonParsing.yaml
Crea un archivo de política
requireStandardJsonParsing-policy.yamlcon la información proporcionada en el siguiente ejemplo y aplica la restricción a nivel de proyecto. También puedes establecer esta restricción a nivel de la organización o de la carpeta.name: projects/PROJECT_ID/policies/custom.requireStandardJsonParsing spec: rules: – enforce: true
Reemplaza
PROJECT_IDcon el ID del proyecto.Aplica la política de manera forzosa.
gcloud org-policies set-policy requireStandardJsonParsing-policy.yaml
Para probar la restricción, crea una política de seguridad sin configurar el campo de análisis de JSON.
gcloud compute security-policies create my-policy \ --type=CLOUD_ARMOREl resultado es similar a lo siguiente:
ERROR: (gcloud.compute.securityPolicies.create) Could not fetch resource: - Operation denied by custom org policy: [customConstraints/custom.requireStandardJsonParsing] : Security policies must have standard JSON parsing enabled.
Precios
El Servicio de políticas de la organización, que incluye las políticas de la organización predefinidas y personalizadas, se ofrece sin cargo.
¿Qué sigue?
- Introducción al Servicio de políticas de la organización
- Crea y administra políticas de la organización
- Restricciones de las políticas de la organización