跳至主要內容
ESC
GCP 入門基礎 — 第 2/5 篇

GCP 新手上路:30 分鐘完成環境設定

GCP 新手上路:30 分鐘完成環境設定

想學 Google Cloud(GCP),卻一打開那堆介面和專有名詞就先退三步?我懂,當年我也是這樣。

這篇就帶你把最前面那段最勸退、卻其實最簡單的關卡走完:申請帳號、拿到 $300 免費額度、搞懂 GCP 怎麼組織資源(Organization / Folder / Project)、IAM 權限怎麼管,最後在 Cloud Shell 裡建一個服務帳戶。整段大概 30 分鐘,做完你的開發環境就活了,後面所有實戰都靠這個底子。

動手前你只需要準備三樣東西:

  • 一個 Google 帳號(Gmail)
  • 一張信用卡(只拿來驗證身份,後面會解釋為什麼這不會真的扣你錢)
  • 一個瀏覽器(建議用 Chrome,跟 GCP Console 最合拍)

為什麼需要環境設定?開始前須知

動手之前,先把幾個重要觀念講清楚:

GCP 免費試用的真相

很多人卡在第一步,就是怕「試用結束後會不會被自動扣款?」答案是:不會。這也是新手最常誤會、最該先記住的一件事。

Google Cloud 給你兩種免費方案,搭著用:

  1. 90 天免費試用:$300 USD 額度,幾乎所有 GCP 服務都能拿來玩
  2. Always Free 永久免費方案:20+ 個產品在特定用量內永久免費,跟試用額度是分開算的

試用的運作邏輯是這樣:額度用完或 90 天到期,GCP 只會把帳號停在那裡,不會偷偷從你的卡扣款。你得自己手動升級成付費帳戶,才會開始計費——而且就算升級了,帳單隨時看得到,還能設預算警示提醒你。

💡 重點提點

「試用會不會自動扣款」是新手最容易嚇到自己的問題。記住:GCP 不會在試用結束那一刻自動轉付費,必須你親手按下升級才會開始收錢。所以放心拿這 $300 去實驗,沒升級就絕對不會產生帳單。

為什麼要學環境設定?

環境設定是雲端學習的第一步,也是最關鍵的一步。把它做好,你可以:

  • 建立安全的工作環境,避免誤刪資源或權限外洩
  • 搞懂雲端資源怎麼組織,這是架構師的必備底子
  • 學會用 Cloud Shell,省去在本機安裝一堆工具的麻煩

接下來就一步步把設定做完。


申請 GCP 帳號與免費試用(Step-by-Step)

步驟 1:前往 GCP 免費試用頁面

  1. 開啟瀏覽器,前往 https://cloud.google.com/free
  2. 確保你已登入 Google 帳號(如果沒有,請先註冊一個 Gmail)
  3. 點擊 「Get started for free」 按鈕

步驟 2:選擇國家/地區與同意條款

GCP 會詢問:

  • 所在國家/地區(選擇「台灣」或實際所在地)
  • 是否同意服務條款

⚠️ 注意:選擇的國家/地區會影響某些服務的可用性和定價。

勾選「我同意 Google Cloud 服務條款」後,點擊 「繼續」

步驟 3:驗證信用卡資訊

這是最多人卡關的地方。為什麼非要信用卡?兩個原因:一是證明你是真人不是機器人,二是防止有人狂開帳號濫用免費額度。

那會不會扣錢?這裡要講清楚,免得你看到帳單通知嚇一跳:Google 會做一筆授權保留(authorization hold,等於先在卡上「凍結」一小筆金額確認卡是真的),金額通常是 $0 到 $1 USD,它不是真的扣款。這筆凍結會由你的銀行釋放,多數情況幾天內就還你,依銀行不同可能要等到 1~14 個工作天,不是當下立刻消失。看到那筆 $1 不用緊張,它會回來。

填的東西就那幾樣:

  1. 信用卡號碼
  2. 到期日期
  3. 安全碼(CVV,Card Verification Value,就是卡背面那組 3 位數字)
  4. 帳單地址

💡 提示:如果你對綁實體卡有顧慮,可以用虛擬信用卡(很多銀行的 App 都能臨時開一張),驗證完就能丟掉。

