GCP 新手上路:30 分鐘完成環境設定
想學 Google Cloud(GCP),卻一打開那堆介面和專有名詞就先退三步?我懂,當年我也是這樣。
這篇就帶你把最前面那段最勸退、卻其實最簡單的關卡走完:申請帳號、拿到 $300 免費額度、搞懂 GCP 怎麼組織資源(Organization / Folder / Project)、IAM 權限怎麼管,最後在 Cloud Shell 裡建一個服務帳戶。整段大概 30 分鐘,做完你的開發環境就活了,後面所有實戰都靠這個底子。
動手前你只需要準備三樣東西:
- 一個 Google 帳號(Gmail)
- 一張信用卡(只拿來驗證身份,後面會解釋為什麼這不會真的扣你錢)
- 一個瀏覽器(建議用 Chrome,跟 GCP Console 最合拍)
為什麼需要環境設定?開始前須知
動手之前,先把幾個重要觀念講清楚:
GCP 免費試用的真相
很多人卡在第一步,就是怕「試用結束後會不會被自動扣款?」答案是:不會。這也是新手最常誤會、最該先記住的一件事。
Google Cloud 給你兩種免費方案,搭著用:
- 90 天免費試用:$300 USD 額度,幾乎所有 GCP 服務都能拿來玩
- Always Free 永久免費方案:20+ 個產品在特定用量內永久免費,跟試用額度是分開算的
試用的運作邏輯是這樣:額度用完或 90 天到期,GCP 只會把帳號停在那裡,不會偷偷從你的卡扣款。你得自己手動升級成付費帳戶,才會開始計費——而且就算升級了,帳單隨時看得到,還能設預算警示提醒你。
💡 重點提點
「試用會不會自動扣款」是新手最容易嚇到自己的問題。記住:GCP 不會在試用結束那一刻自動轉付費,必須你親手按下升級才會開始收錢。所以放心拿這 $300 去實驗,沒升級就絕對不會產生帳單。
為什麼要學環境設定?
環境設定是雲端學習的第一步,也是最關鍵的一步。把它做好,你可以:
- 建立安全的工作環境,避免誤刪資源或權限外洩
- 搞懂雲端資源怎麼組織,這是架構師的必備底子
- 學會用 Cloud Shell,省去在本機安裝一堆工具的麻煩
接下來就一步步把設定做完。
申請 GCP 帳號與免費試用(Step-by-Step)
步驟 1:前往 GCP 免費試用頁面
- 開啟瀏覽器,前往 https://cloud.google.com/free
- 確保你已登入 Google 帳號(如果沒有,請先註冊一個 Gmail)
- 點擊 「Get started for free」 按鈕
步驟 2:選擇國家/地區與同意條款
GCP 會詢問:
- 所在國家/地區(選擇「台灣」或實際所在地)
- 是否同意服務條款
⚠️ 注意:選擇的國家/地區會影響某些服務的可用性和定價。
勾選「我同意 Google Cloud 服務條款」後,點擊 「繼續」。
步驟 3:驗證信用卡資訊
這是最多人卡關的地方。為什麼非要信用卡?兩個原因:一是證明你是真人不是機器人,二是防止有人狂開帳號濫用免費額度。
那會不會扣錢?這裡要講清楚,免得你看到帳單通知嚇一跳:Google 會做一筆授權保留(authorization hold,等於先在卡上「凍結」一小筆金額確認卡是真的),金額通常是 $0 到 $1 USD,它不是真的扣款。這筆凍結會由你的銀行釋放,多數情況幾天內就還你,依銀行不同可能要等到 1~14 個工作天,不是當下立刻消失。看到那筆 $1 不用緊張,它會回來。
填的東西就那幾樣:
- 信用卡號碼
- 到期日期
- 安全碼(CVV,Card Verification Value,就是卡背面那組 3 位數字)
- 帳單地址
💡 提示:如果你對綁實體卡有顧慮,可以用虛擬信用卡(很多銀行的 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-dev、myapp-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 吧:
- 在 GCP Console 頂端,點擊「Select a project」下拉選單
- 點擊 「NEW PROJECT」
- 填寫資訊:
- Project name:
my-first-gcp-project - Project ID: (系統會自動產生,你也可以自訂)
- Organization: (如果沒有就留空)
- Project name:
- 點擊 「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 Engine | roles/compute.instanceAdmin.v1 | 管理 VM 實例 |
| Cloud Storage | roles/storage.objectViewer | 查看 Storage 物件 |
| BigQuery | roles/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 會自動分析使用情況,主動建議你移除用不到的權限:
- 前往 GCP Console → IAM & Admin → IAM
- 查看「Recommendations」標籤
- 檢視並套用建議
範例建議:
“alice@gmail.com 在過去 90 天未使用 BigQuery Admin 權限,建議降級為 BigQuery Viewer”
實戰練習:授予他人查看權限
假設你想讓朋友看你的 Project,但不能改動:
- 前往 IAM & Admin → IAM
- 點擊 「ADD」
- 填寫:
- New principals:
friend@gmail.com - Select a role:
Viewer
- New principals:
- 點擊 「SAVE」
完成!你的朋友現在可以查看專案內容,但無法做任何修改。
⚠️ 練習後記得移除權限:
- 在 IAM 頁面找到
friend@gmail.com - 點擊右側的 ✏️ (編輯)
- 點擊 🗑️ (刪除) 移除該權限
啟用 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
步驟:
- 在 GCP Console 右上角,點擊 「Activate Cloud Shell」 圖示(看起來像
>_) - 等待幾秒鐘,終端視窗會從底部彈出
- 看到提示字元
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 的編輯器:
開啟編輯器:
- 點擊右上角的 「Open Editor」 圖示(鉛筆形狀)
- 或執行指令:
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
然後:
- 點擊 Cloud Shell 上方的 「Web Preview」 圖示
- 選擇 「Preview on port 8080」
- 新分頁會開啟,顯示你的網頁!
💡 用途:
- 測試前端網頁
- 預覽 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。