Для Google Cloud SDK и CLI вы должны использовать учетные данные учетной записи службы.
Шаг 1. Создайте учетную запись службы и загрузите
- Входв консоль Google Cloud.
- Перейдите в раздел IAM & admin -> Учетные записи служб
- Нажмите СОЗДАТЬ СЧЕТ ОБСЛУЖИВАНИЯ
- Введите имя учетной записи службы и описание учетной записи службы
- Нажмите CREATE
- . На следующем экране разрешения учетной записи службы выберите роль.
- Добавьте нужные роли.
- Нажмите ПРОДОЛЖИТЬ
- Нажмите Создать ключ
- Проверьте переключатель JSON на тип ключа
- Сохраните файл json на свой компьютер.
- Поскольку вы работаете в ВМ, загрузите в ВМ.
Шаг 2. Настройте gcloud и SDK для использования учетной записи службы.
Вам понадобится адрес электронной почты учетной записи службы (которая также хранится в файле Json) и имя файла учетной записи службы.
Запустите эту команду из оболочки вашей виртуальной машины:
gcloud auth activate-service-account SERVICE_ACCOUNT_EMAIL_ADDRESS --key-file=service_account_filename.json
Шаг 3: Убедитесь, что ваши учетные данные работают:
gcloud auth list
Вы должны увидеть свою учетную запись службы со звездочкой слевастолбец (в котором указывается учетная запись учетной записи).
Примечание. Поскольку вы работаете в экземпляре виртуальной машины Google (GCE), опытный пользователь часто будет использовать учетную запись службы вычислений по умолчанию Compute Engine для учетных данных.Я рекомендую сначала узнать, как использовать файл Json служебной учетной записи.
Шаг 4. Укажите учетную запись службы
Установите переменную среды GOOGLE_APPLICATION_CREDENTIALS
, чтобы она указывала на вашу службу.Файл JSON аккаунта.В этом примере измените путь к своему.
Для Linux:
export GOOGLE_APPLICATION_CREDENTIALS="/home/username/[FILE_NAME].json"
Для Windows:
set GOOGLE_APPLICATION_CREDENTIALS="c:\Users\username\[FILE_NAME].json"
Шаг 5: При необходимости укажитеучетная запись службы при создании клиента службы:
from google.cloud import datastore
def create_client(project_id):
return datastore.Client(project_id).from_service_account_json('service_account_filename.json')