google-cloud-sql - 从存储桶导入 Google Cloud SQL:错误 403
问题描述
我想将 sql 数据导入我的 Cloud SQL 数据库(名为“db2”)。因此,我已将 sql 文件上传到我的存储桶中。然后我转到我的 Cloud SQL 数据库并单击“与 Cloud Shell 连接”。尝试通过 CloudShell 导入时,我得到:
info@cloudshell:~ (servers)$ gcloud sql import sql db2 gs://mybucket/db.sql
Data from [gs://mybucket/db.sql] will be imported to [db2].
Do you want to continue (Y/n)? Y
ERROR: (gcloud.sql.import.sql) HTTPError 403: The service account does not have the required permissions for the bucket.
我在这里遵循了针对相同问题的解决方案:https ://stackoverflow.com/a/53608811/2795648 但这对我不起作用。
我的 Cloud SQL 数据库的服务帐户具有我可以在存储桶和文件上授予的所有权限(不是必须的)。
添加了一些额外的信息。以下是服务帐户的权利:
- members:
- serviceAccount:p3998516xxxxx-p9q5dn@gcp-sa-cloud-sql.iam.gserviceaccount.com
role: roles/storage.admin
- members:
- serviceAccount:p3998516xxxxx-p9q5dn@gcp-sa-cloud-sql.iam.gserviceaccount.com
role: roles/storage.objectAdmin
- members:
- serviceAccount:p3998516xxxxx-p9q5dn@gcp-sa-cloud-sql.iam.gserviceaccount.com
role: roles/storage.objectCreator
- members:
- serviceAccount:p3998516xxxxx-p9q5dn@gcp-sa-cloud-sql.iam.gserviceaccount.com
role: roles/storage.objectViewer
- members:
- serviceAccount:p3998516xxxxx-p9q5dn@gcp-sa-cloud-sql.iam.gserviceaccount.com
role: roles/storagetransfer.admin
- members:
- serviceAccount:p3998516xxxxx-p9q5dn@gcp-sa-cloud-sql.iam.gserviceaccount.com
role: roles/storagetransfer.user
- members:
- serviceAccount:p3998516xxxxx-p9q5dn@gcp-sa-cloud-sql.iam.gserviceaccount.com
role: roles/storagetransfer.viewer
解决方案
请注意:
3.描述您要导入的实例:
gcloud sql instances list
gcloud sql instances describe [INSTANCE_NAME]
4.复制 serviceAccountEmailAddress 字段。
gcloud sql instances describe [INSTANCE_NAME] | grep serviceAccountEmailAddress
5.使用gsutil
iam 将 legacyBucketWriter 和 objectViewer Cloud IAM 角色授予存储桶的服务帐户。
gsutil iam ch serviceAccount:your_previous_service_account_step4:legacyBucketWriter,objectViewer gs://ex-bucket
然后尝试导入命令:
gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
--database=[DATABASE_NAME]
推荐阅读
- sql - DB2 中的 PLSQL 是否支持嵌套的 while 语句?
- c# - Regex.Matches 为正则表达式 c# 抛出异常
- javascript - Vue中双向绑定props的正确方式是什么?
- azure - 如何为 Container Registry Azure 创建只读访问密钥
- python - 按跨年的日历周分组
- mysql - 这个“医疗保健”数据库的 sql 查询代码是什么?
- asp.net - 超时后处理“无法解密防伪令牌”错误
- ios - AVAssetWriter 将图像写入 mp4 文件,但文件内容只有一半
- java - NiFi 开发自定义处理器:import org.apache.nifi.processors 错误
- c# - 对于特定数据集,神经网络的工作配置是什么(层数、学习率等)?