Accede a los registros de auditoría de uso de Gemini Enterprise con Cloud Logging

En esta página, se describe cómo configurar los registros de auditoría de uso y acceder a ellos para Gemini Enterprise.

Conceptos clave

En esta sección, se presentan los conceptos clave relacionados con la observabilidad en Gemini Enterprise.

Concepto Descripción
Registros de auditoría de uso Los registros de auditoría de uso son registros de las actividades administrativas y los accesos dentro de tus recursos de Google Cloud . Proporcionan información detallada sobre quién realizó qué acción, cuándo y desde dónde. Estos registros son esenciales para la auditoría de seguridad, el cumplimiento y la comprensión de cómo se usan tus recursos.

Antes de comenzar

Antes de configurar los registros de auditoría, asegúrate de tener lo siguiente:

Información registrada

En la siguiente tabla, se resumen los datos de uso que registra Gemini Enterprise. Cada campo tiene la siguiente etiqueta:

  • Sensible: El campo puede contener instrucciones, respuestas o cualquier otro contenido del cliente. Solo se registra cuando está activado el parámetro de configuración Habilitar el registro de las entradas de instrucciones y las salidas de respuestas. Cuando el parámetro de configuración está desactivado, los valores de texto se reemplazan por <elided> y se omiten otros valores. Para obtener más información, consulta Cómo activar la configuración de observabilidad.
  • No sensible: El campo se registra independientemente de si el parámetro de configuración está activado o no.
  • Parcialmente sensible: Solo los subcampos enumerados son sensibles. Todos los demás subcampos no son sensibles.
Ruta de servicio Datos registrados
SearchService.Search

Registra los datos de las fuentes que se usan para la fundamentación o como entrada del LLM.

Solicitud:
  • query (sensible)
  • user_info (parcialmente sensible). Solo los siguientes subcampos son sensibles:
    • time_zone
    • precise_location

Respuesta:
  • attribution_token (no sensible)
  • results.id (no sensible)
AssistantService.Assist

Registra la solicitud y la respuesta del asistente de Gemini Enterprise.

Solicitud:
  • name (no sensible)
  • query.text (sensible)
  • query.parts (sensible)

Respuesta:
  • assist_token (no sensible)
  • answer.name (no sensible)
  • answer.state (no sensible)
  • answer.replies.grounded_content.text (sensible)
  • answer.replies.grounded_content.text_grounding_metadata.segments (sensible)
  • answer.replies.grounded_content.text_grounding_metadata.references (parcialmente sensible). Todos los subcampos son sensibles, excepto document_metadata.document y document_metadata.uri.
  • answer.skipped_reasons (no sensible)
  • agent_info.agent (no sensible)
  • agent_info.display_name (sensible)
  • agent_info.core_assistant (no sensible)
  • agent_info.agent_kind (no sensible)
  • agent_info.spiffe_id (no sensible)
AssistantService.StreamAssist Solicitud:
  • name (no sensible)
  • query.text (sensible)
  • query.parts (sensible)
  • agents_spec (parcialmente sensible). Solo los siguientes subcampos son sensibles:
    • agent_specs.input_variables
    • agent_specs.node_context.node_input
    • agent_specs.node_context.agent_description
    • agent_specs.node_context.node_instruction
    • agent_specs.artifact_spec.tagged_artifact_content

Respuesta:
  • assist_token (no sensible)
  • answer.name (no sensible)
  • answer.state (no sensible)
  • answer.replies.grounded_content.text (sensible)
  • answer.replies.grounded_content.text_grounding_metadata.segments (sensible)
  • answer.replies.grounded_content.text_grounding_metadata.references (parcialmente sensible). Todos los subcampos son sensibles, excepto document_metadata.document y document_metadata.uri.
  • answer.skipped_reasons (no sensible)
  • agent_info.agent (no sensible)
  • agent_info.display_name (sensible)
  • agent_info.core_assistant (no sensible)
  • agent_info.agent_kind (no sensible)
  • agent_info.spiffe_id (no sensible)
  • model_info.model (no sensible)
  • model_info.requested_model (no sensible)
  • model_info.model_selection_mode (no sensible)

model_info.model es el modelo que ejecutó el asistente durante el turno. Cuando la solicitud no fija un modelo, model_selection_mode es MODEL_SELECTION_MODE_AUTO y requested_model está vacío. Cuando la solicitud fija uno, model_selection_mode es MODEL_SELECTION_MODE_EXPLICIT y requested_model contiene el modelo solicitado.