完成後,點擊 「開始免費試用」

步驟 4:確認試用啟用

成功後,你會看到:

  • GCP Console 主畫面
  • 右上角顯示「免費試用中」
  • 剩餘試用額度:$300 USD

看到這三樣,代表你的 GCP 帳號正式開通了,$300 的額度也到位。

常見問題排解

問題解決方案
信用卡驗證失敗確認卡片支援國際交易;嘗試另一張卡片
無法選擇台灣檢查 Google 帳號的國家/地區設定
試用期結束後自動扣款?不會!必須手動升級才會計費

認識 GCP 資源層級:Organization / Folder / Project

帳號有了,但在動手建立資源(像是虛擬機器、資料庫)之前,得先搞懂 GCP 怎麼組織這些東西。

GCP 資源層級架構

GCP 用樹狀階層結構來組織資源:

Organization (組織)

Folder (資料夾) - 可選

Project (專案) - 必要

Resources (資源:VM, Database, Storage...)

一層一層往下看:

Organization(組織)

Organization(組織)是 GCP 的最高層級,白話說就是「你整間公司在雲端上的那個根」。它通常對應到一間公司,而且每個 Google Workspace 帳戶只會有一個 Organization,例如 example-corp.com,這間公司底下所有的 GCP 專案都掛在這個組織下面。

這裡有個新手很常見的困惑:個人用的 Gmail 帳號通常沒有 Organization,這是正常的,不是你哪裡設定錯了。Organization 是企業用戶(有 Google Workspace 企業帳戶)才會有的東西,你自己學習用不到它,找半天找不到那一層很正常。

💡 重點提點

用個人 Gmail 註冊的帳號沒有 Organization 這一層是正常現象,別在 Console 裡找半天以為自己漏設定。你的所有資源會直接建在 Project 底下。等哪天你進公司、用的是公司發的 Workspace 帳號,才會看到 Organization。

Folder(資料夾)

Folder(資料夾)是夾在 Organization 和 Project 中間的分組層,它是可選的——不一定要用,而且需要的話可以一層套一層。它存在的意義是幫大公司把成堆的專案分類,例如按部門(研發、行銷、財務)、按環境(開發、測試、生產),或按產品線來切:

Organization: example-corp
├── Folder: 研發部
│   ├── Project: rd-dev
│   └── Project: rd-prod
└── Folder: 行銷部
    └── Project: marketing-analytics

個人學習階段完全用不到 Folder,直接建 Project 就好,這段看過有印象就行。

Project(專案)★ 最重要

接下來這個才是你天天會碰的主角。Project(專案)是 GCP 的基本組織單位——所有資源都必須掛在某個 Project 底下,它同時是資源的容器、帳單的計算邊界、也是權限的控制邊界。三件事綁在一起,所以它特別關鍵。

每個 Project 有三個關鍵屬性,建完之後你常常要用到:

屬性說明範例
Project Name易讀的顯示名稱(可重複)我的第一個專案
Project ID全球唯一識別碼(不可修改)my-first-project-123456
Project Number系統自動分配的數字123456789012

三個欄位裡,Project ID 最重要,因為幾乎每一條 gcloud 指令都要指定它,而且它一旦建好就不能改,所以取名字的時候稍微想一下。帳單和 IAM 權限也都是以 Project 為單位在算,這就是為什麼實務上會把開發、測試、生產各拆成獨立的 Project:彼此帳單分開、權限分開,互不干擾。命名上用有意義的規則(像 myapp-devmyapp-prod)會省你很多事,不用的 Project 也記得定期清掉。

Resources(資源)

最底層的 Resources(資源)就是你實際開出來的那些東西——一台 Compute Engine VM、一個 Cloud Storage bucket、一座 Cloud SQL 資料庫,全都算資源。每個資源都必須住在某個 Project 裡,而且預設無法跨 Project 共用(真要打通得另外靠網路或 IAM 設定)。這也呼應前面那句:Project 是邊界,資源住在裡面。

IAM 政策的繼承機制

搞懂層級架構後,還要知道權限是怎麼往下繼承的

Organization 層級的權限
    ↓ 繼承
