Как настроить GOOGLE_APPLICATION_CREDENTIALS на GCP Appengine - PullRequest
2 голосов
/ 13 февраля 2020

Я использую windows для запуска локального приложения для моего golang проекта. Я получал googleapi: Error 403: Permission 'cloudkms.cryptoKeyVersions.useToEncrypt' denied on resource 'projects/xxxx/locations/xxxx/keyRings/xxx/cryptoKeys/xxx' (or it may not exist)., forbidden. Затем я решил, задав переменную окружения GOOGLE_APPLICATION_CREDENTIALS со значением учетной записи службы xxxx. json. Затем развернутый в GCP appengine возвращает ту же ошибку googleapi: Error 403..... Итак, как установить GOOGLE_APPLICATION_CREDENTIALS в GCP appengine.

Ответы [ 3 ]

0 голосов
/ 13 февраля 2020

Другой ответ:

В вашей консоли в разделе IAM -> Учетные записи служб вы сможете найти служебную учетную запись, связанную с вашим экземпляром ядра приложения:

enter image description here

Вы можете редактировать разрешения там или через командную строку.

Иногда проще сделать что-то через пользовательский интерфейс

0 голосов
/ 13 февраля 2020

Проблема, с которой вы столкнулись, вызвана разработкой / тестированием в двух средах: на вашем рабочем столе и в App Engine. Эту проблему легко решить простым и безопасным способом.

При разработке / тестировании на рабочем столе используйте служебную учетную запись. Используйте переменную среды для указания учетной записи службы.

Вкл. Windows:

set GOOGLE_APPLICATION_CREDENTIALS=c:\fullpath\serviceaccount.json

Вкл. Linux:

export GOOGLE_APPLICATION_CREDENTIALS=/fullpath/serviceaccount.json

Вы можете выполнить предыдущую команду вручную в командной строке или введите его в сценарий запуска (Linux) или в системную переменную среды (Windows).

Для App Engine я не рекомендую использовать файл учетной записи службы в вашем приложении , Я также не рекомендую устанавливать переменную среды.

Клиентские библиотеки Google поддерживают учетные данные приложения по умолчанию (AD C). Это означает, что библиотеки будут пытаться найти учетные данные для вас автоматически. Затем клиентские библиотеки могут использовать среду, чтобы найти учетную запись службы для использования в Windows и автоматически использовать учетную запись службы App Engine по умолчанию при развертывании.

Учетные данные по умолчанию для облачного приложения Google ]

Включив AD C в свой код, вы можете тестировать в Windows / Linux и развертывать в App Engine без изменения кода и без рисков для безопасности, связанных с включением файла учетной записи службы JSON в ваше развертывание. .

0 голосов
/ 13 февраля 2020

Вам необходимо настроить разрешения IAM для использования функции шифрования.

Вы можете сделать это, используя следующую команду с данными своей учетной записи службы:

gcloud kms keys add-iam-policy-binding \
  golden-egg --location global --keyring golden-goose \
  --member serviceAccount:my-service-account@my-project.iam.gserviceaccount.com \
  --role roles/cloudkms.cryptoKeyEncrypterDecrypter

Вот это сообщение сообщества , которое уже коснулось темы и может дать вам больше информации и документации.

Дайте мне знать, помогло ли это вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...