我需要在GCP中使用我们自己的K8s集群来部署Datalab实例。
我创建了一个具有角色和用户的服务帐户,因此只有部分人可以使用该服务帐户,并且他们可以访问某些数据。
我想在用户启动其本地Datalab实例之前激活服务帐户,因为我不想让他们访问服务帐户密钥。
我可以成功设置$ GOOGLE_APPLICATION_CREDENTIALS,并在Datalab笔记本中使用以下内容: !gcloud auth激活服务-帐户服务帐户名-密钥文件$ 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