Registros de auditoría de los Controles del servicio de VPC

En este documento, se describen los registros de auditoría que crea Controles del servicio de VPC 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 Controles del servicio de VPC:

  • Registros de auditoría de política denegada

    Identifica cuándo se deniega el acceso a un usuario o a una cuenta de servicio debido a un incumplimiento de la política de seguridad. El nombre del servicio y el nombre del método en los registros de auditoría de política denegada indican los nombres del recurso al que se le negó el acceso al usuario o a la cuenta de servicio.

    No puedes inhabilitar los registros de auditoría de política denegada, Sin embargo, puedes agregar lo siguiente al filtro de exclusión de tu receptor _Default para excluir los registros de auditoría de política denegada: LOG_ID("cloudaudit.googleapis.com/policy"). También puedes inhabilitar el receptor _Default para Cloud Logging, lo que evita que los registros se enruten al bucket _Default.

Para obtener descripciones más completas de los tipos de registros de auditoría, consulta Tipos de registros de auditoría.

Operaciones auditadas

En la siguiente tabla, se resumen las operaciones de la API que corresponden a cada tipo de registro de auditoría en Controles del servicio de VPC:

Categoría de registros de auditoría Métodos de los Controles del servicio de VPC
Registros de auditoría de política denegada Se admiten los métodos de los servicios que se integran con los Controles del servicio de VPC.

Contenido del registro de auditoría

Cada registro de auditoría contiene información que se puede dividir en dos categorías principales: la información sobre la llamada original y la información sobre violaciones a la política de seguridad. Se completa con la API de Controles del servicio de VPC de la siguiente manera:

Campo de registro de auditoría Descripción
serviceName Es el servicio al que se restringe el acceso por un perímetro de servicio. La solicitud a este servicio incumplió una verificación de los Controles del servicio de VPC y generó la creación de este registro de auditoría.
methodName El nombre de la llamada de método que generó el incumplimiento de la política de seguridad descrito en el registro. A menudo, methodName es el método asociado con el servicio de Google Cloud especificado en el campo serviceName.
authenticationInfo.principalEmail La dirección de correo electrónico del usuario o la cuenta de servicio que emitió la solicitud
Es posible que se oculten algunas direcciones de correo electrónico. Para obtener más información, consulta Identidades de los emisores en los registros de auditoría.
resourceName Es el recurso de Google Cloud especificado en la solicitud original del cliente. resourceName puede ser un proyecto, una carpeta, una organización o un recurso, como un bucket de Google Cloud.
requestMetadata.callerIp

La dirección IP del emisor de la llamada.

Si la llamada se originó en Internet, requestMetadata.callerIp es una dirección IPv4 o IPv6 pública.

Si la llamada se originó en una VM de Compute Engine, requestMetadata.callerIp es una dirección IP de la VM. La dirección IP de la VM puede ser interna o externa.

Si la llamada se originó dentro de la red de producción interna de Google, el valor de este campo es private. Este caso ocurre cuando la llamada se envía de un servicio de Google Cloud a otro.

request_metadata.caller_network Es el nombre de la red del llamador. Este valor se establece solo si el proyecto de host de red pertenece a la misma organización o al mismo proyecto de Google Cloud al que pertenece el recurso al que se accedió. Para obtener más información, consulta Redes de VPC.
status El estado general del control de una operación descrita en el registro.
metadata La información sobre el incumplimiento de la política de seguridad
metadata.resourceNames Los nombres de los recursos involucrados en el incumplimiento de la política de seguridad que se describe en el registro
metadata.dryRun Es un valor booleano que es True si el registro de auditoría es para una verificación de política de prueba.
metadata.vpcServiceControlsUniqueId El identificador único del incumplimiento de los Controles del servicio de VPC que se describe en el registro
metadata.violationReason El motivo de la infracción. Por ejemplo, RESOURCE_NOT_IN_SAME_SERVICE_PERIMETER significa que los recursos a los que se accede no pertenecen al mismo perímetro de servicio.
metadata.securityPolicyInfo El nombre del perímetro de servicio para el que se produjo el incumplimiento y el identificador único de la organización a la que pertenece el perímetro
metadata.egressViolations Por lo general, una infracción de salida se produce cuando una solicitud falla porque la fuente está protegida por un perímetro de servicio y el recurso de destino está fuera del perímetro. La fuente puede ser un proyecto o una red de VPC.
metadata.ingressViolations El tipo de incumplimiento. A menudo, este incumplimiento se produce si la solicitud intenta acceder a un recurso de destino protegido por un perímetro de servicio. La fuente puede ser un proyecto o una red de VPC. Este campo contiene una estructura que explica la infracción de entrada.
metadata.accessLevels Todos los niveles de acceso coincidentes en la organización que pertenece a la misma política de acceso Es posible que estos niveles de acceso no se especifiquen en el perímetro vulnerado y, por lo tanto, puedan causar una violación de NO_MATCHING_ACCESS_LEVEL.
metadata.intermediateServices Es la lista de los servicios involucrados en la cadena de solicitudes. Este campo está vacío para las solicitudes que inicia el usuario.
metadata.deviceState Es el estado del dispositivo que crea la solicitud cuando la política del dispositivo está habilitada. El valor predeterminado de este campo es Unknown

