我正在尝试将 Google Cloud Organization 的日志导出到 _Default log bucket from another project。目前看来是不可能的。没有任何线索或错误告诉我原因。到目前为止我尝试过的是:
在所有这些情况下都观察到相同的行为:根本没有导出日志。
我正在使用 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 存储桶。
PS:我尝试复制/粘贴(以防万一)此代码(当然,更改存储桶名称和组织 ID)并且发生了同样的情况。没有错误,但目标存储桶中没有日志。https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/logging_organization_sink
我想查看的日志类型是来自指定过滤器的诸如 CreateUser 或 DeleteUser 之类的事件。
欢迎任何帮助。
我想声明他的(在我看来)不是以下内容的重复:Google Cloud Logs not exporting to storage
因为一切都是正确的,根本不会出现错误。
我想这是一个写权限问题。你能执行这个命令吗
gcloud logging describe gbl-snk-{project}-global-3-gcp --organization={organization_id}
在结果中,获取writerIdentity
服务帐户值。转到您的目标项目,在 IAM 页面中将其授予为 Logs Writer 或 Logs Bucket Writer(请参阅此处的区别)。
那么它应该工作得更好。
在 Terraform 中,您可以像这样获得作家身份
google_logging_organization_sink.organization_sink.writer_identity
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句