使用 Cloud Logging 访问 Gemini Enterprise 用量审核日志

本页面介绍了如何为 Gemini Enterprise 设置和访问使用情况审核日志。

主要概念

本部分介绍了与 Gemini Enterprise 中的可观测性相关的关键概念。

概念 说明
使用情况审核日志 使用情况审核日志会记录 Google Cloud 资源中的管理活动和访问情况。这些日志会详细记录谁在何时从何处执行了什么操作。这些日志对于安全审核、合规性和了解资源的使用情况至关重要。

准备工作

在配置审核日志之前,请确保您具备以下条件:

  • 开启可观测性设置。如需了解详情,请参阅开启可观测性设置
  • 如需开启审核日志记录,您必须具有 Gemini Enterprise Admin IAM 角色 (roles/discoveryengine.agentspaceAdmin)。
  • 如要访问 Cloud Logging,您必须具有 Logs Viewer IAM 角色 (roles/logging.viewer)。
  • 确保您已创建 Gemini Enterprise 应用。如需创建应用,请参阅创建应用

记录的信息

下表总结了 Gemini Enterprise 记录的使用情况数据:

服务路径 记录的数据
SearchService.Search

记录用于接地或作为 LLM 输入的来源上的数据。

请求:
  • query
  • user_info

回答:
  • attribution_token
  • results.id
AssistantService.Assist

记录来自 Gemini Enterprise 助理的请求和回答。

请求:
  • name
  • query.text
  • query.parts

回答:
  • assist_token
  • answer.name
  • answer.state
  • answer.replies.grounded_content.text
  • answer.replies.grounded_content.text_grounding_metadata.segments
  • answer.replies.grounded_content.text_grounding_metadata.references
  • answer.skipped_reasons
  • agent_info.agent
  • agent_info.display_name
  • agent_info.core_assistant
  • agent_info.agent_kind
  • agent_info.spiffe_id
AssistantService.StreamAssist 请求:
  • name
  • query.text
  • query.parts
  • agents_spec

回答:
  • assist_token
  • answer.name
  • answer.state
  • answer.replies.grounded_content.text
  • answer.replies.grounded_content.text_grounding_metadata.segments
  • answer.replies.grounded_content.text_grounding_metadata.references
  • answer.skipped_reasons
  • agent_info.agent
  • agent_info.display_name
  • agent_info.core_assistant
  • agent_info.agent_kind
  • agent_info.spiffe_id
ConversationSearchService.AnswerQuery 请求:
  • serving_config
  • query.query_id
  • query.text
  • session
  • user_pseudo_id
  • end_user_spec
  • answer_generation_spec.model_spec.model_version
  • answer_generation_spec.prompt_spec.preamble
  • answer_generation_spec.include_citations
  • answer_generation_spec.answer_language_code
  • answer_generation_spec.ignore_adversarial_query
  • answer_generation_spec.ignore_non_answer_seeking_query
  • answer_generation_spec.ignore_jail_breaking_query

回答:
  • answer
  • answer_query_token
EngineService.CreateEngine 请求:
  • engine_id
  • engine.name
  • engine.create_time
  • engine.display_name
  • engine.update_time
  • engine.data_store_ids
  • engine.data_stores

回答:
  • engine_id
  • engine.name
  • engine.create_time
  • engine.display_name
  • engine.update_time
  • engine.data_store_ids
  • engine.data_stores
EngineService.UpdateEngine 请求:
  • engine.name
  • engine.create_time
  • engine.display_name
  • engine.update_time
  • engine.data_store_ids
  • engine.data_stores
  • update_mask

回答:
  • engine.name
  • engine.create_time
  • engine.display_name
  • engine.update_time
  • engine.data_store_ids
  • engine.data_stores
AgentService.SetIamPolicy 请求:
  • policy.bindings.roles
  • policy.bindings.members

回答:
  • policy.bindings.roles
  • policy.bindings.members
AgentService.CreateAgent 请求:
  • parent
  • agent_id
  • agent.name
  • agent.display_name
  • agent.create_time
  • agent.update_time
  • agent.definition_case

回答:
  • agent.name
  • agent.display_name
  • agent.create_time
  • agent.update_time
  • agent.definition_case
AgentService.UpdateAgent 请求:
  • agent.name
  • agent.display_name
  • agent.create_time
  • agent.update_time
  • agent.definition_case
  • update_mask

回答:
  • agent.name
  • agent.display_name
  • agent.create_time
  • agent.update_time
  • agent.definition_case
GroundedGenerationService.GenerateGroundedContent 请求:
  • contents
  • location
  • generation_spec
  • system_instruction
  • safety_settings
  • user_labels
  • grounding_spec.explicit_search_queries
  • grounding_spec.grounding_sources

回答:
  • content
  • grounding_metadata
  • grounding_score
DataConnectorService.UpdateDataConnector 请求:
  • data_connector.name
  • data_connector.create_time
  • data_connector.update_time
  • data_connector.data_source
  • data_connector.refresh_interval
  • data_connector.bap_config

回答:
  • data_connector.name
  • data_connector.create_time
  • data_connector.update_time
  • data_connector.data_source
  • data_connector.refresh_interval
  • data_connector.bap_config
AssistantService.AddContextFile 请求:
  • name
  • file_name

回答:
  • session
  • file_id
AssistantService.UploadSessionFile 请求:
  • name
  • blob.filename

回答:
  • file_id
UserEventService.WriteUserEvent 请求:
  • All fields in the request body

回答:
  • 未记录任何字段

访问使用情况审核日志

如需访问和查看所有 Gemini Enterprise 用量审核日志,请按以下步骤操作:

  1. 在 Google Cloud 控制台中,前往 Logs Explorer 页面。

    转到日志浏览器

  2. 选择已启用审核日志记录的 Google Cloud 项目。

  3. 如需仅显示 Gemini Enterprise 日志,请在查询编辑器字段中输入以下查询,然后点击运行查询

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

    替换以下内容:

    • PROJECT_ID:您的项目的 ID。

控制对日志的访问权限

您可以在 Cloud Logging 中控制对日志的访问权限。如需详细了解访问权限控制方法(包括使用 IAM 条件进行精细访问权限控制),请参阅使用 IAM 进行访问权限控制

默认访问权限控制

默认情况下,Gemini Enterprise 会将 Cloud Logging 数据发送到 _Default 存储桶。以下 IAM 角色控制着对相应存储桶的访问权限:

精细访问权限控制

如果您的项目包含不同敏感程度的日志,您可以使用多种 Google Cloud 和 Cloud Logging 工具来配置更精细的访问权限控制。

您可以使用以下选项配置精细访问权限控制:

选项 说明
IAM Conditions 使用 IAM 条件设置精细的访问权限控制。如需了解详情,请参阅 Logging 角色
日志视图 使用日志视图可限制用户对日志存储桶中部分日志的访问权限。如需了解详情,请参阅在日志存储桶中配置日志视图
日志接收器 使用日志接收器将敏感日志路由到具有更严格 IAM 访问权限的单独项目。如需了解详情,请参阅将日志路由到支持的目的地
标记 使用标记管理对项目内各个日志存储分区的 IAM 访问权限。如需了解详情,请参阅使用标记管理对日志存储分区的访问权限
字段级访问权限控制 使用字段级访问权限控制来隐藏或限制对日志条目中特定字段的访问权限。如需了解详情,请参阅配置字段级访问权限

后续步骤