文章目標:示範如何設定 GCP 服務帳號 Service Account,以便在 Terraform 中進行身份驗證。
文章同步分享到
blog – https://devops-with-alex.com/day-17-terraform-gcp-setup-service-account/
ithome – https://ithelp.ithome.com.tw/articles/10332886
Medium – https://medium.com/p/dd2094227a10
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 資源,記得也需要非常謹慎地保護和管理。:
“type”
:這是金鑰的類型,指明這是一個服務帳戶金鑰。“project_id”
:這是與這個金鑰相關聯的 GCP 項目的項目 ID,即 “terraform101–384507”。“private_key_id”
:這是金鑰的私有金鑰 ID,用於識別這個特定金鑰。“private_key”
:這是實際的私有金鑰,是一個長字符串,通常以 “ — — -BEGIN PRIVATE KEY — — -” 和 “ — — -END PRIVATE KEY — — -” 包圍。這個金鑰用於對 GCP 資源進行驗證和授權,所以非常敏感,需要妥善保護。“client_email”
:這是服務帳戶的客戶電子郵件地址,通常以 “tf101–776@terraform101–384507.iam.gserviceaccount.com” 的形式存在。“client_id”
:這是服務帳戶的客戶 ID,用於識別服務帳戶。“auth_uri”
:這是用於進行身份驗證的 URI,通常用於 OAuth2 驗證流程,位於 “https://accounts.google.com/o/oauth2/auth“。“token_uri”
:這是用於獲取訪問令牌的 URI,位於 “https://oauth2.googleapis.com/token“。“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資源的關鍵。
6. 相關連結
- Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code — https://github.com/qwedsazxc78/Terraform-from-zero-to-hero-10-Lab-GCP-Infrastucture-as-Code
- Terraform-project-best-practice — https://github.com/qwedsazxc78/terraform-project-best-practice
- 歡迎訂閱我的udemy課程:Terraform 從零開始 — 10+實戰Lab打造GCP雲端自動化架構課程