You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为gcloud配置access token以修改云实例元数据?

问题描述

我拥有access token ya29...0God,且已知该token具备compute.instances.setMetadata权限。目前已能通过以下curl命令修改GCP实例元数据:

curl --request POST \
  'https://www.googleapis.com/compute/v1/projects/[PROJECT]/zones/[ZONE]/instances/[INSTANCE-NAME]/setMetadata' \
  -H 'Authorization: Bearer [ACCESS-TOKEN]' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data '{
    "fingerprint": "[INSTANCE-METADATA-FINGERPRINT]",
    "items": [
      {
        "key": "ssh-keys",
        "value": "ubuntu:ssh-rsa [SSH-PUBLIC-KEY] ubuntu"
      }
    ]
  }'

但我希望改用gcloud命令实现相同操作:

gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt

请问是否可以为gcloud配置该access token?

解决方案

可以为gcloud配置指定的access token,有两种常用方式:

1. 单次命令临时生效

直接在gcloud命令前设置CLOUDSDK_AUTH_ACCESS_TOKEN环境变量,该配置仅对当前执行的命令有效:

CLOUDSDK_AUTH_ACCESS_TOKEN=ya29...0God gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt --zone [ZONE] --project [PROJECT]

2. 持久化配置(当前终端会话生效)

使用gcloud auth activate-access-token命令将指定token设为当前gcloud的默认认证凭据,后续所有gcloud命令都会自动使用该token,直到你切换认证账号或token过期:

gcloud auth activate-access-token ya29...0God

激活后,直接运行目标gcloud命令即可(记得补充必要的--zone和--project参数):

gcloud compute instances add-metadata [INSTANCE] --metadata-from-file ssh-keys=meta.txt --zone [ZONE] --project [PROJECT]

注意事项

  • 确认你的access token确实包含compute.instances.setMetadata权限,这是执行实例元数据添加操作的必要前提
  • 若token过期,需要重新配置新的有效token才能继续使用gcloud执行相关操作

内容的提问来源于stack exchange,提问作者null

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 12:54:20