En este documento, se describen los registros de auditoría que Google Kubernetes Engine crea como parte de los Registros de auditoría de Cloud.
Descripción general
Los servicios de Google Cloud escriben registros de auditoría para ayudarte a responder las preguntas “¿Quién hizo qué, dónde y cuándo?”. dentro de tus recursos de Google Cloud.
Los proyectos de Google Cloud contienen solo los registros de auditoría de los recursos que están de forma directa dentro del proyecto de Google Cloud. Otros recursos de Google Cloud, como las carpetas, organizaciones y cuentas de facturación, contienen los registros de auditoría correspondientes a la entidad.
Consulta Descripción general de los registros de auditoría de Cloud para obtener una descripción general de estos registros. Para comprender mejor el formato del registro de auditoría, consulta Información sobre los registros de auditoría.
Registros de auditoría disponibles
Los siguientes tipos de registros de auditoría están disponibles para GKE:
-
Registros de auditoría de actividad del administrador
Incluye operaciones de “escritura de administrador” que escriben metadatos o información de configuración.
No puedes inhabilitar los registros de auditoría de actividad del administrador.
-
Registros de auditoría de acceso a los datos
Incluye operaciones de “lectura de administrador” que leen metadatos o información de configuración. También incluye las operaciones de “lectura de datos” y “escritura de datos” que leen o escriben datos proporcionados por el usuario.
Para recibir registros de auditoría de acceso a los datos, debes habilitarlos de forma explícita.
Para obtener descripciones más completas de los tipos de registros de auditoría, consulta Tipos de registros de auditoría.
Operaciones auditadas
A continuación, se resume qué operaciones de la API corresponden a cada tipo de registro de auditoría en GKE:
Categoría de registros de auditoría | Operaciones de GKE |
---|---|
Registros de auditoría de actividad del administrador | io.k8s.authorization.rbac.v1 |
io.k8s.authorization.rbac.v1.roles |
Formato de registro de auditoría
Las entradas del registro de auditoría incluyen los siguientes objetos:
La entrada de registro, que es un objeto de tipo
LogEntry
. Los campos útiles incluyen los siguientes:- El campo
logName
contiene el ID del recurso y el tipo de registro de auditoría. - El campo
resource
contiene el objetivo de la operación auditada. - El campo
timeStamp
contiene la hora de la operación auditada. - El campo
protoPayload
contiene la información auditada.
- El campo
Los datos de registro de auditoría, que son un objeto
AuditLog
alojado en el campoprotoPayload
de la entrada de registro.La información opcional de auditoría específica del servicio, que es un objeto específico del servicio. En las integraciones anteriores, este objeto se mantiene en el campo
serviceData
del objetoAuditLog
. Las integraciones posteriores usan el campometadata
.
Para obtener información acerca de otros campos en estos objetos, además de cómo interpretarlos, consulta Información de los registros de auditoría.
Nombre del registro
Los nombres de Registros de auditoría de Cloud incluyen identificadores de recursos que indican el proyecto de Cloud o cualquier otra entidad de Google Cloud que posee los registros de auditoría y si el registro contiene datos de registro de auditoría de actividad de administrador, acceso a los datos, política denegada o eventos del sistema.
A continuación, se muestran los nombres de los registros de auditoría, incluidas las variables para los identificadores de recursos:
projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fdata_access projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fpolicy folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Factivity folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fdata_access folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fsystem_event folders/FOLDER_ID/logs/cloudaudit.googleapis.com%2Fpolicy billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Factivity billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fdata_access billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com%2Fpolicy organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fdata_access organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fsystem_event organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Fpolicy
Nombre del servicio
Los registros de auditoría de Kubernetes usan el nombre de servicio k8s.io
.
El servicio k8s.io
se usa para los registros de auditoría de Kubernetes.
El componente del servidor de la API de Kubernetes genera estos registros, que contienen información sobre las acciones realizadas mediante la API de Kubernetes. Por ejemplo, el servicio k8s.io
registra cualquier cambio que realices en un recurso de Kubernetes mediante el comando de kubectl
. Las entradas de registro de auditoría de Kubernetes son útiles a fin de investigar solicitudes a la API sospechosas, recopilar estadísticas o crear alertas de supervisión para llamadas a la API no deseadas.
Para obtener una lista de los nombres de los servicios de la API de Cloud Logging y su tipo de recurso supervisado correspondiente, consulta Asigna servicios a recursos.
Tipos de recursos
Los registros de auditoría de Kubernetes usan el tipo de recurso k8s_cluster
.
Las entradas de registro escritas por el servidor de la API de Kubernetes se aplican al tipo de recurso k8s_cluster
. En estas entradas de registro, se describen operaciones en los recursos de Kubernetes del clúster, por ejemplo, pods, implementaciones y secretos.
Para obtener una lista de todos los tipos de recursos supervisados de Cloud Logging y la información descriptiva, consulta Tipos de recursos supervisados.
Identidades de los emisores
La dirección IP del emisor se encuentra en el campo RequestMetadata.caller_ip
del objeto AuditLog
. Logging podría ocultar ciertas direcciones IP e identidades de emisores.
Para obtener información de la información que se oculta en los registros de auditoría, consulta Identidades de los emisores en los registros de auditoría.
Habilita el registro de auditoría
Los registros de auditoría de actividad del administrador siempre están habilitados; no puedes inhabilitarlos.
Los registros de auditoría de acceso a los datos están inhabilitados de forma predeterminada y no se escriben, a menos que se habiliten explícitamente (excepto los registros de auditoría de acceso a los datos de BigQuery, que no pueden inhabilitarse).
Si deseas obtener más información para habilitar algunos o todos tus registros de auditoría de acceso a los datos, consulta Configura registros de auditoría de acceso a los datos.
Permisos y roles
Los permisos y los roles de IAM determinan tu capacidad para acceder a los datos de registros de auditoría en los recursos de Google Cloud.
Cuando decidas qué roles y permisos específicos de Logging se aplican a tu caso de uso, considera lo siguiente:
El rol visor de registros (
roles/logging.viewer
) te otorga acceso de solo lectura a los registros de auditoría de la actividad del administrador, la política denegada y los eventos del sistema. Si solo tienes este rol, no podrás ver los registros de auditoría de acceso a los datos que se encuentren en el bucket_Default
.El visor de registros privados (
(roles/logging.privateLogViewer
) incluye los permisos que contieneroles/logging.viewer
, además de la capacidad de leer registros de auditoría de acceso a los datos del bucket_Default
.Ten en cuenta que si estos registros privados se almacenan en buckets definidos por el usuario, cualquier usuario que tenga permisos para leer registros en esos buckets puede leer los registros privados. Para obtener más información de los buckets de registros, consulta Descripción general del enrutamiento y el almacenamiento.
Para obtener más información de los permisos y los roles de IAM que se aplican a los datos de registros de auditoría, consulta Control de acceso con IAM.
Ver registros
Puedes consultar todos los registros de auditoría o puedes consultar los registros por su nombre de registro de auditoría. El nombre del registro de auditoría incluye el identificador de recursos del proyecto de Google Cloud, la carpeta, la cuenta de facturación o la organización cuya información de registro de auditoría deseas ver.
Tus consultas pueden especificar los campos LogEntry
indexados, y si usas la página Análisis de registros, que admite consultas de SQL, puedes visualizar los resultados de consultas con un gráfico.
Para obtener más información para consultar tus registros, consulta las siguientes páginas:
- Crea consultas en el Explorador de registros.
- Consulta y visualiza registros en Análisis de registros.
- Consultas de muestra para estadísticas de seguridad.
Console
En la consola de Google Cloud, puedes usar el Explorador de registros para recuperar las entradas de registro de auditoría de tu carpeta, organización o proyecto de Google Cloud:
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
Selecciona una organización, una carpeta o un proyecto existente de Google Cloud.
Para mostrar todos los registros de auditoría, ingresa cualquiera de las siguientes consultas en el campo de editor de consultas y, luego, haz clic en Ejecutar consulta:
logName:"cloudaudit.googleapis.com"
protoPayload."@type"="type.googleapis.com/google.cloud.audit.AuditLog"
Para mostrar los registros de auditoría de un recurso específico y un tipo de registro de auditoría, en el panel Compilador de consultas, haz lo siguiente:
En Tipo de recurso, selecciona el recurso de Google Cloud cuyos registros de auditoría deseas ver.
En Nombre del registro, selecciona el tipo de registro de auditoría que deseas ver:
- En el caso de los registros de auditoría de la actividad del administrador, selecciona activity.
- En los registros de auditoría de acceso a los datos, selecciona data_access.
- En el caso de los registros de auditoría de eventos del sistema, selecciona system_event.
- En el caso de los registros de auditoría de política denegada, selecciona policy.
Haz clic en Ejecutar consulta.
Si no ves estas opciones, significa que no hay registros de auditoría de ese tipo disponibles en la carpeta, la organización o el proyecto de Google Cloud.
Si tienes problemas cuando intentas ver registros en el Explorador de registros, consulta la información acerca de la solución de problemas.
Para obtener más información de las consultas con el Explorador de registros, visita Compila consultas en el Explorador de registros. Para obtener información acerca de cómo resumir las entradas de registro en el Explorador de registros a través de Gemini, consulta Resume entradas de registro con la asistencia de Gemini.
gcloud
Google Cloud CLI proporciona una interfaz de línea de comandos para la API de Logging. Proporciona un identificador de recurso válido en cada uno de los nombres de registro. Por ejemplo, si tu consulta incluye un PROJECT_ID, el identificador del proyecto que proporciones debe hacer referencia al proyecto de Google Cloud que se encuentra seleccionado.
Para leer las entradas de registro de auditoría a nivel de proyecto de Google Cloud, ejecuta el siguiente comando:
gcloud logging read "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" \ --project=PROJECT_ID
Para leer las entradas del registro de auditoría a nivel de las carpetas, ejecuta el siguiente comando:
gcloud logging read "logName : folders/FOLDER_ID/logs/cloudaudit.googleapis.com" \ --folder=FOLDER_ID
Para leer las entradas del registro de auditoría a nivel de organización, ejecuta el siguiente comando:
gcloud logging read "logName : organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com" \ --organization=ORGANIZATION_ID
Para leer las entradas del registro de auditoría a nivel de la cuenta de Facturación de Cloud, ejecuta el siguiente comando:
gcloud logging read "logName : billingAccounts/BILLING_ACCOUNT_ID/logs/cloudaudit.googleapis.com" \ --billing-account=BILLING_ACCOUNT_ID
Agrega la marca --freshness
a tu comando para leer los registros que tienen más de 1 día de antigüedad.
Para obtener más información del uso de gcloud CLI, consulta gcloud logging read
.
API
Cuando compiles tus consultas, proporciona un identificador de recurso válido en cada uno de los nombres de registro. Por ejemplo, si tu consulta incluye un PROJECT_ID, el identificador del proyecto que proporciones debe hacer referencia al proyecto de Google Cloud que se encuentra seleccionado.
Por ejemplo, si quieres usar la API de Logging para ver las entradas del registro de auditoría a nivel de proyecto, haz lo siguiente:
Ve a la sección Probar esta API en la documentación del método
entries.list
.Ingresa lo siguiente en el cuerpo de la solicitud del formulario Prueba esta API. Si haces clic en este formulario prepropagado, se completará el cuerpo de la solicitud de manera automática, pero deberás proporcionar un PROJECT_ID válido para cada nombre de registro.
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Haz clic en Ejecutar.
Consultas de muestra
Para usar las consultas de muestra en la siguiente tabla, completa estos pasos:
Reemplaza las variables en la expresión de consulta con la información de tu proyecto y, luego, copia la expresión con el ícono de portapapeles content_copy.
-
En la consola de Google Cloud, ve a la página Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.
Habilita Mostrar consulta para abrir el campo query-editor y, luego, pega la expresión en el campo query-editor:
Haz clic en Ejecutar consulta. Los registros que coincidan con la consulta se enumerarán en el panel Resultados de la consulta.
Para encontrar registros de auditoría de GKE, usa las siguientes consultas en el Explorador de registros:
Nombre de la consulta o del filtro | Expresión |
---|---|
Registros de auditoría de las cargas de trabajo | log_id("cloudaudit.googleapis.com/activity") resource.type="k8s_cluster" resource.labels.cluster_name="CLUSTER_NAME" protoPayload.request.metadata.name="WORKLOAD_NAME" |
Actualización de metadatos del nodo para el objeto de nodo | resource.type="k8s_cluster" log_id("cloudaudit.googleapis.com/activity") protoPayload.methodName="io.k8s.core.v1.nodes.update" resource.labels.cluster_name="CLUSTER_NAME" resource.labels.location="LOCATION_NAME" |
Cambios en el control de acceso basado en roles, excepto los cambios automatizados del sistema | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.methodName:"io.k8s.authorization.rbac.v1" NOT protoPayload.authenticationInfo.principalEmail:"system" |
Cambios en los roles del control de acceso basado en roles, excepto los cambios automatizados del sistema | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.methodName:"io.k8s.authorization.rbac.v1.roles" NOT protoPayload.authenticationInfo.principalEmail:"system" |
Cambios en las vinculaciones de roles de control de acceso basado en roles, excepto los cambios automatizados del sistema | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.methodName:"io.k8s.authorization.rbac.v1.rolebindings" NOT protoPayload.authenticationInfo.principalEmail:"system" |
Solicitudes de firma de certificados | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.resourceName:"certificates.k8s.io/v1beta1/certificatesigningrequests" |
Solicitudes web no autenticadas | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.authenticationInfo.principalEmail:"system:anonymous" |
Llamadas de identidad de bootstrap de Kubelet | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.authenticationInfo.principalEmail:"kubelet" |
Solicitudes autenticadas de nodo | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.authenticationInfo.principalEmail:"system:node" |
Llamadas fuera de un rango de direcciones IP | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.requestMetadata.callerIp!="127.0.0.1" protoPayload.requestMetadata.callerIp!="::1" NOT protoPayload.requestMetadata.callerIp:"IP_ADDRESS_PREFIX" |
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y que describen la creación de una implementación
|
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.methodName:"deployments.create" |
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y tienen un valor principalEmail de system:anonymous .
Estas entradas probablemente representan intentos fallidos de autenticación. |
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.authenticationInfo.principalEmail="system:anonymous" |
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso gke_cluster y tienen un valor severity de ERROR .
|
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="gke_cluster" severity="ERROR" |
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y que describen una solicitud de escritura a un secreto. |
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.methodName:"io.k8s.core.v1.secrets" NOT protoPayload.methodName:"get" NOT protoPayload.methodName:"list" NOT protoPayload.methodName:"watch" |
Entradas de registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y que describen una solicitud de Pod de un usuario en particular.
|
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.methodName:"io.k8s.core.v1.pods" protoPayload.authenticationInfo.principalEmail="dev@example.com" |
Enruta registros de auditoría
Puedes enrutar registros de auditoría a destinos compatibles de la misma manera en la que enrutas otros tipos de registros. Estos son algunos de los motivos por los que es posible que desees enrutar tus registros de auditoría:
Para mantener los registros de auditoría por un período más extenso o usar capacidades de búsqueda más potentes, puedes enrutar copias de tus registros de auditoría a Cloud Storage, BigQuery o Pub/Sub. Puedes enrutar a otras aplicaciones, otros repositorios y a terceros a través de Pub/Sub.
Para administrar los registros de auditoría en toda la organización, puedes crear receptores agregados que puedan enrutar registros desde cualquier proyecto de Google Cloud de la organización o desde todos los proyectos.
- Si tus registros de auditoría de acceso a los datos habilitados sobrepasan las asignaciones de registros de los proyectos de Google Cloud, puedes crear receptores que excluyan los registros de auditoría de acceso a los datos de Logging.
Para obtener instrucciones sobre el enrutamiento de registros, consulta Enruta registros a destinos compatibles.
Precios
Para obtener más información sobre los precios, consulta Resumen de precios de Cloud Logging.
Configura métricas y alertas
Para configurar métricas basadas en las entradas de registro, puedes usar Cloud Monitoring. Para configurar gráficos y alertas, puedes usar métricas basadas en registros.
Política de auditoría
La política de auditoría de Kubernetes determina qué entradas de registro exporta el servidor de API de Kubernetes. La política de auditoría de Kubernetes Engine determina qué entradas van al registro de auditoría de actividad de administrador y cuáles van al registro de acceso a los datos.
Para obtener más información sobre las políticas de auditoría en Kubernetes Engine, consulta la Política de auditoría de Kubernetes Engine.