En este documento se describen los registros de auditoría creados por Google Kubernetes Engine como parte de los registros de auditoría de Cloud.
Información general
LosGoogle Cloud servicios cuentan con registros de auditoría para ayudarte a responder a las preguntas sobre quién hizo qué, dónde lo hizo y cuándo lo hizo. Google Cloud
Tus Google Cloud proyectos solo contienen los registros de auditoría de los recursos que están directamente en el Google Cloud proyecto. Otros Google Cloud recursos, como carpetas, organizaciones y cuentas de facturación, contienen los registros de auditoría de la propia entidad.
Para obtener una descripción general de los registros de auditoría de Cloud, consulta el artículo Información general sobre los registros de auditoría de Cloud. Para obtener más información sobre el formato de los registros de auditoría, consulta el artículo Interpretar los registros de auditoría.
Registros de auditoría disponibles
En GKE están disponibles los siguientes tipos de registros de auditoría:
-
Registros de auditoría de la actividad administrativa
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 de administración.
-
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 y escritura de datos que leen o escriben datos proporcionados por el usuario.
Para recibir registros de auditoría de acceso a datos, debe habilitarlos explícitamente.
Para obtener descripciones más detalladas de los tipos de registros de auditoría, consulta Tipos de registros de auditoría.
Operaciones auditadas
En la tabla siguiente se resumen las operaciones de la API que 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 la actividad administrativa | io.k8s.authorization.rbac.v1 |
io.k8s.authorization.rbac.v1.roles |
Formato del registro de auditoría
Las entradas de los registros de auditoría incluyen los siguientes objetos:
La entrada de registro en sí, que es un objeto de tipo
LogEntry
. Entre los campos útiles se incluyen los siguientes:- El
logName
contiene el ID del recurso y el tipo de registro de auditoría. - El
resource
contiene el objetivo de la operación auditada. - El
timeStamp
contiene la hora de la operación auditada. - El
protoPayload
contiene la información auditada.
- El
Los datos de registro de auditoría, que son un objeto
AuditLog
que se encuentra en el campoprotoPayload
de la entrada de registro.Información de auditoría específica del servicio opcional, que es un objeto específico del servicio. En las integraciones anteriores, este objeto se encuentra en el campo
serviceData
del objetoAuditLog
. En las integraciones posteriores, se usa el campometadata
.
Si quieres ver otros campos de estos objetos y cómo interpretarlos, consulta el artículo Interpretar los registros de auditoría.
Nombre del registro
Los nombres de los registros de auditoría de Cloud incluyen identificadores de recursos que indican elGoogle Cloud proyecto u otra Google Cloud entidad propietaria de los registros de auditoría, así como si el registro contiene datos de registro de auditoría de actividad de administración, acceso a datos, denegación de políticas o eventos del sistema.
A continuación se indican los nombres de los registros de auditoría, incluidas las variables de 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.
Estos registros los genera el componente del servidor de la API de Kubernetes y contienen información sobre las acciones realizadas mediante la API de Kubernetes. Por ejemplo, el servicio k8s.io
registra los cambios que hagas en un recurso de Kubernetes mediante el comando kubectl
. Las entradas del registro de auditoría de Kubernetes son útiles para investigar solicitudes de API sospechosas, recoger estadísticas o crear alertas de monitorización para llamadas de API no deseadas.
Para ver una lista de todos los nombres de servicio de la API Cloud Logging y sus tipos de recursos supervisados correspondientes, consulta Asignar 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 k8s_cluster
tipo de recurso. Estas entradas de registro describen las operaciones de los recursos de Kubernetes de tu clúster, como pods, implementaciones y secretos.
Para ver una lista de todos los tipos de recursos supervisados de Cloud Logging e información descriptiva, consulta Tipos de recursos supervisados.
Identidades de llamada
La dirección IP de la persona que llama se encuentra en el campo RequestMetadata.caller_ip
del objeto AuditLog
. Es posible que el registro oculte determinadas identidades de llamadas y direcciones IP.
Para obtener información sobre qué datos se ocultan en los registros de auditoría, consulta el artículo Identidades de las llamadas en los registros de auditoría.
Habilitar el registro de auditoría
Los registros de auditoría de actividad de administración están siempre habilitados y no se pueden inhabilitar.
Los registros de auditoría de acceso a datos están inhabilitados de forma predeterminada y no se escriben a menos que se habiliten explícitamente (a excepción de los registros de auditoría de acceso a datos de BigQuery, que no se pueden inhabilitar).
Para obtener información sobre cómo habilitar algunos registros de auditoría de acceso a datos o todos ellos, consulta el artículo sobre cómo habilitar registros de auditoría de acceso a datos.
Permisos y roles
Los permisos y roles de IAM determinan tu capacidad para acceder a los datos de los registros de auditoría de los Google Cloud recursos.
A la hora de decidir qué permisos y roles específicos de registro se aplican a tu caso práctico, ten en cuenta lo siguiente:
El rol Lector de registros (
roles/logging.viewer
) te da acceso de solo lectura a los registros de auditoría de actividad de administrador, de denegación de acceso por infracción de las políticas y de eventos del sistema. Si solo tienes este rol, no puedes ver los registros de auditoría de acceso a datos que se encuentran en el contenedor_Default
.El rol Visualizador de registros privados
(roles/logging.privateLogViewer
) incluye los permisos deroles/logging.viewer
, además de la capacidad de leer los registros de auditoría de acceso a datos del segmento_Default
.Ten en cuenta que, si estos registros privados se almacenan en segmentos definidos por el usuario, cualquier usuario que tenga permisos para leer registros en esos segmentos podrá leer los registros privados. Para obtener más información sobre los segmentos de registro, consulta la información general sobre el enrutamiento y el almacenamiento.
Para obtener más información sobre los permisos y roles de gestión de identidades y accesos que se aplican a los datos de los registros de auditoría, consulta el artículo sobre el control de acceso con gestión de identidades y accesos.
Ver registros
Puede consultar todos los registros de auditoría o buscar registros por su nombre. El nombre del registro de auditoría incluye el identificador de recurso del Google Cloud proyecto, la carpeta, la cuenta de facturación o la organización de los que quieras ver la información del registro de auditoría.
En tus consultas puedes especificar campos LogEntry
indexados.
Para obtener más información sobre cómo consultar tus registros, consulta el artículo Crear consultas en el Explorador de registros.
Explorador de registros te permite ver y filtrar entradas de registro concretas. Si quieres usar SQL para analizar grupos de entradas de registro, utiliza la página Analíticas de registros. Para obtener más información, consulta estos artículos:
- Consultar y ver registros en Analíticas de registros
- Consultas de ejemplo para obtener información valiosa sobre seguridad
- Resultados de la consulta del gráfico.
La mayoría de los registros de auditoría se pueden ver en Cloud Logging mediante laGoogle Cloud consola, la CLI de Google Cloud o la API de Logging. Sin embargo, para los registros de auditoría relacionados con la facturación, solo puedes usar la CLI de Google Cloud o la API Logging.
Consola
En la Google Cloud consola, puedes usar el Explorador de registros para obtener las entradas del registro de auditoría de tu Google Cloud proyecto, carpeta u organización:
-
En la Google Cloud consola, ve a la página Explorador de registros:
Ve al Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.
Selecciona un proyecto, una carpeta o una organización Google Cloud .
Para mostrar todos los registros de auditoría, introduce una de las siguientes consultas en el campo del editor de consultas y 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 y un tipo de registro de auditoría específicos, haz lo siguiente en el panel Generador de consultas:
En Tipo de recurso, selecciona el Google Cloud recurso cuyos registros de auditoría quieras ver.
En Nombre del registro, selecciona el tipo de registro de auditoría que quieras ver:
- En el caso de los registros de auditoría de actividad de administración, selecciona activity.
- En el caso de los registros de auditoría de acceso a datos, selecciona data_access.
- En el caso de los registros de auditoría de los eventos del sistema, selecciona system_event.
- En Registros de auditoría de denegación de acceso por infracción de las políticas, selecciona policy.
Haz clic en Realizar una consulta.
Si no ves estas opciones, significa que no hay registros de auditoría de ese tipo disponibles en el proyecto, la carpeta o la organización. Google Cloud
Si tienes problemas para ver los registros en el Explorador de registros, consulta la información sobre solución de problemas.
Para obtener más información sobre cómo hacer consultas con el Explorador de registros, consulta el artículo Crear consultas en el Explorador de registros.
gcloud
La CLI de Google Cloud proporciona una interfaz de línea de comandos a la API Logging. Indica 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 de proyecto que proporciones debe hacer referencia al proyectoGoogle Cloud seleccionado.
Para leer las entradas del 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 carpeta, 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 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
Añade la marca --freshness
al comando para leer los registros que tengan más de un día.
Para obtener más información sobre el uso de la herramienta de línea de comandos gcloud, consulta gcloud logging read
.
REST
Cuando cree sus consultas, proporcione 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 de proyecto que proporciones debe hacer referencia al proyectoGoogle Cloud seleccionado.
Por ejemplo, para usar la API Logging y ver las entradas de registro de auditoría de tu proyecto, haz lo siguiente:
Ve a la sección Probar esta API de la documentación del método
entries.list
.Incluye lo siguiente en la parte Cuerpo de la solicitud del formulario Probar esta API. Si haces clic en este formulario rellenado automáticamente, se rellenará automáticamente el cuerpo de la solicitud, pero debes proporcionar un PROJECT_ID válido en cada uno de los nombres de registro.
{ "resourceNames": [ "projects/PROJECT_ID" ], "pageSize": 5, "filter": "logName : projects/PROJECT_ID/logs/cloudaudit.googleapis.com" }
Haz clic en la opción para ejecutar.
Consultas de ejemplo
Para usar las consultas de ejemplo de la siguiente tabla, sigue estos pasos:
Sustituye las variables de la expresión de consulta por la información de tu proyecto y, a continuación, copia la expresión con el icono del portapapeles content_copy.
-
En la Google Cloud consola, ve a la página Explorador de registros:
Ve al Explorador de registros.
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Registro.
Habilita Mostrar consulta para abrir el campo del editor de consultas y, a continuación, pega la expresión en ese campo:
Haz clic en Realizar una consulta. Los registros que coinciden con tu consulta se muestran 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 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 de nodos para objetos 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, excluidos 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 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.roles" NOT protoPayload.authenticationInfo.principalEmail:"system" |
Cambios en las vinculaciones de roles del control de acceso basado en roles, excluidos 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 arranque de kubelet | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.authenticationInfo.principalEmail:"kubelet" |
Solicitudes autenticadas de nodos | logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="k8s_cluster" protoPayload.authenticationInfo.principalEmail:"system:node" |
Llamadas fuera de un intervalo 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 del registro de auditoría de la actividad administrativa que se aplican al tipo de recurso k8s_cluster y 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 del registro de auditoría de la actividad del administrador que se aplican al tipo de recurso k8s_cluster y tienen el valor principalEmail de system:anonymous .
Es probable que estas entradas representen 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 el valor severity de ERROR .
|
logName="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" resource.type="gke_cluster" severity="ERROR" |
Entradas del registro de auditoría de actividad de administración que se aplican al tipo de recurso k8s_cluster y describen una solicitud de escritura en 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 del registro de auditoría de actividad de administración que se aplican al tipo de recurso k8s_cluster y describen una solicitud de pod de un usuario concreto.
|
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" |
Registros de auditoría de rutas
Puede enrutar registros de auditoría a destinos admitidos de la misma forma que puede enrutar otros tipos de registros. Estos son algunos motivos por los que puede que quieras enrutar tus registros de auditoría:
Si quieres conservar los registros de auditoría durante un periodo más extenso o usar funciones de búsqueda más potentes, puedes enrutar copias de los registros de auditoría a Cloud Storage, BigQuery o Pub/Sub. Mediante Pub/Sub, puedes dirigir a otras aplicaciones, otros repositorios y a terceros.
Si quieres gestionar los registros de auditoría de toda una organización, puedes crear sumideros agregados que puedan enrutar registros de cualquiera de los proyectos de la organización o de todos a la vez. Google Cloud
- Si los registros de auditoría de acceso a datos habilitados están haciendo que tusGoogle Cloud proyectos sobrepasen tus asignaciones de registros, puedes crear receptores que excluyan los registros de auditoría de acceso a datos de Logging.
Para obtener instrucciones sobre cómo enrutar registros, consulta el artículo Enrutar registros a destinos admitidos.
Precios
Para obtener más información sobre los precios, consulta las secciones de Cloud Logging en la página Precios de Google Cloud Observability.
Configurar métricas y alertas
Para configurar métricas basadas en tus 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 la API de Kubernetes. La política de auditoría de Kubernetes Engine determina qué entradas se registran en el registro de auditoría de actividad de administración y cuáles en el registro de auditoría de acceso a los datos.
Para obtener más información sobre las políticas de auditoría en Kubernetes Engine, consulta Política de auditoría de Kubernetes Engine.