Folder 層級的權限
    ↓ 繼承
Project 層級的權限
    ↓ 繼承
Resource 層級的權限

範例

  • 如果你在 Organization 層級授予某人「Viewer」角色
  • 他就能查看該 Organization 下的所有 Folder、Project、Resources

⚠️ 安全提醒

  • 在高層級(Organization/Folder)授權時要特別小心
  • 新手建議只在 Project 層級授予權限

快速測試:建立你的第一個 Project

實際動手建立一個 Project 吧:

  1. 在 GCP Console 頂端,點擊「Select a project」下拉選單
  2. 點擊 「NEW PROJECT」
  3. 填寫資訊:
    • Project name: my-first-gcp-project
    • Project ID: (系統會自動產生,你也可以自訂)
    • Organization: (如果沒有就留空)
  4. 點擊 「CREATE」

等個幾秒,你的第一個 Project 就建好了。


IAM 權限管理入門:角色與最佳實踐

有了 Project 之後,接下來要學的是怎麼安全地管理存取權限,這就是 IAM(Identity and Access Management)在做的事。

IAM 是什麼?

IAM 一句話講完,就是管「誰」可以對「哪些資源」做「什麼操作」。

把它想成公司的門禁系統就很好懂:員工、訪客、清潔人員是不同的「誰」;辦公室、會議室、機房是不同的「哪裡」;而「能做什麼」則是進門、用設備、改設定的差別。同一張門禁卡,給的人不同、能進的門不同、能做的事也不同——IAM 在雲端做的就是這件事,只是把實體門換成 GCP 的資源。

IAM 的三大組成要素

在 GCP 裡授權,永遠是三個東西湊在一起:

Principal (主體) + Role (角色) + Resource (資源) = IAM Policy

翻成白話就是「(Principal)能對哪些東西(Resource)做什麼(Role)」。把這三個拆開來看:

1. Principal(主體)— 誰要存取?

類型說明範例
Google Account個人 Gmail 帳號alice@gmail.com
Service Account應用程式/服務的身份my-app@my-project.iam.gserviceaccount.com
Google Group一群使用者dev-team@example.com
Google Workspace domain整個網域的使用者example.com

這裡先記兩件事就好:你登入用的那個 Gmail,本身就是一個 Principal;而 Service Account(服務帳戶,給程式而不是給真人用的身份) 是拿來做自動化的,本篇最後的實戰會親手建一個,到時你就懂它在幹嘛了。

2. Role(角色)— 給什麼權限?

GCP 的角色分三種,新手只要分得清前兩種就夠用了:

Basic Roles(基本角色)— 能不用就不用

這是最早、最粗的三個角色,權限範圍大得嚇人:

角色權限範圍適用場景
Owner完全控制(含刪除專案)專案擁有者
Editor讀取 + 修改資源開發人員
Viewer只能查看稽核人員

問題在於它太廣,違反「最小權限原則」(只給剛好夠用的權限)。舉個例子:你只想讓同事管理 VM,但給了 Editor,他連資料庫都能刪掉——這種風險完全沒必要冒。

Predefined Roles(預定義角色)— 平常就用這個

Google 替每個服務都準備好了一堆細粒度角色,你想開什麼權限就挑對應的那一個:

服務角色範例權限說明
Compute Engineroles/compute.instanceAdmin.v1管理 VM 實例
Cloud Storageroles/storage.objectViewer查看 Storage 物件
BigQueryroles/bigquery.dataViewer查看 BigQuery 資料

好處是權限精確、只給該給的,而且這些角色由 Google 持續維護更新,跟著官方走最省心,這也是安全上的建議做法。

Custom Roles(自訂角色)— 有特殊需求再說

如果預定義角色都不剛好,你也能自己挑權限拼一個出來,例如做一個「只能啟動/停止 VM、但不能刪除」的角色。這屬於進階用法,企業有特殊合規需求才會碰。新手的建議很簡單:先把 Predefined Roles 用熟,真的有需要再來研究 Custom Roles。

3. Resource(資源)— 對哪些東西授權?

可以在不同層級授權:

  • Organization 層級(影響所有資源)
  • Folder 層級
  • Project 層級
  • 個別 Resource 層級(如單一 VM)

