Mit Cloud Logging auf Audit-Logs zur Nutzung von Gemini Enterprise zugreifen

Auf dieser Seite wird beschrieben, wie Sie Audit-Logs zur Nutzung für Gemini Enterprise einrichten und darauf zugreifen.

Wichtige Konzepte

In diesem Abschnitt werden wichtige Konzepte im Zusammenhang mit der Beobachtbarkeit in Gemini Enterprise vorgestellt.

Konzept Beschreibung
Audit-Logs zur Nutzung Audit-Logs zur Nutzung sind Aufzeichnungen von Verwaltungsaktivitäten und Zugriffen in Ihren Google Cloud -Ressourcen. Sie enthalten detaillierte Informationen darüber, wer welche Aktion wann und wo ausgeführt hat. Diese Logs sind für Sicherheitsaudits, Compliance und das Verständnis der Nutzung Ihrer Ressourcen unerlässlich.

Hinweis

Bevor Sie Audit-Logs konfigurieren, müssen folgende Voraussetzungen erfüllt sein:

  • Aktivieren Sie die Einstellungen für die Beobachtbarkeit. Weitere Informationen finden Sie unter Beobachtbarkeitseinstellungen aktivieren.
  • Zum Aktivieren des Audit-Loggings benötigen Sie die IAM-Rolle Gemini Enterprise Admin (roles/discoveryengine.agentspaceAdmin).
  • Für den Zugriff auf Cloud Logging benötigen Sie die IAM-Rolle Loganzeige (roles/logging.viewer).
  • Sie müssen eine Gemini Enterprise-App erstellt haben. Informationen zum Erstellen einer App finden Sie unter App erstellen.

Logdaten

In der folgenden Tabelle sind die von Gemini Enterprise protokollierten Nutzungsdaten zusammengefasst. Die Felder sind folgendermaßen beschriftet:

  • Sensibel: Das Feld kann Prompts, Antworten oder andere Kundeninhalte enthalten. Sie werden nur protokolliert, wenn die Einstellung Logging von Prompt-Eingaben und Antwortausgaben aktivieren aktiviert ist. Wenn die Einstellung deaktiviert ist, werden Textwerte durch <elided> ersetzt und andere Werte weggelassen. Weitere Informationen finden Sie unter Beobachtbarkeitseinstellungen aktivieren.
  • Nicht vertraulich: Das Feld wird protokolliert, unabhängig davon, ob die Einstellung aktiviert ist.
  • Teilweise vertraulich: Nur die aufgeführten Unterfelder sind vertraulich. Alle anderen Unterfelder sind nicht sensibel.
Dienstpfad In Logs erfasste Daten
SearchService.Search

Protokolliert die Daten zu den Quellen, die für die Fundierung oder als LLM-Eingabe verwendet werden.

Anfrage:
  • query (sensibel)
  • user_info (teilweise sensibel). Nur die folgenden untergeordneten Felder sind sensibel:
    • time_zone
    • precise_location

Antwort:
  • attribution_token (nicht vertraulich)
  • results.id (nicht sensibel)
  • results.document.name (nicht sensibel)
AssistantService.Assist

Protokolliert die Anfrage und Antwort des Gemini Enterprise-Assistenten.

Anfrage:
  • name (nicht sensibel)
  • query.text (sensibel)
  • query.parts (sensibel)

Antwort:
  • assist_token (nicht vertraulich)
  • answer.name (nicht sensibel)
  • answer.state (nicht sensibel)
  • answer.replies.grounded_content.text (sensibel)
  • answer.replies.grounded_content.text_grounding_metadata.segments (sensibel)
  • answer.replies.grounded_content.text_grounding_metadata.references (teilweise sensibel). Alle Unterfelder sind sensibel, mit Ausnahme von document_metadata.document und document_metadata.uri.
  • answer.skipped_reasons (nicht sensibel)
  • agent_info.agent (nicht sensibel)
  • agent_info.display_name (sensibel)
  • agent_info.core_assistant (nicht vertraulich)
  • agent_info.agent_kind (nicht vertraulich)
  • agent_info.spiffe_id (nicht sensibel)
AssistantService.StreamAssist Anfrage:
  • name (nicht sensibel)
  • query.text (sensibel)
  • query.parts (sensibel)
  • agents_spec (teilweise sensibel). Nur die folgenden untergeordneten Felder sind sensibel:
    • 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

Antwort:
  • assist_token (nicht vertraulich)
  • answer.name (nicht sensibel)
  • answer.state (nicht sensibel)
  • answer.replies.grounded_content.text (sensibel)
  • answer.replies.grounded_content.text_grounding_metadata.segments (sensibel)
  • answer.replies.grounded_content.text_grounding_metadata.references (teilweise sensibel). Alle Unterfelder sind sensibel, mit Ausnahme von document_metadata.document und document_metadata.uri.
  • answer.skipped_reasons (nicht sensibel)
  • agent_info.agent (nicht sensibel)
  • agent_info.display_name (sensibel)
  • agent_info.core_assistant (nicht vertraulich)
  • agent_info.agent_kind (nicht vertraulich)
  • agent_info.spiffe_id (nicht sensibel)
  • model_info.model (nicht sensibel)
  • model_info.requested_model (nicht sensibel)
  • model_info.model_selection_mode (nicht sensibel)