Formato del 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.
  • Los datos de registro de auditoría, que son un objeto AuditLog alojado en el campo protoPayload 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 objeto AuditLog. Las integraciones posteriores usan el campo metadata.

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 los Controles del servicio de VPC usan los nombres de los servicios que se integran a los Controles del servicio de VPC.

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 los Controles del servicio de VPC usan los tipos de recursos compatibles con los servicios que se integran con ellos.

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.

Permisos y funciones

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 contiene roles/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 campos LogEntry indexados. Para obtener más información sobre cómo consultar tus registros, consulta Compila consultas en el Explorador de registros.

El Explorador de registros te permite ver y filtrar entradas de registro individuales. Si deseas usar SQL para analizar grupos de entradas de registro, usa la página Análisis de registros. Para obtener más información, consulte:

La mayoría de los registros de auditoría se pueden ver en Cloud Logging a través de la consola de Google Cloud, Google Cloud CLI o la API de Logging. Sin embargo, para los registros de auditoría relacionados con la facturación, solo puedes usar Google Cloud CLI o la API de Logging.

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:

  1. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  2. Selecciona una organización, una carpeta o un proyecto existente de Google Cloud.

  3. 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"
    
  4. 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.

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.

REST

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:

  1. Ve a la sección Prueba esta API en la documentación del método entries.list.

  2. 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"
    }
    
  3. Haz clic en Ejecutar.

Consultas de muestra

Para usar las consultas de muestra en la siguiente tabla, completa estos pasos:

  1. 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 .

  2. En la consola de Google Cloud, ve a la página Explorador de registros.

    Ir al Explorador de registros

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo es Logging.

  3. Habilita Mostrar consulta para abrir el campo query-editor y, luego, pega la expresión en el campo query-editor:

    El editor de consultas en el que ingresas consultas de muestra.

  4. 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 los Controles del servicio de VPC, usa las siguientes consultas en el Explorador de registros:

Descripción de la consulta Expresión
Detalles del incumplimiento según un ID de rechazo
log_id("cloudaudit.googleapis.com/policy") severity=ERROR
resource.type="audited_resource"
protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.metadata.vpcServiceControlsUniqueId="UNIQUE_ID" 

Reemplaza UNIQUE_ID por el ID único del rechazo.

Incumplimientos de una dirección IP
log_id("cloudaudit.googleapis.com/policy")
severity=ERROR
resource.type="audited_resource"
protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.requestMetadata.callerIp="IP_ADDRESS"

Reemplaza IP_ADDRESS por la dirección IP del llamador.

Incumplimientos de un servicio
log_id("cloudaudit.googleapis.com/policy")
severity=ERROR
resource.type="audited_resource"
protoPayload.metadata."@type"="type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata"
protoPayload.serviceName="SERVICE_NAME"

Reemplaza SERVICE_NAME por el nombre del servicio restringido.

Cambio en el nivel de acceso de un perímetro
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
severity=NOTICE
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName="google.identity.accesscontextmanager.v1.AccessContextManager.UpdateServicePerimeter"
-protoPayload.metadata.previousState:"ACCESS_LEVEL"
protoPayload.request.servicePerimeter.status.accessLevels:"ACCESS_LEVEL"

Reemplaza ORGANIZATION_ID por el ID numérico de tu organización y ACCESS_LEVEL por el nombre único del nivel de acceso.

Operaciones CRUD de perímetro
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
severity=NOTICE
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.*ServicePerimeter"
protoPayload.request.servicePerimeter.name=~".*PERIMETER_NAME$"
Reemplaza PERIMETER_NAME por el nombre del perímetro.
Operaciones CRUD a nivel de acceso
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
severity=NOTICE
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.*AccessLevel"
protoPayload.request.accessLevel.name=~".*ACCESS_LEVEL$"
Crea y actualiza operaciones para reglas de entrada
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.*ServicePerimeter"
protoPayload.request.servicePerimeter.status.ingressPolicies:"*"
Crea y actualiza operaciones para reglas de salida
logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.serviceName="accesscontextmanager.googleapis.com"
protoPayload.methodName=~"google.identity.accesscontextmanager.v1.AccessContextManager.*ServicePerimeter"
protoPayload.request.servicePerimeter.status.egressPolicies:"*"

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.

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.