2017-09-29 4 views
0

Je cherche à fournir un service aux personnes utilisant GCP. Étant donné que j'accède à leurs API de surveillance GCP à partir de mon serveur, il me semble qu'il serait préférable d'utiliser un compte de service. De cette façon, il n'est pas lié à un utilisateur individuel et ne cessera pas de fonctionner si cet utilisateur est supprimé de son organisation.Utiliser le flux oauth pour créer un compte de service GCP?

La création manuelle d'un compte de service n'est pas trop compliquée, mais certainement plus compliquée que de simplement présenter à l'utilisateur un flux d'autorisations oauth.

Est-il possible de créer un compte de service GCP à l'aide d'un flux oauth afin que je n'ai pas à forcer l'utilisateur à en créer un manuellement avec les permissions correctes?

J'ai regardé autour de moi et je ne trouve aucune documentation à ce sujet, ce qui me porte à croire que ce n'est pas possible.

Répondre

0

Vous pouvez créer des comptes de service par programmation avec l'appel API projects.serviceAccounts.create. Cet appel doit être effectué par un utilisateur autorisé avec l'autorisation iam.serviceAccounts.create (par exemple, rôle owner ou iam.serviceAccountAdmin). Code pour faire cela ressemblerait à:

import googleapiclient.discovery 
import httplib2 
credentials = GET_YOUR_USER_CREDS() 
http_auth = credentials.authorize(httplib2.Http()) 
iam_client = googleapiclient.discovery.build('iam', 'v1', http=http_auth()) 
iam_client.projects().serviceAccounts().create(name="projects/PROJECT_ID", body={"accountId":"SERVICE-ACCOUNT-ID"}).execute()