我正在尝试使用云shell中的接收器将日志导出到bigquery中。我做了以下步骤: bq mk数据集
gcloud beta日志接收器创建my-bq- my_dataset \ bigquery.googleapis.com/projects/my-project/datasets/\ my_dataset --log-filter='resource.type="gce_instance"‘
我为接收器创建了一个服务帐户,并将他绑定到bigQuery.dataEditor和logging.logWriter
问题是,如果我不去控制台->编辑接收器->更新接收器,那么我对数据集的访问就会被拒绝。我如何从cloud shell中解决这个问题呢?
发布于 2020-05-22 03:32:19
与许多产品一样,创建服务与IAM授权是分开的。对于日志接收器,来自Google的“奇怪”决定是由日志服务生成一个服务帐户,并在命令结果中向您发送此服务帐户的名称
Created [https://logging.googleapis.com/v2/projects/My_PROJECT/sinks/test].
Please remember to grant `serviceAccount:p78401601954-957849@gcp-sa-logging.iam.gserviceaccount.com` the BigQuery Data Editor role on the dataset.
More information about sinks can be found at https://cloud.google.com/logging/docs/export/configure_export如果你想写一些脚本,那就不是很有用。因此,将参数--format=json添加到接收器创建命令中,结果如下
{
"createTime": "2020-05-21T19:27:36.599050569Z",
"destination": "bigquery.googleapis.com/projects/My_PROJECT/datasets/asset_eu",
"filter": "resource.type=cloud_function",
"name": "test",
"updateTime": "2020-05-21T19:27:36.599050569Z",
"writerIdentity": "serviceAccount:p78401601954-465055@gcp-sa-logging.iam.gserviceaccount.com"
}现在,您可以获取writerIdentity并在其中授予所需的角色。然而,我重复一遍,这种选择对谷歌来说是奇怪的(与其他产品不一致),我不会对这种行为在未来发生变化感到惊讶。
https://stackoverflow.com/questions/61935273
复制相似问题