IAM 最佳實踐

下面三條是 Google Cloud 官方一直在強調、實務上也最該先養成的習慣:

1. 最小權限原則 (Principle of Least Privilege)

不好的做法

授予 alice@gmail.com 為 Project Owner
(她可以刪除整個專案!)

好的做法

授予 alice@gmail.com 為 Compute Instance Admin
(她只能管理 VM,無法刪除專案或存取資料庫)

2. 使用群組而非個人帳號

不好的做法

逐一授權給 alice@, bob@, charlie@
(新人加入要一個個加,離職也要一個個移除)

好的做法

建立 Google Group "dev-team@"
授權給群組
(只需管理群組成員,IAM 設定不變)

3. 定期檢查權限(使用 IAM Recommender)

GCP 會自動分析使用情況,主動建議你移除用不到的權限:

  1. 前往 GCP Console → IAM & Admin → IAM
  2. 查看「Recommendations」標籤
  3. 檢視並套用建議

範例建議

alice@gmail.com 在過去 90 天未使用 BigQuery Admin 權限,建議降級為 BigQuery Viewer”

實戰練習:授予他人查看權限

假設你想讓朋友看你的 Project,但不能改動:

  1. 前往 IAM & AdminIAM
  2. 點擊 「ADD」
  3. 填寫:
    • New principals: friend@gmail.com
    • Select a role: Viewer
  4. 點擊 「SAVE」

完成!你的朋友現在可以查看專案內容,但無法做任何修改。

⚠️ 練習後記得移除權限

  1. 在 IAM 頁面找到 friend@gmail.com
  2. 點擊右側的 ✏️ (編輯)
  3. 點擊 🗑️ (刪除) 移除該權限

啟用 Cloud Shell 與基本操作

最後一塊拼圖是 Cloud Shell(雲端命令列環境),這也是接下來實戰會一直用到的工具。

Cloud Shell 是什麼?

Cloud Shell 是 GCP 直接開在瀏覽器裡的一個免費 Linux 終端機,你不用在自己電腦上裝任何東西,打開分頁就能下指令操作雲端。

幾個對新手特別有感的點:它完全免費;常用工具像 gcloud CLI、kubectl、terraform、git、vim、nano 全都預裝好了;它已經幫你登入好你的 GCP 帳號,指令打下去就生效、不用再做認證設定;還附一個類似 VS Code 的網頁編輯器,以及 5GB 的個人儲存空間(這點等下要補個但書,免得你哪天檔案不見了找不到原因)。

為什麼說它對新手友善?因為它直接幫你繞掉三個常見麻煩:你不用再煩惱「我的電腦是 Windows/Mac/Linux,指令會不會不一樣」;不用自己裝 Python、Node.js、Docker 那一整套;連出門在外只帶平板或手機,只要有瀏覽器都能操作。

啟用 Cloud Shell

步驟

  1. 在 GCP Console 右上角,點擊 「Activate Cloud Shell」 圖示(看起來像 >_
  2. 等待幾秒鐘,終端視窗會從底部彈出
  3. 看到提示字元 username@cloudshell:~$ 就代表成功了!

💡 提示:Cloud Shell 也有開啟快捷鍵(過去常見的是 Ctrl + Alt + S / Cmd + Option + S),但 GCP 介面三不五時會調整,最穩的還是直接點右上角那顆 >_ 圖示,不會找不到。

Cloud Shell 基本操作

1. 確認當前 Project

gcloud config get-value project

預期輸出

my-first-gcp-project

如果顯示的不是你想要的 Project,可以切換:

gcloud config set project YOUR_PROJECT_ID

2. 檢查已安裝的工具

# 檢查 gcloud 版本
gcloud version

# 檢查 kubectl 版本
kubectl version --client

# 檢查 Python 版本
python3 --version

# 檢查 Node.js 版本
node --version

你會發現常用的開發工具早就幫你裝好了!

3. 使用內建程式碼編輯器

Cloud Shell 提供類似 VS Code 的編輯器:

開啟編輯器

  1. 點擊右上角的 「Open Editor」 圖示(鉛筆形狀)
  2. 或執行指令:
    cloudshell edit ~/my-script.sh

建立一個測試檔案

echo "echo 'Hello from Cloud Shell!'" > hello.sh
chmod +x hello.sh
./hello.sh

預期輸出

Hello from Cloud Shell!

4. 永久儲存檔案

Cloud Shell 的 $HOME 目錄/home/your_username)會保留你的檔案,總容量 5GB。但這裡有個容易踩的坑:這個「永久」是有條件的——如果你連續 120 天沒用 Cloud Shell,Google 會自動把整個 $HOME 目錄刪掉,而且無法復原。所以真正重要的東西(金鑰、設定檔),別只放在這裡當唯一備份。

