Мне необходимо развернуть экземпляры 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