Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 (Service Account)
文章目標:示範如何設定 GCP 服務帳號,以便在 Terraform 中進行身份驗證。
文章目標:示範如何設定 GCP 服務帳號,以便在 Terraform 中進行身份驗證。
Day 16 — Terraform/GCP基礎 — GCP服務帳號 (Service Account) 與使用者 (User) 的差異
Day 19 — Terraform/GCP基礎 — 建議的 Terraform 開發最佳實踐 best practices
Day 22 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 無伺服器服務Cloud Function
Day 23 — Terraform/GCP實戰:使用 Terraform 創建 GCP 無伺服器服務Cloud Function
Day 24 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 無伺服器服務 (Cloud Run)
Day 25 — Terraform/GCP實戰:使用 Terraform 創建 GCP 無伺服器服務 (Cloud Run)
Day 26 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 運算服務 Kubernetes GKE
Day 27 — Terraform/GCP實戰 :使用 Terraform 創建 GCP 運算服務 Kubernetes GKE
Day 28 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 資料庫服務 Cloud Sql (PostgreSQL)
Day 29 — Terraform/GCP實戰:使用 Terraform 創建 GCP 資料庫服務 Cloud Sql (PostgreSQL)
Day 30 — Terraform/GCP實戰:使用 GCP Console 創建 GCP 資料庫服務 Cloud MemoryStore — Redis
Day 31 — Terraform/GCP實戰:使用 Terraform 創建 GCP 資料庫服務Cloud MemoryStore — Redis
1. 設定服務帳號(service account)
設定步驟
登入GCP控制台(https://console.cloud.google.com)。
選擇您要創建服務帳號的GCP專案。
在左側導航欄中,選擇“IAM與管理”,然後選擇“服務帳號”。
在服務帳號頁面上,點擊“創建服務帳號”。
在“新服務帳號”對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊“創建”。
在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。
點擊“完成”即可創建服務帳號。
接下來,您需要下載服務帳號的私鑰檔案。點擊新建的服務帳號,然後點擊“加密金鑰”選項卡。在該頁面上,您可以選擇下載私鑰檔案,並保存到您的本地電腦。
將私鑰檔案與您的應用程序一起使用,以便驗證該應用程序對GCP資源的訪問權限。
2. 實際操作
任務目標:
使用GCP的Cloud Console
創建服務帳號 Service Account, SA
下載對應的金鑰 key (json)
查看金鑰 key裡面的內容
創建服務帳號 Service Account, SA
登入GCP控制台(https://console.cloud.google.com)後,在左側導航欄中,選擇”IAM與管理”與身份與存取權管理,然後選擇”服務帳號”。
在服務帳號頁面上,點擊“創建服務帳號”。
在“新服務帳號”對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊“創建”。
在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。
點擊“完成”即可創建服務帳號。
檢視服務帳號,創建並下載對應的金鑰 key (json)
確認服務帳號詳細資料無誤。
服務帳號電子郵件,是gcp用來管理對應服務帳號擁有權限的資料。
點選上方的金鑰
建立新的金鑰,並選擇JSON的類型來產生
產生後會自動下載
查看金鑰 key裡面的內容
打開Google Cloud Platform (GCP) 服務帳戶金鑰 json 檔案的內容,並確認相關資訊。這個金鑰可用於身份驗證和授權以訪問 GCP 資源,記得也需要非常謹慎地保護和管理。:
1. “type”
:這是金鑰的類型,指明這是一個服務帳戶金鑰。
2. “project_id”
:這是與這個金鑰相關聯的 GCP 項目的項目 ID,即 “terraform101–384507”。
3. “private_key_id”
:這是金鑰的私有金鑰 ID,用於識別這個特定金鑰。
4. “private_key”
:這是實際的私有金鑰,是一個長字符串,通常以 “ — — -BEGIN PRIVATE KEY — — -” 和 “ — — -END PRIVATE KEY — — -” 包圍。這個金鑰用於對 GCP 資源進行驗證和授權,所以非常敏感,需要妥善保護。
5. “client_email”
:這是服務帳戶的客戶電子郵件地址,通常以 “tf101–776@terraform101–384507.iam.gserviceaccount.com” 的形式存在。
6. “client_id”
:這是服務帳戶的客戶 ID,用於識別服務帳戶。
7. “auth_uri”
:這是用於進行身份驗證的 URI,通常用於 OAuth2 驗證流程,位於 “https://accounts.google.com/o/oauth2/auth"。
8. “token_uri”
:這是用於獲取訪問令牌的 URI,位於 “https://oauth2.googleapis.com/token"。
9. “auth_provider_x509_cert_url”
:這是身份驗證提供者的 X.509 證書的 URL,通常用於確保與身份驗證相關的安全性,位於 “https://www.googleapis.com/oauth2/v1/certs"。
10. “client_x509_cert_url”
:這是服務帳戶的 X.509 證書的 URL,用於公開金鑰驗證,位於 “https://www.googleapis.com/robot/v1/metadata/x509/tf101-776%40terraform101-384507.iam.gserviceaccount.com"。
5. 總結 Summary
設定服務帳號: 這部分詳細說明了如何在Google Cloud Platform (GCP)上建立服務帳號,以及如何管理相關的權限。同時,我們也了解到如何生成專屬於服務帳號的金鑰,這個金鑰將被用於後續的身份驗證。
服務帳號金鑰內容: 我們深入瞭解了服務帳號金鑰的內容。其中包括了金鑰的類型、關聯的GCP專案ID、私有金鑰ID等重要參數。此外,我們也注意到金鑰內容中的敏感信息,特別是私有金鑰,這是用於確保訪問GCP資源的關鍵。