測試

# 建立一個檔案
echo "This file will persist" > ~/persistent-file.txt

# 關閉 Cloud Shell 並重新開啟

# 檢查檔案是否還在
cat ~/persistent-file.txt

檔案還在!所以你可以把常用的設定檔、腳本都丟在這裡。

⚠️ 注意/tmp 目錄的檔案會在每次重啟後清除。

5. 網頁預覽功能(Web Preview)

Cloud Shell 甚至能直接跑 Web 應用程式給你預覽!

範例:啟動一個簡單的 HTTP 伺服器

# 建立一個簡單的 HTML 檔案
echo "<h1>Hello from Cloud Shell Web Preview</h1>" > index.html

# 啟動 Python HTTP 伺服器(Port 8080)
python3 -m http.server 8080

然後:

  1. 點擊 Cloud Shell 上方的 「Web Preview」 圖示
  2. 選擇 「Preview on port 8080」
  3. 新分頁會開啟,顯示你的網頁!

💡 用途

  • 測試前端網頁
  • 預覽 API 文件
  • 執行開發伺服器(如 React, Vue, Flask)

Cloud Shell 限制

Cloud Shell 雖然好用,但有幾條限制,知道了才不會做到一半被打斷還搞不清楚原因:

限制說明
閒置逾時閒置約 1 小時後自動結束 session(重新開啟即可)
單次最長單一 session 最長連續使用 12 小時,到時會自動斷開
每週用量每週累計用量上限 50 小時,超過要等下週重置
儲存空間$HOME 目錄上限 5GB,且連續 120 天未使用會被刪除
運算資源共享資源,不適合跑大型運算任務
套件不持久有 sudo 權限可裝套件,但 $HOME 以外的系統變更會在 VM 回收後重置

這幾條對新手最有感的是「單次 12 小時」和「每週 50 小時」:如果你某天打算長時間泡在 Cloud Shell 做 lab,記得它不是無限的,跑大型作業還是該開正式的 VM。

常用 gcloud 指令速查

Cloud Shell 啟用好了,這裡整理幾個最常用的 gcloud 指令:

# 查看目前登入的帳號
gcloud auth list

# 列出所有 Project
gcloud projects list

# 切換 Project
gcloud config set project PROJECT_ID

# 查看目前設定
gcloud config list

# 列出 Compute Engine VM 實例
gcloud compute instances list

# 列出 Cloud Storage buckets
gcloud storage buckets list

# 查看帳單資訊
gcloud billing accounts list

💡 小技巧:不確定指令怎麼用?加上 --help 查看說明:

gcloud compute instances create --help

實戰練習:建立第一個服務帳戶

前面的帳號、Project、IAM、Cloud Shell 都備齊了,現在把它們串起來做一件實際的事:建一個服務帳戶(Service Account)

什麼是服務帳戶?

前面提過,服務帳戶是給程式用、而不是給真人用的身份。你登入 Console 用的是自己的 Gmail,但程式不會「登入」,它需要一個自己的身份去存取資源——這就是服務帳戶。

常見的用途像這些:

  • 讓你的 Python 腳本自動把檔案上傳到 Cloud Storage
  • 讓 CI/CD(Continuous Integration / Continuous Delivery,自動測試與自動部署的流水線)把程式自動部署到 GCP
  • 讓一台 VM 去存取其他 GCP 服務,而不用把你的個人帳密塞進去

步驟 1:建立服務帳戶

在 Cloud Shell 中執行:

# 設定變數(替換成你的 Project ID)
export PROJECT_ID="my-first-gcp-project"

