Google Cloud SQL import - HTTPError 403:权限不足



我想使用 gcloud 导入工具将 mysql 转储文件导入 mysql 数据库实例,但出现错误:

ubuntu@machine:~/sql$ gcloud sql instances import sql-56-test-8ef0cb104575 gs://dbf/bt_ca_dev_tmp-2017-01-19.sql.gz
ERROR: (gcloud.sql.instances.import) HTTPError 403: Insufficient Permission

我缺少哪些确切权限?我可以使用注册的服务帐户创建sql实例,但无法导入数据?

您的权限有问题

创建一个存储桶 如果没有

存储桶,请运行

`gsutil mb -p [PROJECT_NAME] -l [LOCATION_NAME] gs://[BUCKET_NAME]`

描述要从中导出的 sql 实例并复制 sa

`gcloud sql instances describe [INSTANCE_NAME]`

将服务账户作为写入器添加到存储桶 ACL

`gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:W gs://[BUCKET_NAME]`

将服务帐户作为读取器添加到导入文件

`gsutil acl ch -u [SERVICE_ACCOUNT_ADDRESS]:R gs://[BUCKET_NAME]/[IMPORT_FILE_NAME]`

导入文件: gcloud sql import csv [INSTANCE_NAME] gs://[BUCKET_NAME]/[FILE_NAME] --database=[DATABASE_NAME] --table=[TABLE_NAME]

根据文档,这应该可以解决问题。奇怪的是它需要写入权限。这应该可以解决问题:

gsutil iam ch serviceAccount:"${SERVICE_ACCOUNT}":roles/storage.legacyBucketWriter gs://${BUCKET_NAME}
gsutil iam ch serviceAccount:"${SERVICE_ACCOUNT}":roles/storage.objectViewer gs://${BUCKET_NAME}

这是您尝试使用的 Google Storage 存储桶中 Cloud SQL 服务帐户的权限问题。要解决此问题,您需要向您从中收到的服务帐户电子邮件授予Storage Legacy Bucket ReaderStorage Legacy Object OwnerStorage Object Viewer角色

gcloud sql instances describe <YOUR_DB_NAME> | grep serviceAccountEmailAddress

为此,请转到 Google 云控制台中的云存储/您的存储桶,然后在 Permission 下用 ADD 编写serviceAccountEmailAddress。最后,添加所需的角色。

相关内容

  • 没有找到相关文章

最新更新