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

En este documento, se describen los registros de auditoría que crean los 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 la descripción general de los Registros de auditoría de Cloud para conocer más al respecto. 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 los Controles del servicio de VPC:

  • Registros de auditoría de política denegada

    Identifica cuándo se le niega el acceso a un usuario o 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 el usuario o la cuenta de servicio no tienen acceso.

    No puedes inhabilitar los registros de auditoría de política denegada, Sin embargo, puedes agregar lo siguiente al filtro de exclusión en 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 los 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 El servicio al que un perímetro de servicio restringe el acceso. La solicitud a este servicio infringió una verificación de los Controles del servicio de VPC y dio como resultado 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 algunas direcciones de correo electrónico estén ocultas. Para obtener más información, consulta Identidades de los emisores en los registros de auditoría.
resourceName El recurso de Google Cloud especificado en la solicitud original del cliente. El 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ó desde Internet, requestMetadata.callerIp es una dirección IPv4 o IPv6 pública.

Si la llamada se originó desde una VM de Compute Engine, requestMetadata.callerIp es una dirección IP de VM. Puede ser una dirección IP 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. Esto ocurre cuando la llamada se envía de un servicio de Google Cloud a otro.

request_metadata.caller_network El nombre de la red del emisor. Este valor solo se establece si el proyecto host de red pertenece a la misma organización o 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 Un valor booleano que es True si el registro de auditoría es para una verificación de política de ejecución de prueba.
metadata.vpcServiceControlsUniqueId El identificador único del incumplimiento de los Controles del servicio de VPC descrito en el registro.
metadata.violationReason Es el motivo del incumplimiento. 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 en el que ocurrió 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 ocurre cuando falla una solicitud porque el origen está protegido por un perímetro de servicio y el recurso de destino está fuera del perímetro. El origen puede ser un proyecto o una red de VPC.
metadata.ingressViolations Es el tipo de incumplimiento. A menudo, este incumplimiento ocurre si la solicitud intenta acceder a un recurso de destino protegido por un perímetro de servicio. El origen puede ser un proyecto o una red de VPC. Este campo contiene una estructura que explica el incumplimiento de entrada.
metadata.accessLevels Todos los niveles de acceso coincidentes dentro de la organización que pertenecen a la misma política de acceso. Es posible que estos niveles de acceso no estén especificados en el perímetro incumplido y, por lo tanto, pueden causar un incumplimiento de NO_MATCHING_ACCESS_LEVEL.
metadata.intermediateServices La lista de los servicios involucrados en la cadena de solicitudes. Este campo está vacío para las solicitudes iniciadas por el usuario.
metadata.deviceState Es el estado del dispositivo que crea la solicitud cuando está habilitada la política de dispositivo. 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 en 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 en los Controles del servicio de VPC.

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 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 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 los campos LogEntry indexados, y si usas la página Log Analytics, 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:

Puedes ver los registros de auditoría en Cloud Logging a través de la consola de Google Cloud, 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 el panel de navegación de la consola de Google Cloud, elige Logging y, luego, Explorador de registros:

    Ir al Explorador de registros

  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. Para obtener información acerca de cómo resumir las entradas de registro en el Explorador de registros a través de Duet AI, consulta Resume entradas de registro con la asistencia de Duet AI.

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:

  1. Ve a la sección Probar 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 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 basados en un ID de denegación

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 de la denegación.

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

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 de nivel de acceso realizado en 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 la organización y ACCESS_LEVEL por el nombre único del nivel de acceso.

Operaciones perimetrales de CRUD

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 de CRUD de 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:""

Para usar las consultas de muestra, haz lo siguiente:

  1. Reemplaza las variables con la información de tu proyecto y, luego, copia la expresión con el ícono de portapapeles .

  2. En el panel de navegación de la consola de Google Cloud, elige Logging y, luego, Explorador de registros:

    Ir al Explorador de registros

  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.

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