# 建立服務帳戶
gcloud iam service-accounts create my-first-sa \
    --description="My first service account" \
    --display-name="My First SA" \
    --project=$PROJECT_ID

預期輸出

Created service account [my-first-sa].

步驟 2:授予權限

讓這個服務帳戶能夠查看 Storage 物件:

# 授予 Storage Object Viewer 角色
gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member="serviceAccount:my-first-sa@${PROJECT_ID}.iam.gserviceaccount.com" \
    --role="roles/storage.objectViewer"

步驟 3:列出服務帳戶

確認剛才建立的服務帳戶:

gcloud iam service-accounts list --project=$PROJECT_ID

預期輸出

DISPLAY NAME    EMAIL                                              DISABLED
My First SA     my-first-sa@my-first-gcp-project.iam.gserviceaccount.com  False

步驟 4:(可選)下載金鑰

如果需要在本地程式中使用這個服務帳戶:

gcloud iam service-accounts keys create ~/my-first-sa-key.json \
    --iam-account=my-first-sa@${PROJECT_ID}.iam.gserviceaccount.com

💡 重點提點

這個金鑰檔案(JSON)等於服務帳戶的密碼,外洩了等於把鑰匙交給陌生人。最常見的慘案就是不小心把它跟程式碼一起 push 上 GitHub,被機器人掃到後拿去開礦挖礦,帳單一夕爆掉。所以:金鑰絕對不要進版控、不要傳到任何公開的地方。更進一步,正式環境建議改用 Workload Identity(讓 GCP 內的服務直接拿短期憑證、不必下載長期金鑰檔的機制),從根本上避免金鑰外洩——這是進階主題,先有個印象,知道「能不下載金鑰就不要下載」這個方向就對了。

步驟 5:清理資源

練習完畢後,記得刪除服務帳戶:

# 刪除金鑰檔案
rm ~/my-first-sa-key.json

# 刪除服務帳戶
gcloud iam service-accounts delete \
    my-first-sa@${PROJECT_ID}.iam.gserviceaccount.com \
    --project=$PROJECT_ID

收尾與下一步

走到這裡,你的 GCP 開發環境已經是活的了。回頭看你這 30 分鐘做了什麼:開好一個含 $300 額度的帳號、搞懂了 GCP 怎麼用 Organization / Folder / Project 組織資源、摸過了 IAM 的 Principal / Role / Resource 三件套和最小權限原則,也在 Cloud Shell 裡親手建了第一個服務帳戶又把它清掉。這些就是後面所有實戰的地基。

進下一篇之前,花一分鐘自己對一下,下面五件事有沒有真的動手做過:

  • 申請好 GCP 帳號(含 $300 試用額度)
  • 建好至少一個 Project
  • 講得出 IAM 的 Principal、Role、Resource 各是什麼
  • 啟用 Cloud Shell 並跑過基本指令
  • 建立並刪除過一個服務帳戶

哪一項還卡卡的,別急著往下,回頭把那段重操作一遍——這幾個概念後面會反覆用到,現在多花十分鐘比之後一直回來查划算。

環境有了,下一篇 GCP-103:第一台雲端主機——Compute Engine 從建立到監控 就要真的開機器了:建一台 VM、SSH 連進去、架個簡單網站、設防火牆規則、再做快照備份,把「我在雲端上跑了一台自己的伺服器」這件事第一次做出來。

想多挖一點的話,這三個是我自己會回頭翻的:Google Cloud 官方文件Google Cloud Skills Boost(原 Qwiklabs,有免費的實驗室和課程),還有 GCP 中文社群(Facebook),卡關時丟上去問通常很快有人回。設定過程踩到坑很正常,$300 的額度就是給你放心拿來試錯用的。


關於本系列

這是《GCP Mastery:從雲端小白到精通》系列的第 2 篇文章,基於《Google Cloud 從雲端小白到黑帶高手》書籍規劃。

系列導覽

同階段文章

完整系列目錄點此查看完整課程列表

下一課 GCP-103:第一台雲端主機——Compute Engine 從建立到監控,我們動手建你的第一台 VM。

GCP 入門基礎 — 2/5 完成 查看系列全覽 →

留言討論

徽章解鎖!