Administra recursos de función con restricciones personalizadas
Como administrador de la organización, puedes crear restricciones personalizadas para Cloud Run Functions. Las políticas de la organización aplican estas restricciones personalizadas a nivel del proyecto, la carpeta o la organización.
La política de la organización proporciona restricciones predefinidas para varios servicios de Google Cloud. 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, también puedes crear políticas de la organización personalizadas.
En esta página, se detalla cómo crear restricciones personalizadas para las funciones creadas con las APIs de Cloud Functions v2 y aplicarlas a nivel del proyecto. Para obtener información sobre las políticas de la organización personalizadas, consulta Crea y administra políticas de la organización personalizadas.
Beneficios
- Administración de costos: Usa políticas personalizadas de la organización para restringir los tamaños y tipos de instancias de VM y discos que se pueden usar en tu organización. También puedes restringir la familia de máquinas que se usa para la instancia de VM.
- Seguridad, cumplimiento y administración :
- Para aplicar requisitos de seguridad, puedes requerir reglas de puerto de firewall específicas en las VMs.
- Para admitir el aislamiento de hardware o el cumplimiento de las licencias, puedes exigir que todas las VMs de un proyecto o una carpeta específicos se ejecuten en nodos de usuario único.
- Para administrar las secuencias de comandos de automatización, puedes usar políticas de organización personalizadas para verificar que las etiquetas coincidan con las expresiones necesarias.
Herencia de políticas
Cuando se aplica una política de la organización a un recurso, todos los elementos subordinados del recurso también heredan la política de la organización. Por ejemplo, si aplicas una política en una carpeta, 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 la jerarquía.
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.
Limitaciones
Las siguientes limitaciones se aplican a las políticas de organización personalizadas:
- No se aplica a los nombres de instancias de VM cuando usas la API de inserción masiva.
- Solo se aplica en el método
CREATE
para los recursos de Compute Engine. - Solo está disponible en las APIs de Cloud Functions v2. No se pueden aplicar en Cloud Run Functions (1ª gen.).
- Protege solo las funciones cuando uses las APIs de Cloud Functions v2. Cloud Run Functions también se pueden modificar desde la API de Cloud Run. Para obtener protección adicional, es posible que también debas aplicar restricciones personalizadas en Cloud Run.
Antes de comenzar
- Asegúrate de conocer el ID de la organización.
Roles obligatorios
- Para crear o cambiar las políticas de la organización, tu cuenta debe tener el rol
roles/orgpolicy.policyAdmin
.
Crea una restricción personalizada
Una restricción personalizada se define en un archivo YAML 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 deseas obtener más información para compilar condiciones en restricciones personalizadas mediante CEL, consulta la sección CEL de Crea y administra restricciones personalizadas.
Para especificar una restricción personalizada que niegue toda la creación de funciones con una instancia máxima superior a 150, haz lo siguiente:
Crea un archivo nuevo
maxInstanceConstraint.yaml
con el siguiente contenido:name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: - cloudfunctions.googleapis.com/Function methodTypes: - CREATE - UPDATE condition: resource.serviceConfig.maxInstanceCount > 150 actionType: DENY displayName: Deny functions with max instance count greater than 150 description: Functions cannot be created with a max instance count greater than 150
Reemplaza ORGANIZATION_ID
por el ID de tu organización, como 123456789
.
Para obtener más información, consulta Define consultas personalizadas.
Configura una restricción personalizada
Después de crear el archivo YAML para una nueva restricción personalizada, debes configurarla para que esté disponible para las políticas de la organización de tu organización. Para configurar una restricción personalizada, usa el comandogcloud org-policies set-custom-constraint
:
gcloud org-policies set-custom-constraint CONSTRAINT_PATH
CONSTRAINT_PATH
por la ruta de acceso completa al
archivo de restricción personalizado. Por ejemplo, /home/user/customconstraint.yaml
.
Una vez completadas, tus restricciones personalizadas estarán disponibles como políticas de la organización en tu lista de políticas de la organización de Google Cloud.
Para verificar que la restricción personalizada exista, usa el comando
gcloud org-policies list-custom-constraints
:
gcloud org-policies list-custom-constraints --organization=ORGANIZATION_ID
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 de manera forzosa una política de la organización personalizada
Puedes aplicar una restricción booleana si creas una política de la organización que haga referencia a ella y si aplicas esa política a un recurso de Google Cloud.Console
- En la consola de Google Cloud, ve a la página Políticas de la organización.
- En el selector de proyectos, selecciona el proyecto para el que deseas configurar la política de la organización.
- En la lista de la página Políticas de la organización, selecciona tu 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 la aplicación de esta política de la organización está activada o desactivada.
- Opcional: haz clic en Agregar condición para que la política de la organización sea condicional en una etiqueta. Ten en cuenta que si agregas una regla condicional a una política de la organización, debes agregar al menos una regla sin condición o la política no se puede guardar. Para obtener más información, consulta Configura una política de la organización con etiquetas.
- Si se trata de una restricción personalizada, puedes hacer clic en Probar cambios para simular el efecto de esta política de la organización. Para obtener más información, consulta Prueba los cambios en las políticas de la organización con Policy Simulator.
- Para finalizar y aplicar la política de la organización, haz clic en Establecer política. La política tarda hasta 15 minutos en aplicarse.
gcloud
Para crear una política de la organización que aplique una restricción booleana, crea un archivo de política en formato YAML que haga referencia a la restricción:
name: projects/PROJECT_ID/policies/CONSTRAINT_NAME spec: rules: - enforce: true
Reemplaza lo siguiente:
-
PROJECT_ID
: el proyecto en el que deseas aplicar tu restricción. -
CONSTRAINT_NAME
: el nombre que definiste para tu restricción personalizada. Por ejemplo:custom.cloudFunctionsMaxInstanceLimit
Para aplicar la política de la organización que contiene la restricción, ejecuta el siguiente comando:
gcloud org-policies set-policy POLICY_PATH
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 la política de la organización personalizada
Para crear una función con una instancia máxima de 151, ejecuta el siguiente comando:
gcloud functions deploy FUNCTION_NAME \
...
--max-instances 151
Se muestra el siguiente resultado:
Operation denied by custom org policy on resource: ["customConstraints/custom.cloudFunctionsMaxInstanceLimit": "Cloud Functions cannot be created with a max instance count greater than 150."]
Operaciones y recursos compatibles con Cloud Run Functions
Tipo de recurso | Tipos de métodos | Referencia de la API |
---|---|---|
cloudfunctions.googleapis.com/Function |
CREATE , UPDATE |
projects.locations.functions |
Ejemplos comunes de políticas de la organización
En la siguiente tabla, se proporciona la sintaxis de algunas políticas de la organización personalizadas que pueden resultarte útiles:
Descripción | Sintaxis de la restricción |
---|---|
Evita que se creen funciones con un lenguaje específico |
name: organizations/ORGANIZATION_IDcustomConstraints/custom.cloudFunctionRuntimeBlock resource_types: cloudfunctions.googleapis.com/Function method_types: - CREATE - UPDATE condition: resource.buildConfig.runtime == "python312" action_type: DENY display_name: Deny functions using Python 3.12 description: Functions cannot be created with Python 3.12 as the language runtime |
Cómo exigir que las funciones usen un grupo de trabajadores específico |
name: organizations/ORGANIZATION_ID/customConstraints/custom.cloudFunctionsWorkerPool resource_types: cloudfunctions.googleapis.com/Function method_types: - CREATE - UPDATE condition: resource.buildConfig.workerPool == "WORKER_POOL" action_type: DENY display_name: Require worker pool description: Functions must use a worker pool |
Exige que las funciones almacenen todas las imágenes de contenedor en un repositorio de imágenes específico |
name: organizations/ORGANIZATION_ID/customConstraints/custom.cloudFunctionsRepository resource_types: cloudfunctions.googleapis.com/Function method_types: - CREATE - UPDATE condition: resource.buildConfig.dockerRepository.startsWith("REPO_PATH") action_type: DENY display_name: Image repository constraint description: Functions must push images to a central image repository under REPO_PATH |
¿Qué sigue?
- Consulta Introducción al Servicio de las Políticas de la Organización para obtener más información sobre las políticas de la organización.
- Obtén más información para crear y administrar políticas de la organización.
- Consulta la lista completa de Restricciones de políticas de la organización predefinidas.