Google Cloud SQL导入 - 错误:HTTPError 403:客户端无权发出此请求

时间:2017-09-30 15:57:50

标签: google-cloud-platform google-cloud-storage google-cloud-sql

我尝试使用以下命令导入存储在云存储中的数据库:

gcloud sql instances import instance-name gs://connect-to-the-cloud-sql.appspot.com/my-cloud-sql-instance-backup

但是,我收到了错误:

ERROR: (gcloud.sql.instances.import) HTTPError 403: The client is not authorized to make this request.

我已经使用以下方式登录:

gcloud auth login

4 个答案:

答案 0 :(得分:2)

确保实例名称正确无误。我有同样的错误,一旦我更正了实例名称它就消失了。

答案 1 :(得分:1)

我遇到了这个问题,我的实例名称正确。原来我在错误的GCP项目中。确保切换到正确的[目标]项目或使用项目参数:

gcloud sql instances export my-cloud-sql-instance gs://connect-to-the-cloud-sql.appspot.com/my-cloud-sql-instance-backup --project=<your target project>

答案 2 :(得分:1)

这听起来似乎太明显了,但是您的服务帐户确实可能缺少导入数据的访问权限。检查是否在IAM&Admin页面上安装了正确的cloudsql.instances.import策略。

答案 3 :(得分:1)

在我的情况下,这是因为cloud sql实例服务帐户对我要从中导入的存储桶没有正确的权限。

From the docs

  1. 描述您要导入到的实例:

    gcloud sql instances describe [INSTANCE_NAME]
    
  2. 复制serviceAccountEmailAddress字段。

  3. 使用gsutil iam向存储桶的服务帐户授予legacyBucketWriterobjectViewer Cloud IAM角色。

  4. 导入数据库:

    gcloud sql import sql [INSTANCE_NAME] gs://[BUCKET_NAME]/[IMPORT_FILE_NAME] \
                            --database=[DATABASE_NAME]