教學課程 / Cloud One Workload Security:第 01 課-帳戶與雲端連接器 / 使用 gcloud CLI 設定 API、服務帳戶與金鑰
單元 21 / 22

使用 gcloud CLI 設定 API、服務帳戶與金鑰

下列範例示範以 gcloud CLI 啟用必要 API、建立服務帳戶、指派 Compute Viewer 角色及建立 JSON 服務帳戶金鑰。命令與權限可能隨 Google Cloud 更新而變更,執行前請先與現行 GCP 及 Workload Security 文件比對。

使用 gcloud CLI 的程式碼

文件

步驟 1-確認 API 是否已啟用

gcloud services list --enabled
ca-stephaniem-l:~ ricka$ gcloud services list --enabled
NAME                              TITLE
bigquery.googleapis.com           BigQuery API
bigquerystorage.googleapis.com    BigQuery Storage API
cloudapis.googleapis.com          Google Cloud APIs
clouddebugger.googleapis.com      Cloud Debugger API
cloudtrace.googleapis.com         Cloud Trace API
compute.googleapis.com            Compute Engine API
datastore.googleapis.com          Cloud Datastore API
logging.googleapis.com            Cloud Logging API
monitoring.googleapis.com         Cloud Monitoring API
oslogin.googleapis.com            Cloud OS Login API
servicemanagement.googleapis.com  Service Management API
serviceusage.googleapis.com       Service Usage API
sql-component.googleapis.com      Cloud SQL
storage-api.googleapis.com        Google Cloud Storage JSON API
storage-component.googleapis.com  Cloud Storage

步驟 2-啟用 Cloud Resource Manager API

gcloud services enable cloudresourcemanager.googleapis.com
ca-stephaniem-l:~ ricka$ gcloud services enable cloudresourcemanager.googleapis.com
Operation "operations/acf.2cd9bfa9-9ab7-4162-8dd1-a07c31b63c9c" finished successfully.

步驟 3-啟用 Compute Engine API

gcloud services enable compute.googleapis.com
ca-stephaniem-l:~ ricka$ gcloud services enable compute.googleapis.com
Operation "operations/acf.2cd9cfa7-9ab7-5042-8dd1-a07c41c63c9a" finished successfully.

建立服務帳戶的程式碼

文件

步驟 1-建立服務帳戶

gcloud iam service-accounts create gcp-cloud-account --display-name "GCP Cloud Account"
ca-stephaniem-l:~ ricka$ gcloud iam service-accounts create gcp-cloud-account --display-name "GCP Cloud Account"
Created service account [gcp-cloud-account].

步驟 2-查詢服務帳戶 ID

gcloud iam service-accounts list
ca-stephaniem-l:~ ricka$ gcloud iam service-accounts list
NAME                                    EMAIL                                                 DISABLED
Compute Engine default service account  12345678-compute@developer.gserviceaccount.com    False
GCP Cloud Account

步驟 3-查詢 Compute Viewer 角色

gcloud iam roles list --filter "Compute Viewer"
ca-stephaniem-l:~ ricka$ gcloud iam roles list --filter "Compute Viewer"
---
description: Read-only access to Compute Engine networking resources.
etag: AA==
name: roles/compute.networkViewer
stage: GA
title: Compute Network Viewer
---
description: Read-only access to get and list information about all Compute Engine
  resources, including instances, disks, and firewalls. Allows getting and listing
  information about disks, images, and snapshots, but does not allow reading the data
  stored on them.
etag: AA==
name: roles/compute.viewer
stage: GA
title: Compute Viewer
---
description: Read-only access to Notebooks all resources through compute API.
etag: AA==
name: roles/notebooks.legacyViewer
title: Notebooks Legacy Viewer
---
description: Viewer of compute recommendations.
etag: AA==
name: roles/recommender.computeViewer
stage: GA
title: Compute Recommender Viewer

步驟 4-將角色指派給服務帳戶

gcloud projects add-iam-policy-binding cloudonepm --member serviceAccount:gcp-cloud-account@cloudonepm.iam.gserviceaccount.com --role roles/compute.viewer
ca-stephaniem-l:~ ricka$ gcloud projects add-iam-policy-binding cloudonepm --member serviceAccount:gcp-cloud-account@cloudonepm.iam.gserviceaccount.com --role roles/compute.viewer
Updated IAM policy for project [cloudonepm].
bindings:
- members:
  - serviceAccount:service-247336264570@compute-system.iam.gserviceaccount.com
  role: roles/compute.serviceAgent
- members:
  - serviceAccount:gcp-cloud-account@cloudonepm.iam.gserviceaccount.com
  - serviceAccount:gcp-cloud-one@cloudonepm.iam.gserviceaccount.com
  role: roles/compute.viewer
- members:
  - serviceAccount:247336264570-compute@developer.gserviceaccount.com
  - serviceAccount:247336264570@cloudservices.gserviceaccount.com
  role: roles/editor
- members:
  - user:james_hsiao@trendmicro.com
  - user:jason_tanabe@trendmicro.com
  - user:jean_francoeur@trendmicro.com
  - user:kyle_klassen@trendmicro.com
  - user:meihua_chen@trendmicro.com
  - user:rick_abbott@trendmicro.com
  - user:ryan_wang@trendmicro.com
  - user:vanessa_scott@trendmicro.com
  - user:walt_tsai@trendmicro.com
  - user:winfred_lin@trendmicro.com
  role: roles/owner
etag: BwWj9gwjsto=
version: 1

步驟 5-建立 JSON 服務帳戶金鑰

gcloud iam service-accounts keys create gcpcloudaccount.json --iam-account=gcp-cloud-account@cloudonepm.iam.gserviceaccount.com
ca-stephaniem-l:~ ricka$ gcloud iam service-accounts keys create gcpcloudaccount.json --iam-account=gcp-cloud-account@cloudonepm.iam.gserviceaccount.com
created key [dc88c77386a0e0e4e96ee6fc0bbfe75d2d6815db] of type [json] as [gcpcloudaccount.json] for [gcp-cloud-account@cloudonepm.iam.gserviceaccount.com]

取得 JSON 服務帳戶金鑰檔案後,即可依 Workload Security 的現行流程新增 Google Cloud 帳戶。請將金鑰視為敏感憑證並妥善保管。

← 上一單元:使用 gcloud CLI 建立服務帳戶 下一單元:本課複習 →

Cloud One Workload Security:第 01 課-帳戶與雲端連接器 · 22 單元