Esta página está dirigida a los usuarios de la validación continua antigua (obsoleta).
La validación continua antigua es una función de la autorización binaria que comprueba periódicamente las imágenes de contenedor asociadas a los pods en ejecución para verificar que siguen cumpliendo la política de singleton de proyecto de autorización binaria. Los registros de CV antiguos registran los resultados en Cloud Logging.
La versión antigua de CV no finaliza los pods en ejecución.
Limitaciones
La versión antigua de CV tiene las siguientes limitaciones:
- La versión antigua de CV solo admite pods desplegados en Google Kubernetes Engine (GKE).
- La versión antigua de CV no admite políticas de autorización binaria que especifiquen reglas específicas para identidades de servicio de Cloud Service Mesh, cuentas de servicio de Kubernetes o espacios de nombres de Kubernetes.
Antes de empezar
Asegúrate de haber configurado la autorización binaria para Google Kubernetes Engine en un proyecto. La política de registros de CV antigua registra eventos de conformidad de los pods en todos los clústeres del proyecto.
Asegúrate de que la CLI de gcloud esté actualizada a la última versión
Permisos obligatorios
Los roles de gestión de identidades y accesos (IAM) incluyen permisos y se pueden asignar a usuarios, grupos y cuentas de servicio. Los siguientes roles incluyen los permisos indicados para el CV:
Nombre de rol | Permisos de CV antiguos | Descripción |
---|---|---|
roles/binaryauthorization.policyEditor |
binaryauthorization.continuousValidationConfig.update |
Habilita e inhabilita la verificación en dos pasos. |
Para definir los permisos de gestión de identidades y accesos necesarios, ejecuta los siguientes comandos:
PROJECT_NUMBER=$(gcloud projects list \
--filter="projectId:ATTESTATION_PROJECT_ID" \
--format="value(PROJECT_NUMBER)")
SERVICE_ACCOUNT="service-$PROJECT_NUMBER@gcp-sa-binaryauthorization.iam.gserviceaccount.com"
gcloud projects add-iam-policy-binding ATTESTATION_PROJECT_ID \
--member="serviceAccount:$SERVICE_ACCOUNT" \
--role='roles/containeranalysis.occurrences.viewer'
Habilitar la versión antigua de CV
Consola
Para habilitar la CV antigua mediante la consola Google Cloud , haz lo siguiente:
En la Google Cloud consola, ve a la página Política de Autorización binaria.
Haga clic en la pestaña Política.
Haz clic en Editar política.
Despliega la sección Configuración adicional para las implementaciones de GKE y Anthos.
Selecciona la casilla Habilitar validación continua.
Haz clic en Save Policy.
API REST
Para habilitar la verificación de la edad antigua mediante la API REST, haz lo siguiente:
Almacena el ID de tu proyecto:
DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
Sustituye
DEPLOYER_PROJECT_ID
por el ID del proyecto en el que ejecutas GKE.Obtén el token de OAuth de Google Cloud.
BEARER_TOKEN=$(gcloud auth print-access-token)
El token solo es válido durante un breve periodo de tiempo.
Habilitar la versión antigua de CV:
curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "true"}}'
La CV antigua ya está configurada para registrar eventos.
La entrada de registro de registro es similar al siguiente ejemplo:
{
"insertId": "6054e143-0000-2562-aa64-883d24f57e70",
"jsonPayload": {
"@type": "type.googleapis.com/google.cloud.binaryauthorization.v1beta1.ContinuousValidationEvent",
"podEvent": {
"images": [
{
"description": "Image <var>IMAGE_NAME@IMAGE_DIGEST</var> denied by
attestor projects/<var>ATTESTOR_PROJECT_ID</var>/attestors/<var>ATTESTOR_NAME</var>:
No attestations found that were valid and signed by a key trusted by
the attestor",
"image": "<var>IMAGE_NAME@IMAGE_DIGEST</var>",
"result": "DENY"
}
],
"verdict": "VIOLATES_POLICY",
"deployTime": "2021-03-19T17:00:08Z",
"pod": "<var>POD_NAME</var>"
}
},
"resource": {
"type": "k8s_cluster",
"labels": {
"cluster_name": "<var>CLUSTER_NAME</var>",
"location": "<var>CLUSTER_LOCATION</var>",
"project_id": "<var>DEPLOYER_PROJECT_ID</var>"
}
},
"timestamp": "2021-03-19T17:15:43.872702342Z",
"severity": "WARNING",
"logName": "projects/<var>DEPLOYER_PROJECY_ID</var>/logs/binaryauthorization.googleapis.com%2Fcontinuous_validation",
"receiveTimestamp": "2021-03-19T17:57:00.432116179Z"
}
Para saber cómo consultar eventos de conversión antiguos, consulta Ver eventos de conversión antiguos en Cloud Logging.
Solución de problemas
La versión antigua de CV usa otros Google Cloud servicios, como Inventario de Recursos de Cloud y Pub/Sub. En los casos en los que falle la verificación de la versión antigua, puedes comprobar si hay errores de Inventario de Recursos de Cloud en Cloud Logging.
Además, la versión antigua de Conversiones crea un recurso de feed llamado binauthz-cv-cai-feed
. Si elimina o modifica el feed, es posible que la verificación de contenido antiguo falle. La versión antigua de la cobertura de conversión restaura automáticamente los feeds que faltan o que se han modificado, pero puede que no registre los resultados hasta que lo haga.
Inhabilitar CV
Consola
Para inhabilitar la verificación de la versión antigua mediante la consola Google Cloud , haz lo siguiente:
En la Google Cloud consola, ve a la página Autorización binaria:
Haga clic en la pestaña Política.
Haz clic en Editar política.
Desmarca la casilla Habilitar validación continua.
Haz clic en Save Policy.
API REST
Para inhabilitar la verificación de la edad antigua mediante la API REST, haz lo siguiente:
Almacena el ID de tu proyecto:
DEPLOYER_PROJECT_ID=DEPLOYER_PROJECT_ID
Sustituye
DEPLOYER_PROJECT_ID
por el ID del proyecto en el que ejecutas GKE.Obtén el token de OAuth de Google Cloud.
BEARER_TOKEN=$(gcloud auth print-access-token)
El token solo es válido durante un breve periodo de tiempo.
Inhabilita la verificación de la versión antigua con el siguiente comando:
curl "https://binaryauthorization.googleapis.com/v1alpha2/projects/${DEPLOYER_PROJECT_ID}/continuousValidationConfig" -X PUT -H "authorization: Bearer $BEARER_TOKEN" -H "Content-Type: application/json" --data '{"enforcementPolicyConfig": {"enabled": "false"}}'
Ver eventos de CV antiguos en Cloud Logging
Una vez que habilitas la verificación continua, se registran periódicamente en Cloud Logging todos los pods que infringen la política de autorización binaria.
Estas entradas de registro contienen el siguiente nombre de registro:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
Explorador de registros
Para ver eventos de verificación de contenido antiguos en Cloud Logging con el Explorador de registros, haz lo siguiente:
Selecciona el ID del proyecto en el que has habilitado Google Cloud Observability.
Introduce la siguiente consulta en el cuadro search-query:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
Seleccione el periodo en el selector de periodo.
Visualizador de registros antiguo
Para ver los eventos de verificación de la edad antiguos en Cloud Logging con el Explorador de registros, haz lo siguiente:
En el menú desplegable Opciones, selecciona Volver al visualizador de registros antiguo.
Elige el Google Cloud proyecto en el que has configurado Google Cloud Observability.
Introduce la siguiente consulta en el cuadro de consulta de búsqueda:
logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"
Seleccione el periodo en el selector de periodo.
gcloud
Para ver los eventos de CV antiguos de la semana pasada en Cloud Logging con gcloud
, ejecuta el siguiente comando:
gcloud logging read --order="desc" --freshness=7d \
'logName:"binaryauthorization.googleapis.com%2Fcontinuous_validation"'
Siguientes pasos
- Usa el acceso de emergencia para implementar un pod y ver los eventos de acceso de emergencia.
- Habilita la ejecución de prueba, despliega una imagen de contenedor y consulta los eventos de ejecución de prueba.