You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向Google Secret Manager审计日志传递触发用户信息?

解决方案:关联前端用户信息到Secret Manager审计日志

首先明确:无法直接向Google Secret Manager的审计日志中添加自定义数据——这类审计日志是Google Cloud自动生成的系统日志,不支持修改或追加自定义字段。但可以通过以下两种方案实现用户信息与Secret操作的关联追踪:

方案1:在Cloud Function中记录关联结构化日志

处理Callable函数请求时,先提取前端用户的身份信息(从Callable函数的context.auth.user中获取),调用Secret Manager API后,将用户信息、操作详情、Secret Manager返回的operationId(异步操作场景)或请求ID记录为结构化日志。后续可通过operationId或请求ID,将Cloud Function的自定义日志与Secret Manager的审计日志关联。

示例代码(Node.js):

exports.manageSecret = functions.https.onCall(async (data, context) => {
  // 提取前端用户身份信息
  const userEmail = context.auth?.user.email;
  const userId = context.auth?.user.uid;

  // 调用Secret Manager API(以创建Secret为例)
  const secretManagerClient = new SecretManagerServiceClient();
  const [response] = await secretManagerClient.createSecret({
    parent: 'projects/your-project-id',
    secretId: data.secretId,
    secret: {
      replication: { automatic: {} },
    },
  });

  // 记录结构化日志,关联用户与Secret操作
  console.log(JSON.stringify({
    severity: 'INFO',
    userEmail: userEmail,
    userId: userId,
    secretId: data.secretId,
    operation: 'CREATE_SECRET',
    secretManagerOperationId: response.name.split('/').pop(),
    timestamp: new Date().toISOString()
  }));

  return { success: true };
});

方案2:利用Cloud Trace关联请求上下文

启用Cloud Trace后,Cloud Function的请求会自动生成Trace ID,调用Secret Manager API时,客户端库会自动继承该Trace ID,因此Secret Manager的审计日志中会包含此ID。你可以在Cloud Function的日志中记录用户信息和Trace ID,后续通过Trace ID在Cloud Logging中关联两类日志。

关键步骤:

  1. 确保Cloud Function已启用Cloud Trace(GCP控制台创建的函数默认启用)
  2. 在Cloud Function中记录用户信息与Trace ID:
const traceHeader = context.rawRequest.headers['x-cloud-trace-context'];
const traceId = traceHeader ? traceHeader.split('/')[0] : null;

console.log(JSON.stringify({
  severity: 'INFO',
  userEmail: userEmail,
  traceId: traceId,
  operation: 'UPDATE_SECRET'
}));
  1. 在Cloud Logging中,通过Trace ID筛选关联的Secret Manager审计日志和Cloud Function自定义日志

补充说明

  • 确保Callable函数已正确配置身份验证,仅授权用户可调用(你已提及此前提,无需额外调整)
  • 自定义日志会出现在Cloud Logging的cloudfunctions.googleapis.com%2Fcloud-functions日志集中,可通过日志过滤器快速筛选

内容的提问来源于stack exchange,提问作者uksz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:42:50