Un turno puede derivarse a un agente especializado que ejecuta un modelo diferente. model_info.model no informa el modelo de ese agente, y un turno que realiza todo su trabajo en un agente de este tipo deja model_info.model vacío.

ConversationSearchService.AnswerQuery Solicitud:
  • serving_config (no sensible)
  • query.query_id (no sensible)
  • query.text (sensible)
  • session (no sensible)
  • user_pseudo_id (no sensible)
  • end_user_spec (parcialmente sensible). Solo los siguientes subcampos son sensibles:
    • end_user_metadata.chunk_info.content
    • end_user_metadata.chunk_info.document_metadata.title
  • answer_generation_spec.model_spec.model_version (no sensible)
  • answer_generation_spec.prompt_spec.preamble (sensible)
  • answer_generation_spec.include_citations (no sensible)
  • answer_generation_spec.answer_language_code (sensible)
  • answer_generation_spec.ignore_adversarial_query (no sensible)
  • answer_generation_spec.ignore_non_answer_seeking_query (no sensible)
  • answer_generation_spec.ignore_jail_breaking_query (no sensible)

Respuesta:
  • answer (parcialmente sensible). Solo los siguientes subcampos son sensibles:
    • answer_text
    • grounding_supports
    • references
    • blob_attachments
    • steps.actions
  • answer_query_token (no sensible)
EngineService.CreateEngine Solicitud:
  • engine_id (no sensible)
  • engine.name (no sensible)
  • engine.create_time (no sensible)
  • engine.display_name (no sensible)
  • engine.update_time (no sensible)
  • engine.data_store_ids (no sensible)
  • engine.data_stores (no sensible)

Respuesta:
  • engine_id (no sensible)
  • engine.name (no sensible)
  • engine.create_time (no sensible)
  • engine.display_name (no sensible)
  • engine.update_time (no sensible)
  • engine.data_store_ids (no sensible)
  • engine.data_stores (no sensible)
EngineService.UpdateEngine Solicitud:
  • engine.name (no sensible)
  • engine.create_time (no sensible)
  • engine.display_name (no sensible)
  • engine.update_time (no sensible)
  • engine.data_store_ids (no sensible)
  • engine.data_stores (no sensible)
  • update_mask (no sensible)

Respuesta:
  • engine.name (no sensible)
  • engine.create_time (no sensible)
  • engine.display_name (no sensible)
  • engine.update_time (no sensible)
  • engine.data_store_ids (no sensible)
  • engine.data_stores (no sensible)
AgentService.SetIamPolicy Solicitud:
  • policy.bindings.roles (no sensible)
  • policy.bindings.members (no sensible)

Respuesta:
  • policy.bindings.roles (no sensible)
  • policy.bindings.members (no sensible)
AgentService.CreateAgent Solicitud:
  • parent (no sensible)
  • agent_id (no sensible)
  • agent.name (no sensible)
  • agent.display_name (sensible)
  • agent.create_time (no sensible)
  • agent.update_time (no sensible)
  • agent.definition_case (no sensible)

Respuesta:
  • agent.name (no sensible)
  • agent.display_name (sensible)
  • agent.create_time (no sensible)
  • agent.update_time (no sensible)
  • agent.definition_case (no sensible)
AgentService.UpdateAgent Solicitud:
  • agent.name (no sensible)
  • agent.display_name (sensible)
  • agent.create_time (no sensible)
  • agent.update_time (no sensible)
  • agent.definition_case (no sensible)
  • update_mask (no sensible)

Respuesta:
  • agent.name (no sensible)
  • agent.display_name (sensible)
  • agent.create_time (no sensible)
  • agent.update_time (no sensible)
  • agent.definition_case (no sensible)
AgentService.DeleteAgent Solicitud:
  • name (no sensible)

Respuesta:
  • No se registran campos
GroundedGenerationService.GenerateGroundedContent Solicitud:
  • contents (sensible)
  • location (no sensible)
  • generation_spec (parcialmente sensible). Solo los siguientes subcampos son sensibles:
    • language_code
  • system_instruction (sensible)
  • safety_settings (no sensible)
  • user_labels (sensible)
  • grounding_spec.explicit_search_queries (sensible)
  • grounding_spec.grounding_sources (parcialmente sensible). Solo los siguientes subcampos son sensibles:
    • inline_source
    • search_source.filter
    • api_source.manifest.api_spec.open_api_yaml
    • elastic_source.search_template
    • elastic_source.num_hits
    • parallel_ai_source.custom_configs
    • exa_ai_source.custom_configs