model_info.model ist das Modell, das der Assistent für die Runde ausgeführt hat. Wenn in der Anfrage kein Modell angepinnt wird, ist model_selection_mode MODEL_SELECTION_MODE_AUTO und requested_model ist leer. Wenn in der Anfrage ein Modell angepinnt wird, ist model_selection_mode MODEL_SELECTION_MODE_EXPLICIT und requested_model enthält das angeforderte Modell.

Ein Turn kann an einen spezialisierten Agenten übergeben werden, der ein anderes Modell ausführt. model_info.model meldet das Modell dieses Agenten nicht und eine Runde, in der die gesamte Arbeit in einem solchen Agenten erledigt wird, lässt model_info.model leer.

ConversationSearchService.AnswerQuery Anfrage:
  • serving_config (nicht sensibel)
  • query.query_id (nicht vertraulich)
  • query.text (sensibel)
  • session (nicht sensibel)
  • user_pseudo_id (nicht vertraulich)
  • end_user_spec (teilweise sensibel). Nur die folgenden untergeordneten Felder sind sensibel:
    • end_user_metadata.chunk_info.content
    • end_user_metadata.chunk_info.document_metadata.title
  • answer_generation_spec.model_spec.model_version (nicht vertraulich)
  • answer_generation_spec.prompt_spec.preamble (sensibel)
  • answer_generation_spec.include_citations (nicht vertraulich)
  • answer_generation_spec.answer_language_code (sensibel)
  • answer_generation_spec.ignore_adversarial_query (nicht vertraulich)
  • answer_generation_spec.ignore_non_answer_seeking_query (nicht vertraulich)
  • answer_generation_spec.ignore_jail_breaking_query (nicht sensibel)

Antwort:
  • answer (teilweise sensibel). Nur die folgenden untergeordneten Felder sind vertraulich:
    • answer_text
    • grounding_supports
    • references
    • blob_attachments
    • steps.actions
  • answer_query_token (nicht sensibel)
EngineService.CreateEngine Anfrage:
  • engine_id (nicht sensibel)
  • engine.name (nicht sensibel)
  • engine.create_time (nicht sensibel)
  • engine.display_name (nicht sensibel)
  • engine.update_time (nicht vertraulich)
  • engine.data_store_ids (nicht vertraulich)
  • engine.data_stores (nicht sensibel)

Antwort:
  • engine_id (nicht sensibel)
  • engine.name (nicht sensibel)
  • engine.create_time (nicht sensibel)
  • engine.display_name (nicht sensibel)
  • engine.update_time (nicht vertraulich)
  • engine.data_store_ids (nicht vertraulich)
  • engine.data_stores (nicht sensibel)
EngineService.UpdateEngine Anfrage:
  • engine.name (nicht sensibel)
  • engine.create_time (nicht sensibel)
  • engine.display_name (nicht sensibel)
  • engine.update_time (nicht vertraulich)
  • engine.data_store_ids (nicht vertraulich)
  • engine.data_stores (nicht sensibel)
  • update_mask (nicht sensibel)

Antwort:
  • engine.name (nicht vertraulich)
  • engine.create_time (nicht sensibel)
  • engine.display_name (nicht sensibel)
  • engine.update_time (nicht vertraulich)
  • engine.data_store_ids (nicht vertraulich)
  • engine.data_stores (nicht sensibel)
AgentService.SetIamPolicy Anfrage:
  • policy.bindings.roles (nicht vertraulich)
  • policy.bindings.members (nicht sensibel)

Antwort:
  • policy.bindings.roles (nicht sensibel)
  • policy.bindings.members (nicht sensibel)
AgentService.CreateAgent Anfrage:
  • parent (nicht sensibel)
  • agent_id (nicht sensibel)
  • agent.name (nicht sensibel)
  • agent.display_name (sensibel)
  • agent.create_time (nicht sensibel)
  • agent.update_time (nicht vertraulich)
  • agent.definition_case (nicht sensibel)

Antwort:
  • agent.name (nicht sensibel)
  • agent.display_name (sensibel)
  • agent.create_time (nicht sensibel)
  • agent.update_time (nicht vertraulich)
  • agent.definition_case (nicht sensibel)
AgentService.UpdateAgent Anfrage:
  • agent.name (nicht sensibel)
  • agent.display_name (sensibel)
  • agent.create_time (nicht sensibel)
  • agent.update_time (nicht vertraulich)
  • agent.definition_case (nicht vertraulich)
  • update_mask (nicht sensibel)

Antwort:
  • agent.name (nicht sensibel)
  • agent.display_name (sensibel)
  • agent.create_time (nicht sensibel)
  • agent.update_time (nicht vertraulich)
  • agent.definition_case (nicht sensibel)
AgentService.DeleteAgent Anfrage:
  • name (nicht sensibel)

Antwort:
  • Es werden keine Felder protokolliert
