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

Google cloud platform Google Cloud SQL导入-错误:HTTPError 403:客户端无权发出此请求,google-cloud-platform,google-cloud-storage,google-cloud-sql,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 req

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

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

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

我遇到了这个问题,我的实例名是正确的。结果证明我参与了错误的GCP项目。确保切换到正确的[target]项目或使用project参数:

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>
gcloud sql实例导出我的云sql实例gs://connect-to-the-cloud-sql.appspot.com/my-cloud-sql-instance-backup--project=

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

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

:

  • 描述要导入到的实例:

    gcloud sql instances describe [INSTANCE_NAME]
    
  • 复制
    serviceAccountEmailAddress
    字段

  • 使用
    gsutil iam
    legacyBucketWriter
    objectViewer
    云iam角色授予bucket的服务帐户

  • 导入数据库:

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

  • 仔细检查项目名称。项目名称正确无误。我能够使用
    gcloud sql instances导出我的云sql实例gs://connect to the cloud sql.appspot.com/my cloud sql instance backup
    在我的例子中,我一直在使用
    --instance=project:zone:instance name
    尝试命令
    gcloud sql users list
    ,并出现同样的错误,当我尝试使用
    --instance=instance name
    时,它起到了作用。建议:检查@inostia列出的文档