无需创建文件,如何让gcloud识别stdin传入的JSON格式GCP密钥?
解决gcloud通过stdin读取JSON格式服务账号密钥的问题
你可以通过以下两种方式避免生成密钥文件,同时让gcloud正确识别stdin中的JSON格式密钥:
方法一:强制指定密钥类型
使用--key-type=json参数直接告诉gcloud输入的密钥是JSON格式,无需依赖文件名后缀判断:
printf "%s" "$GCP_KEY" | gcloud auth activate-service-account --key-file=/dev/stdin --key-type=json
方法二:利用进程替换(Bash环境)
通过Bash的进程替换功能,将环境变量中的密钥内容包装成临时的"文件"对象,配合--key-type参数使用:
gcloud auth activate-service-account --key-file=<(printf "%s" "$GCP_KEY") --key-type=json
这两种方法都不会在磁盘上生成持久化的密钥文件,直接通过内存传递完成认证。
内容的提问来源于stack exchange,提问作者unitrium
相关产品推荐
相关产品推荐

