使用bq命令在GCP Bigquery和Cloud SQL(Mysql 5.7)之间创建连接时发出错误



我想在新建的项目中创建Bigquery和Cloud SQL(MySQL 5.7(之间的连接!(不在现有的项目中,我可以在现有项目中创建连接,没有问题(

这是我使用的命令

bq mk --connection --connection_type='CLOUD_SQL' --properties='{"instanceId":"<PROJECT ID>:<REGION>:<MYSQL INSTANCE>","database":"<MY DATABASE>","type":"MYSQL"}' --connection_credential='{"username":"root", "password":"<PASSWORD>"}' --project_id=<PROJECT ID> --location=<REGION> <MYSQL INSTANCE>

但是我得到了下面的错误

BigQuery error in mk operation: Access Denied: URI:  services/bigqueryconnection.googleapis.com/projects/<PROJECT ID>:
APPLICATION_ERROR;google.api.serviceconsumermanagement.v1beta1/ServiceConsumerManagerV1Beta1.GenerateServiceIdentity;Permission denied to generate service identity for service
[bigqueryconnection.googleapis.com]
Details: [{
IAM{policy: 'serviceconsumermanagement_consumers-/000000555846b828/bigqueryconnection.googleapis.com/000000b742218216' resource: 'services/bigqueryconnection.googleapis.com/consumers/<PROJECT ID>'
permission: 'serviceconsumermanagement.consumers.generateServiceAccount'}
allowed: false auditlog: false cloudaudit: false
}]
...
...

经过大量研究,我认为问题可能是我没有像这样的角色BigQuery Connection Service agent的服务帐户。因为我在另一个项目中有这种服务帐户。

service-<project id>@gcp-sa-bigqueryconnection.iam.gserviceaccount.com

我真的不知道这个服务帐户是如何创建的,也许通过启用Bigquery Connection API服务,我会创建一个如上所述的服务帐户。

虽然已经启用了bigquery连接API,但我取消了它,然后再次启用了它。但是服务帐户仍然没有被创建。

有人知道这个问题吗?非常感谢。

更新:

对不起,我忘了说我已经有bigquery管理员/bigquery连接管理员/云sql管理员权限

您需要授予bigquery.admin访问权限。文档链接

gcloud projects add-iam-policy-binding project_id 
--member group/user:address 
--role roles/bigquery.admin

示例:

$ bq mk --connection --connection_type='CLOUD_SQL' --properties='{"instanceId":"data-lab:us-east1:instance-mysql","database":"information_schema","type":"MYSQL"}' --connection_credential='{"username":"root", "password":"*****"}' --project_id=data-lab --location=us MyExternalSQL
Connection 906721254566.us.MyExternalSQL successfully created

当您启用BigQuery Connection API时,应自动代表您创建一个服务帐户,该帐户具有以下角色:

cloudsql.client
logging.logWriter
metrics.metricWriter

要创建和维护连接资源,用户必须具有bigquery.admin预定义角色,如@Soumendra所述。

检查文档云SQL联合查询

我启用了API,但没有创建服务帐户。

请检查Document BigQuery Connection API客户端库以创建该服务帐户。

完成后,尝试连接。

相关内容

  • 没有找到相关文章

最新更新