Как активировать учетную запись службы Google с помощью развертывания K8s Datalab - PullRequest
0 голосов
/ 26 августа 2018

Мне необходимо развернуть экземпляры Datalab с помощью нашего собственного кластера K8s в GCP.

  • Я создал учетную запись службы с ролями и пользователями, поэтому только некоторые люди могут использовать учетную запись службы, и они могут получить доступ к определенным данным.

  • Я хочу активировать служебную учетную запись до того, как пользователь запустит свой локальный экземпляр Datalab, поскольку я не хочу предоставлять им доступ к ключу учетной записи службы.

  • Я успешно могу установить $ GOOGLE_APPLICATION_CREDENTIALS и использовать ниже в записной книжке Datalab: ! gcloud auth activit-service -account service-account-name -key-file $ GOOGLE_APPLICATION_CREDENTIALS Но я не хочу, чтобы эта активация была прозрачной для пользователей.

Но учетная запись службы по-прежнему не активируется при перенаправлении на экземпляр.

Журналы kubectl показывают, что сервисная учетная запись была активирована. Там нет ошибок.

Как активировать учетную запись службы экземпляра Datalab, чтобы она активировалась во время развертывания, а не пользователями?

Вот часть моего сценария развертывания K8s:

spec:
 volumes:
 - name: google-cloud-key
   secret:
     secretName: my-secret-key
 containers:
 - name: datalab
   image: gcr.io/cloud-datalab/datalab:latest
   command: ["bin/sh", "-c"]
   args: ["gcloud auth activate-service-account service-account-name --key-file /var/secrets/google/key.json --project=project-name; /datalab/run.sh"]
   volumeMounts:
   - name: google-cloud-key
     mountPath: /var/secrets/google
   env:
   - name: GOOGLE_APPLICATION_CREDENTIALS
     value: /var/secrets/google/key.json
...