En esta página, se muestra cómo usar el Servicio de políticas de la organización para exigir que Los clústeres de GKE usan una o más plataformas basadas en verificaciones de validación continua (CV) políticas. Debes especificar las políticas de plataforma basadas en verificaciones obligatorias restricciones personalizadas. Luego, aplica las restricciones personalizadas en la política de la organización.
Costos
En esta guía, se usan los siguientes servicios de Google Cloud:
- Autorización Binaria, pero la CV está disponible de forma gratuita durante la etapa de vista previa
- Las políticas y las restricciones de la organización se ofrecen sin cargo.
Antes de comenzar
- Habilitar la autorización binaria
- Configurar un CV con políticas de plataformas basadas en verificaciones y al menos una política de la plataforma basada en la verificación de CV.
Roles obligatorios
Para obtener los permisos que necesitas a fin de crear restricciones y aplicar políticas de la organización, pídele a tu administrador que te otorgue el rol de IAM de administrador de políticas de la organización (roles/orgpolicy.policyAdmin
) en tu organización de Google Cloud.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
Crea una restricción personalizada de CV
Console
En la consola de Google Cloud, ve a la página Políticas de la organización.
En la página Políticas de la organización, haz clic en
. Restricción personalizada.Si se te solicita que lo hagas, haz clic en Cambiar a la organización superior. Para Para obtener más información sobre las organizaciones, consulta Introducción al Servicio de políticas de la organización
En Detalles de la restricción, ingresa la siguiente información en los campos:
Nombre visible: Un nombre visible para la restricción, como
Require a Binary Authorization continuous validation policy for all GKE clusters
. Usa el nombre visible para buscar la restricción después de que se guarde. El campo de nombre visible tiene una longitud máxima de 200 caracteresConstraint ID: Es un ID de restricción para tu restricción, por ejemplo,
RequireBinAuthzCVPolicy
.Descripción (opcional): 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 del campo de descripción es 2000 caracteres.
En Aplicación, haz lo siguiente:
En Tipos de recursos, ingresa
container.googleaips.com/Cluster
.En Método de aplicación, selecciona Aplicar cuando se cree y se actualice.
Ingresa una expresión en el campo Condición. La longitud máxima de este campo es 1000 caracteres. La restricción personalizada se aplica cuando la condición se evalúa como
true
. La condición es como expresión en la sintaxis de Common Expression Language (CEL). Puedes combinar expresiones con (&&
) o (||
) para crear una condición compleja. CEL es un lenguaje de expresión similar a C. Para aprender más sobre la sintaxis y semántica de CEL, consulta https://github.com/google/cel-spec. Para ingresar la condición, haz lo siguiente:Haz clic en
Editar condición.Ingresa una expresión para comprobar la existencia de un Política de la plataforma de CV. La siguiente condición requiere que una plataforma de CV la vinculación de políticas y que la política de la plataforma tenga una dirección nombre:
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de tu política de la plataforma. El proyecto debe estar en la misma organización.POLICY_ID
: El ID de la política de tu política de la plataforma.
La siguiente condición requiere que dos plataformas de CV vinculaciones de políticas existen y que cada una tiene un nombre de política de plataforma específico.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: Es el ID del proyecto de tu primera política de la plataforma. El proyecto debe estar en la misma organización.POLICY_ID1
: Es el ID de la primera política de tu plataforma.PROJECT_ID2
: Es el ID del proyecto de tu política de la segunda plataforma.POLICY_ID2
: el ID de la segunda política de la plataforma.Haz clic en Guardar.
En Acción, selecciona Permitir.
Para crear tu restricción personalizada, haz clic en Crear restricción.
gcloud
Crea un archivo YAML para la restricción personalizada:
name: organizations/ORGANIZATION_ID/customConstraints/custom.CONSTRAINT_ID resource_types: container.googleapis.com/Cluster method_types: - CREATE - UPDATE condition: >- CONDITION action_type: ACTION display_name: DISPLAY_NAME description: DESCRIPTION
Reemplaza lo siguiente:
ORGANIZATION_ID
: El ID de tu organización, por ejemplo,123456789
.CONSTRAINT_ID
: Es un ID de restricción, por ejemplo,RequireBinAuthzCVPolicy
CONDITION
: Ingresa una expresión para verificar la existencia de una política de plataforma de CV. La longitud máxima de este campo es 1000 caracteres. La restricción personalizada se aplica cuando la condición se evalúa comotrue
. La condición es como expresión en la sintaxis de Common Expression Language (CEL). Puedes combinar expresiones con (&&
) o (||
) para crear una condición compleja. CEL es un lenguaje de expresión similar a C. Para aprender más sobre la sintaxis y semántica de CEL, consulta https://github.com/google/cel-spec. La siguiente condición requiere que una plataforma de CV vinculación de política existente y que la política de la plataforma tiene una dirección nombre:resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID/platforms/gke/policies/POLICY_ID")
Reemplaza lo siguiente:
PROJECT_ID
: Es el ID del proyecto de tu política de la plataforma. El proyecto debe estar en la misma organización.POLICY_ID
: El ID de la política de tu política de la plataforma.
La siguiente condición requiere que dos plataformas de CV vinculaciones de políticas existen y que cada una tiene un nombre de política de plataforma específico.
resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID1/platforms/gke/policies/POLICY_ID1") && resource.binaryAuthorization.policyBindings.exists(policy, policy.name == "projects/PROJECT_ID2/platforms/gke/policies/POLICY_ID2")
PROJECT_ID1
: Es el ID del proyecto de tu primera política de la plataforma. El proyecto debe estar en la misma organización.POLICY_ID1
: Es el ID de la primera política de tu plataforma.PROJECT_ID2
: Es el ID del proyecto de tu política de la segunda plataforma.POLICY_ID2
: el ID de la segunda política de la plataforma.ACTION
: la acción que se realiza si se cumplecondition
. Puede serALLOW
oDENY
.DISPLAY_NAME
: Es un nombre sencillo para la restriccióin, por ejemplo,Require a Binary Authorization continuous validation policy for all GKE clusters
. El campo de nombre visible tiene una longitud máxima de 200 caracteresDESCRIPTION
: 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 del campo de descripción es 2000 caracteres.
Aplica la restricción personalizada:
gcloud org-policies set-custom-constraint CUSTOM_CONSTRAINT_PATH
Reemplaza
CUSTOM_CONSTRAINT_PATH
por la ruta de acceso de tu definición de restricción personalizada.Verifica que exista la restricción personalizada:
gcloud org-policies list-custom-constraints \ --organization=ORGANIZATION_ID
El resultado es similar al siguiente:
CUSTOM_CONSTRAINT: custom.RequireBinAuthzCVPolicy ACTION_TYPE: ALLOW METHOD_TYPES: CREATE,UPDATE RESOURCE_TYPES: container.googleapis.com/Cluster DISPLAY_NAME: This cluster requires the continuous validation policy: projects/my-project/platforms/gke/policies/my-policy
Para habilitar la aplicación forzosa de la restricción personalizada que creaste, crea una política de la organización.
Usa una política de la organización para aplicar de manera forzosa la restricción personalizada
Para aplicar la nueva restricción personalizada, crea una política de la organización que haga referencia a la restricción y, luego, aplica la política de la organización.
Console
Para aplicar la restricción, haz lo siguiente:
En la consola de Google Cloud, ve a la página Políticas de la organización.
Elige el selector de proyectos, elige la organización.
Busca y selecciona tu restricción en la lista.
En la página Detalles de la política de esa restricción, 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 Aplicación, selecciona Activada.
Opcional: Haz 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.
gcloud
Crea un archivo de definición de política YAML:
name: organizations/ORGANIZATION_ID/policies/custom.CONSTRAINT_ID spec: rules: - enforce: true
Reemplaza lo siguiente:
ORGANIZATION_ID
: el ID de la organizaciónCONSTRAINT_ID
: el ID de la restricción
Aplica la política:
gcloud org-policies set-policy ORG_POLICY_PATH
Reemplaza
ORG_POLICY_PATH
por la ruta de acceso al archivo de definición de la política.Verifica que la política exista:
gcloud org-policies list \ --organization=ORGANIZATION_ID
Reemplaza
ORGANIZATION_ID
por el ID de la organización.Para obtener una lista de argumentos, consulta
gcloud org-policies list
.El resultado es similar al siguiente:
CONSTRAINT: custom.RequireBinAuthzCVPolicy LIST_POLICY: - BOOLEAN_POLICY: SET ETAG: CN622LIGEIDXnpMB-
La política puede tardar hasta 15 minutos en aplicarse.
Para aplicar varias restricciones en la plataforma basada en la verificación de CV de seguridad, haz lo siguiente:
- Crea una restricción personalizada por CV. basada en verificaciones.
- Actualiza la política de la organización con cada restricción personalizada como se describe en de esta sección.
Borra la restricción personalizada
Puedes borrar una restricción personalizada con la consola de Google Cloud o Google Cloud CLI.
Console
En la consola de Google Cloud, ve 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 organización, selecciona tu organización.
Busca y selecciona tu restricción en la lista.
En Detalles de la restricción, haz clic en
. Borrar.Para confirmar que deseas borrar la restricción, haz clic en Borrar.
gcloud
Para borrar una restricción personalizada, usa el org-policies delete-custom-constraint
.
Comando de la CLI de gcloud:
gcloud org-policies delete-custom-constraint custom.CONSTRAINT_ID \
--organization=ORGANIZATION_ID
Reemplaza lo siguiente:
ORGANIZATION_ID
: el ID de la organización, como123456789
CONSTRAINT_NAME
: el nombre de tu restricción personalizada
El resultado es similar al siguiente:
Deleted custom constraint [organizations/123456789/customConstraints/CONSTRAINT_NAME]
Después de borrar una restricción personalizada, cualquier política que se haya creado con que sigue existiendo, pero se ignoran. No puedes crear otra a una restricción personalizada con el mismo nombre que una que se borró.
¿Qué sigue?
- Obtén más información sobre las restricciones de las políticas de la organización.
- Usa la verificación de actualidad de la imagen
- Usa la verificación de certificación de firma simple
- Usa la verificación de firma de Sigstore
- Usa la verificación de SLSA
- Usa la verificación del directorio de confianza
- Usa la verificación de vulnerabilidades
- Visualiza los registros de la CV