web-dev-qa-db-fra.com

Utilisation de clés JSON avec Google Cloud Gsutil


[.____] J'ai une clé privée SSH dans un key.json Fichier, et je souhaite utiliser ces informations d'identification pour accéder à un godet de stockage à l'aide de Gsutil.

Je n'arrive pas à trouver quelque chose sur la manière d'inclure les clés JSON en tant que méthode d'authentification, uniquement des champs "privés" et "secrets".

La structure de fichier est:

{
  "private_key_id":
  "private_key": "-----BEGIN PRIVATE KEY-- ...
   "client_email":
   "client_id":
  "type": "service_account"
}

Comment utiliser gsutil avec ce fichier?

13
GuySoft

La version courte consiste à exécuter la commande suivante et à suivre les instructions:

gsutil config -e

L'outil Gsutil a une aide intégrée pouvant être consultée pour toutes sortes d'options et de modes de fonctionnement. Lors de la course gsutil help creds, une des options d'aide recommandées lors de l'exécution gsutil seul, nous pouvons lire la section "OAuth2 Service Account "Pour voir les instructions d'utilisation du fichier de clé JSON de compte de service:

OAuth2 Service Account:

This is the preferred type of credential to use when authenticating on
behalf of a service or application (as opposed to a user). For example, if
you will run gsutil out of a nightly cron job to upload/download data,
using a service account allows the cron job not to depend on credentials of
an individual employee at your company. This is the type of credential that
will be configured when you run "gsutil config -e".

It is important to note that a service account is considered an Editor by
default for the purposes of API access, rather than an Owner. In particular,
the fact that Editors have OWNER access in the default object and
bucket ACLs, but the canned ACL options remove OWNER access from
Editors, can lead to unexpected results. The solution to this problem is to
ensure the service account is an Owner in the Permissions tab for your
project. To find the email address of your service account, visit the
`Google Developers Console <https://cloud.google.com/console#/project>`_,
click on the project you're using, click "APIs & auth", and click
"Credentials".

To create a service account, visit the Google Developers Console and then:

   - Click "APIs & auth" in the left sidebar.

   - Click "Credentials".

   - Click "Create New Client ID".

   - Select "Service Account" as your application type.

   - Save the JSON private key or the .p12 private key and password
     provided.

For further information about account roles, see:
  https://developers.google.com/console/help/#DifferentRoles

For more details about OAuth2 service accounts, see:
  https://developers.google.com/accounts/docs/OAuth2ServiceAccount
2
Nick

À ce jour, gsutil config -e est toujours dans le doc quand vous le faites gsutil help config, mais ne fonctionne pas. gsutil help creds dit au premier do gcloud auth activate-service-account

Alors j'ai fait:

gcloud auth activate-service-account --key-file=mycredentialsialreadyhad.json

Il a rempli ~/.config/gcloud/ et gsutil fonctionne maintenant.

Du docs:

Compte de service OATH2: Il s'agit du type préféré d'informations d'identification à utiliser lors de l'authentification pour le compte d'un service ou d'une application (par opposition à un utilisateur). (...). Il s'agit du type d'informations d'identification qui sera configurée lorsque vous exécutez "Gsutil Config -e". Pour configurer les informations d'identification de compte de service lorsqu'il est installé via le cloud SDK, exécutez "GCloud authentifate-service-service-compte".

9
Alex F