GroundedGenerationService.GenerateGroundedContent Anfrage:
  • contents (sensibel)
  • location (nicht sensibel)
  • generation_spec (teilweise sensibel). Nur die folgenden untergeordneten Felder sind sensibel:
    • language_code
  • system_instruction (sensibel)
  • safety_settings (nicht vertraulich)
  • user_labels (sensibel)
  • grounding_spec.explicit_search_queries (sensibel)
  • grounding_spec.grounding_sources (teilweise sensibel). Nur die folgenden untergeordneten Felder sind sensibel:
    • 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

Antwort:
  • content (sensibel)
  • grounding_metadata (teilweise sensibel). Nur die folgenden Unterfelder sind sensibel:
    • support_chunks, außer source und index
    • google_maps_support_chunks, außer source und index
    • api_calls.request_payload
    • api_calls.response_body
    • api_calls.uri
  • grounding_score (nicht sensibel)
DataConnectorService.UpdateDataConnector Anfrage:
  • data_connector.name (nicht vertraulich)
  • data_connector.create_time (nicht sensibel)
  • data_connector.update_time (nicht sensibel)
  • data_connector.data_source (nicht sensibel)
  • data_connector.refresh_interval (nicht sensibel)
  • data_connector.bap_config (nicht sensibel)

Antwort:
  • data_connector.name (nicht vertraulich)
  • data_connector.create_time (nicht sensibel)
  • data_connector.update_time (nicht sensibel)
  • data_connector.data_source (nicht sensibel)
  • data_connector.refresh_interval (nicht sensibel)
  • data_connector.bap_config (nicht vertraulich)
AssistantService.AddContextFile Anfrage:
  • name (nicht sensibel)
  • file_name (sensibel)

Antwort:
  • session (nicht sensibel)
  • file_id (nicht sensibel)
AssistantService.UploadSessionFile Anfrage:
  • name (nicht sensibel)
  • blob.filename (sensibel)

Antwort:
  • file_id (nicht sensibel)
UserEventService.WriteUserEvent Anfrage:
  • Alle Felder im Anfragetext (teilweise sensibel). Nur die folgenden untergeordneten Felder sind sensibel:
    • 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

Antwort:
  • Keine Felder protokolliert

Auf Audit-Logs zur Nutzung zugreifen

So greifen Sie auf alle Audit-Logs zur Nutzung von Gemini Enterprise zu und rufen sie auf:

  1. Rufen Sie in der Google Cloud Console die Seite Log-Explorer auf.

    Zum Log-Explorer

  2. Wählen Sie das Google Cloud -Projekt aus, für das Sie das Audit-Logging aktiviert haben.

  3. Wenn Sie nur Gemini Enterprise-Logs anzeigen möchten, geben Sie die folgende Abfrage in das Feld des Abfrageeditors ein und klicken Sie auf Abfrage ausführen:

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

    Ersetzen Sie Folgendes:

    • PROJECT_ID: die Projekt-ID.

Zugriff auf Logs steuern

Sie können den Zugriff auf die Logs in Cloud Logging steuern. Eine detaillierte Anleitung zu Methoden der Zugriffssteuerung, einschließlich der Verwendung von IAM-Bedingungen für den detaillierten Zugriff, finden Sie unter Zugriffssteuerung mit IAM.

Standardzugriffssteuerung

Standardmäßig sendet Gemini Enterprise Cloud Logging-Daten an den Bucket _Default. Die folgenden IAM-Rollen steuern den Zugriff auf diesen Bucket:

Detaillierte Zugriffssteuerung

Wenn Ihr Projekt Logs mit unterschiedlichen Vertraulichkeitsstufen enthält, können Sie mehrere Google Cloud - und Cloud Logging-Tools verwenden, um eine detailliertere Zugriffssteuerung zu konfigurieren.

Sie können eine detaillierte Zugriffssteuerung mit den folgenden Optionen konfigurieren:

Option Beschreibung
IAM-Bedingungen Richten Sie eine detaillierte Zugriffssteuerung mit IAM-Bedingungen ein. Weitere Informationen finden Sie unter Logging-Rollen.
Logansichten Mit Logansichten können Sie den Nutzerzugriff auf eine Teilmenge von Logs in einem Log-Bucket beschränken. Weitere Informationen finden Sie unter Logansichten für einen Log-Bucket konfigurieren.
Logsenken Verwenden Sie Logsinks, um vertrauliche Logs an ein separates Projekt mit restriktiverem IAM-Zugriff weiterzuleiten. Weitere Informationen finden Sie unter Logs an unterstützte Ziele weiterleiten.
Tags Verwenden Sie Tags, um den IAM-Zugriff auf einzelne Log-Buckets in einem Projekt zu verwalten. Weitere Informationen finden Sie unter Tags verwenden, um den Zugriff auf Log-Buckets zu verwalten.
Zugriffssteuerung auf Feldebene Mit der Zugriffssteuerung auf Feldebene können Sie den Zugriff auf bestimmte Felder in Logeinträgen ausblenden oder einschränken. Weitere Informationen finden Sie unter Zugriff auf Feldebene konfigurieren.

Nächste Schritte