Я хотел бы позволить пользователям олицетворять служебную учетную запись для выполнения операций над длительным процессом. Однако все примеры кода иллюстрируют учетную запись службы, которая олицетворяет другую учетную запись службы.
Могут ли пользователи непосредственно олицетворять учетную запись службы? Если да, то как?
Я слежу за этим примером кода .
Инициализировать исходные учетные данные, у которых нет доступа к корзине списка:
from google.oauth2 import service_acccount
target_scopes = [
'https://www.googleapis.com/auth/devstorage.read_only']
source_credentials = (
service_account.Credentials.from_service_account_file(
'/path/to/svc_account.json',
scopes=target_scopes))
Теперь используйте исходные учетные данные для получения учетных данных для олицетворения другой учетной записи службы:
from google.auth import impersonated_credentials
target_credentials = impersonated_credentials.Credentials(
source_credentials=source_credentials,
target_principal='impersonated-account@_project_.iam.gserviceaccount.com',
target_scopes = target_scopes,
lifetime=500)