创建服务账户

首先可以到「 IAM管理 -> 服务帐户」新增帐户。在新增完成后,会得到一把 key,将它下载后请妥善保管,因为所有相关的身份认证都会用到,这个 key 在下载后就无法继续下载了。

image-20240602000041487

授权

接着到「IAM -> 新增」成员,并且选择角色,这里选择「Cloud Storage -> 储存空间物件检视者」,让此帐户具备有 read(读取) storage 的功能。

image-20240602000120347

登录

bash
1
2
cat KEY-FILE | docker login -u KEY-TYPE --password-stdin \
	https://LOCATION-docker.pkg.dev

GCP 的 KEY-TYPE 通为 json_key,但这里包含两种类型 _json_key_json_key_base64

KEY-FILE 就是下载的 Service account key 的文件

bash
1
2
cat KEY-FILE | docker login -u _json_key --password-stdin \
	https://LOCATION-docker.pkg.dev

通常 Service account key 文件内容如下

yaml
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "type": "service_account",
  "project_id": "project2024-0101",
  "private_key_id": "bdfsd612779509406bb8452c3ek12d730ed547e722d",
  "private_key": "-----BEGIN PRIVATE KEY----....-----END PRIVATE KEY-----\n",
  "client_email": "gcr@project2024-0101.iam.gserviceaccount.com",
  "client_id": "206651723512339084907274",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/manager-image%40project2024-0101.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}