Je passe une fonction simple dans Google Cloud Fonctions pour mettre à jour les enregistrements DNS ( Voir le code ici A >). Actuellement, je crée un compte de service avec Une approche alternative pourrait ne pas prévoir les informations d'identification de compte de service (avec Comment puis-je faire cela avec Go Runtime - Comment puis-je utiliser le jeton au porteur de la demande avec le client Google Api Go Go? P>
Avantages / contre dans ces deux approches? P> rôles / dns.admin code> des privilèges et attribuez-le à la fonction. Je compte ensuite sur la prise en charge de la bêta des fonctions pour l'authentification et l'autorisation du client. P>
rôles / dns.admin code>) pour la fonction, mais passe plutôt les informations d'identification dans chaque demande. P>
3 Réponses :
dans GCF, vous pouvez demander ceci pour attraper le jeton. P>
Curl " http: //metadata.google.Internal / ComputerTataData / V1 / Instance / Service-Comptes / Parfait / Jeton "-H" MetaData-Savom: Google " P> blockQuote>
Ceci est le jeton du compte de service que j'ai assigné à la fonction? L'API Google Go Client "DefaultClIater" semble l'obtenir automatiquement, mais puis-je utiliser le jeton à partir de la demande du client? Comment nourrir cela au client Google API Go?
J'avais utilisé cette méthode dans Python pour générer la requête HTTP à Google API. Vous pouvez modifier la demande en-tête code> avec jeton spécifié. Je suppose que le client Go devrait fournir la méthode pour mettre à jour le jeton, sinon vous pouvez essayer cette approche.
La fonction Cloud doit pouvoir utiliser ses informations d'identification pour autoriser la demande en obtenant les informations d'identification par défaut et en le transmettant dans le client DNS. P>
Rechercher plus d'informations ici: Configuration de l'authentification pour Serveur aux applications de production de serveur p>
Merci! Je cherchais en fait comment utiliser des informations d'identification alternatives stockées sur le client externe et j'ai trouvé un moyen maintenant (je l'ai posté comme une réponse séparée à moi-même). Bien que j'ai maintenant décidé de revenir à la manière documentée puisqu'il donne plus de solutions de rechange pour sécuriser la fonction, telle que le nouveau ESP avec Cloud Run
J'ai trouvé un moyen d'alimenter un jeton d'accès provenant de la demande au client Google API Go. Voici comment je construit le client (R est le fichier mais après avoir pensé un peu, je ne pense pas que ce soit une bonne approche Mon cas: Le jeton d'accès est inutilement puissant à donner au demandeur. J'ai donc choisi la première approche dans ma question initiale. P> p> http.request code>):
Je suppose qu'un "PRO" dans la mise en œuvre actuelle: le client peut être mis à disposition avec un compte de service avec des privilèges moindres et sans accès direct à CloudDNS, tandis que la fonction dispose de privilèges dns.admin.