【问题标题】:Can't export Organization logs to custom project in GCP无法将组织日志导出到 GCP 中的自定义项目
【发布时间】:2021-04-23 14:42:21
【问题描述】:

我正在尝试将 Google Cloud Organization 的日志从另一个项目导出到 _Default 日志存储桶。目前看来是不可能的。没有一个线索或错误告诉我为什么。 到目前为止,我尝试的是:

  • 导出到发布/订阅主题
  • 导出到自定义 GCS 存储桶
  • 从另一个项目导出到 _Default 日志存储桶。 // 这就是我想要处理的情况
  • 从另一个项目导出到自定义日志存储桶。

在所有这些情况下都观察到相同的行为:根本没有导出日志

我正在使用 Terraform 来完成这项任务,并且在配置中一切似乎都很好。 我还为服务帐户编写者身份提供了正确的 IAM 权限:

org-logs-role = {
  members = [
    google_logging_organization_sink.organization_sink.writer_identity
  ],
  role_id = "roles/logging.bucketWriter"
}

而接收器代码是:

resource "google_logging_organization_sink" "organization_sink" {
  name = "gbl-snk-${var.project}-${var.environment}-3-gcp"
  destination = "logging.googleapis.com/projects/${var.project}/locations/global/buckets/_Default"
  org_id = local.organization_id
  include_children = true
  filter = "protoPayload.serviceName=\"admin.googleapis.com\" OR protoPayload.serviceName=\"cloudidentity.googleapis.com\" OR protoPayload.serviceName=\"login.googleapis.com\" OR protoPayload.serviceName=\"iam.googleapis.com\""
}

列出接收器时,它显示在组织中,但没有日志到达_Default 存储桶(我隐藏了项目真实名称)

gcloud logging sinks list --organization={organization_id}

NAME                            DESTINATION                                                                           FILTER
gbl-snk-{project}-global-3-gcp  logging.googleapis.com/projects/{project}/locations/global/buckets/_Default           protoPayload.serviceName="admin.googleapis.com" OR protoPayload.serviceName="cloudidentity.googleapis.com" OR protoPayload.serviceName="login.googleapis.com" OR protoPayload.serviceName="iam.googleapis.com"

我做错了什么?我可以在组织的日志记录控制台中看到日志,但它们没有到达 {project} _Default 存储桶。

P.S.:我尝试复制/粘贴(以防万一)这段代码(当然是更改存储桶名称和 org.id),同样的情况发生了。没有错误,但目标存储桶中没有日志。 https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/logging_organization_sink

我想查看的日志类型是 CreateUser 或 DeleteUser 等事件,来自指定的过滤器。

欢迎任何帮助。

我想说的是,他(在我看来)不是以下内容的重复: Google Cloud Logs not exporting to storage

因为一切都是正确的,根本不会出现错误。

【问题讨论】:

    标签: google-cloud-platform google-cloud-logging terraform0.12+


    【解决方案1】:

    我猜这是写权限问题。你能执行这个命令吗

    gcloud logging describe gbl-snk-{project}-global-3-gcp --organization={organization_id}
    

    在结果中,获取writerIdentity 服务帐户值。转到您的目标项目,在 IAM 页面中将其授予为 Logs Writer 或 Logs Bucket Writer(参见区别here)。

    那么它应该会更好。

    在 Terraform 中,您可以像这样获得作家身份

    google_logging_organization_sink.organization_sink.writer_identity
    

    【讨论】:

    • 分配角色 logging.logWriter 使一切正常!您提供的链接中对此进行了说明。我正在添加锚点:cloud.google.com/logging/docs/buckets#writing。我不知道为什么我最初没有看到这个。 Logs Writer 和 Logs Bucket Writer 角色似乎都需要。非常感谢,纪尧姆。
    猜你喜欢
    • 1970-01-01
    • 2021-10-21
    • 2020-05-05
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 2018-08-08
    • 2020-08-06
    • 2020-07-05
    相关资源
    最近更新 更多