Как олицетворять учетную запись службы GCP из учетных данных, созданных учетными данными приложения по умолчанию - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть учетная запись службы, и я предоставляю роль «ServiceAccountUser» для этой учетной записи службы одному из реальных пользователей. Пользователь имеет учетные данные приложения по умолчанию, установленные как часть его конфигурации, чтобы избежать экрана входа в систему при каждом запуске. Я не уверен, каков наилучший способ для этого пользователя запустить код, который манипулирует определенными ресурсами, доступными только для учетной записи службы. Я не хочу использовать файл ключа учетной записи службы JSON из соображений безопасности. Я пытаюсь следующий код

import google.auth
service_account_email='my-service-account@my-project.iam.gserviceaccount.com'
adc_credentials,adc_project=google.auth.default()

delegated_credentials=adc_credentials.with_subject(service_account_email)

Я получаю сообщение об ошибке: AttributeError: У объекта «Credentials» нет атрибута «with_subject»

1 Ответ

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

Как указано Здесь Роль пользователя учетной записи службы предоставляет вам разрешение на развертывание ресурсов с учетной записью службы, а не разрешение на создание этой учетной записи.

Если проблема заключается в том, что учетные данные при они могут быть скомпрометированы на длительный срок, тогда вы можете использовать Краткосрочные учетные данные

Для олицетворения учетной записи службы вам требуется роль создателя токена учетной записи службы. здесь - статья, объясняющая этот процесс олицетворения.

...