Respuesta:
  • content (sensible)
  • grounding_metadata (parcialmente sensible). Solo los siguientes subcampos son sensibles:
    • support_chunks, excepto source y index
    • google_maps_support_chunks, excepto source y index
    • api_calls.request_payload
    • api_calls.response_body
    • api_calls.uri
  • grounding_score (no sensible)
DataConnectorService.UpdateDataConnector Solicitud:
  • data_connector.name (no sensible)
  • data_connector.create_time (no sensible)
  • data_connector.update_time (no sensible)
  • data_connector.data_source (no sensible)
  • data_connector.refresh_interval (no sensible)
  • data_connector.bap_config (no sensible)

Respuesta:
  • data_connector.name (no sensible)
  • data_connector.create_time (no sensible)
  • data_connector.update_time (no sensible)
  • data_connector.data_source (no sensible)
  • data_connector.refresh_interval (no sensible)
  • data_connector.bap_config (no sensible)
AssistantService.AddContextFile Solicitud:
  • name (no sensible)
  • file_name (sensible)

Respuesta:
  • session (no sensible)
  • file_id (no sensible)
AssistantService.UploadSessionFile Solicitud:
  • name (no sensible)
  • blob.filename (sensible)

Respuesta:
  • file_id (no sensible)
UserEventService.WriteUserEvent Solicitud:
  • Todos los campos del cuerpo de la solicitud (parcialmente sensibles). Solo los siguientes subcampos son sensibles:
    • user_event.user_info.time_zone
    • user_event.user_info.precise_location
    • user_event.filter
    • user_event.attributes
    • user_event.panel.documents
    • user_event.panels.documents
    • user_event.search_info.search_query
    • user_event.completion_info.selected_suggestion
    • user_event.feedback.comment
    • user_event.feedback.conversation_info.query

Respuesta:
  • No se registran campos

Accede a los registros de auditoría de uso

Para acceder a todos los registros de auditoría de uso de Gemini Enterprise y verlos, sigue estos pasos:

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

    Ve al Explorador de registros

  2. Selecciona el proyecto Google Cloud para el que habilitaste el registro de auditoría.

  3. Para mostrar solo los registros de Gemini Enterprise, ingresa la siguiente consulta en el campo del editor de consultas y haz clic en Ejecutar consulta:

      logName="projects/PROJECT_ID/logs/discoveryengine.googleapis.com%2Fgemini_enterprise_user_activity" OR logName=~"projects/PROJECT_ID/logs/discoveryengine.googleapis.com%2Fgen_ai.*"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: el ID de tu proyecto.

Controlar el acceso a los registros

Puedes controlar el acceso a los registros en Cloud Logging. Para obtener orientación detallada sobre los métodos de control de acceso, incluido el uso de condiciones de IAM para el acceso detallado, consulta Control de acceso con IAM.

Control de acceso predeterminado

De forma predeterminada, Gemini Enterprise envía datos de Cloud Logging al bucket _Default. Los siguientes roles de IAM controlan el acceso a este bucket:

Control de acceso detallado

Si tu proyecto contiene registros con diferentes niveles de sensibilidad, puedes usar varias herramientas de Google Cloud y de Cloud Logging para configurar un control de acceso más detallado.

Puedes configurar el control de acceso detallado con las siguientes opciones:

Opción Descripción
Condiciones de IAM Configura un control de acceso detallado con las condiciones de IAM. Para obtener más información, consulta Roles de Logging.
Vistas de registro Usa vistas de registro para limitar el acceso de los usuarios a un subconjunto de registros dentro de un bucket de registros. Para obtener más información, consulta Configura vistas de registros en un bucket de registros.
Receptores de registros Usa receptores de registros para enrutar los registros sensibles a un proyecto independiente con acceso a IAM más restrictivo. Para obtener más información, consulta Enruta registros a destinos compatibles.
Etiquetas Usa etiquetas para administrar el acceso de IAM a buckets de registros individuales dentro de un proyecto. Para obtener más información, consulta Usa etiquetas para administrar el acceso a los buckets de registros.
Control de acceso a nivel de campo Usa el control de acceso a nivel de campo para ocultar o restringir el acceso a campos específicos dentro de las entradas de registro. Para obtener más información, consulta Configura el acceso a nivel del campo.

¿Qué sigue?