Google Cloud SQL импорт из корзины: ошибка 403 - PullRequest
0 голосов
/ 05 марта 2020

Я хочу импортировать sql данные в мою базу данных Cloud SQL (с именем "db2"). Поэтому я загрузил sql -файл в свое ведро. Затем я go захожу в свою базу данных 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.

Я следовал решению, приведенному здесь к несколько такой же проблеме: { ссылка } Но это не работает для меня.

Сервисная учетная запись моей базы данных 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

1 Ответ

0 голосов
/ 05 марта 2020

Здесь вы найдете официальную документацию о Импорте SQL файла дампа

Обратите внимание на:

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]
...