blog post

Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 Service Account

文章目標:示範如何設定 GCP 服務帳號 Service Account,以便在 Terraform 中進行身份驗證。

Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 Service Account
Day 17 — Terraform/GCP基礎 — 設定 GCP 服務帳號 (Service Account)

文章同步分享到
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)

設定步驟

  1. 登入GCP控制台(https://console.cloud.google.com)。
  2. 選擇您要創建服務帳號的GCP專案。
  3. 在左側導航欄中,選擇“IAM與管理”,然後選擇“服務帳號”。
  4. 在服務帳號頁面上,點擊“創建服務帳號”。
  5. 在“新服務帳號”對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊“創建”。
  6. 在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。
  7. 點擊“完成”即可創建服務帳號。
  8. 接下來,您需要下載服務帳號的私鑰檔案。點擊新建的服務帳號,然後點擊“加密金鑰”選項卡。在該頁面上,您可以選擇下載私鑰檔案,並保存到您的本地電腦。
  9. 私鑰檔案與您的應用程序一起使用,以便驗證該應用程序對GCP資源的訪問權限。
設定服務帳號(service account) — IAM與管理

2. 實際操作

任務目標:

  1. 使用GCP的Cloud Console
  2. 創建服務帳號 Service Account, SA
  3. 下載對應的金鑰 key (json)
  4. 查看金鑰 key裡面的內容

創建服務帳號 Service Account, SA

登入GCP控制台(https://console.cloud.google.com)後,在左側導航欄中,選擇”IAM與管理”與身份與存取權管理,然後選擇”服務帳號”。

GCP IAM與管理
GCP IAM與管理 身份與存取權管理
  • 在服務帳號頁面上,點擊“創建服務帳號”。
  • 在“新服務帳號”對話框中,輸入服務帳號的名稱、ID和描述,請使用 terraform101 作為名稱並點擊“創建”。
  • 在下一個頁面上,選擇要授予該服務帳號的角色。您可以從預設角色中選擇,或自定義新角色,這邊使用擁有者 owner的角色。
  • 點擊“完成”即可創建服務帳號。
GCP Service account 服務帳號
GCP Service account 服務帳號權限
GCP Service account 服務帳號 使用者留白

檢視服務帳號,創建並下載對應的金鑰 key (json)

  • 確認服務帳號詳細資料無誤。
  • 服務帳號電子郵件,是gcp用來管理對應服務帳號擁有權限的資料。
GCP Service account 服務帳號狀態
GCP Service account 服務帳號 email作為認證
  • 點選上方的金鑰
  • 建立新的金鑰,並選擇JSON的類型來產生
  • 產生後會自動下載
GCP Service account 金鑰 key
GCP Service account 建立金鑰
GCP Service account 建立金鑰形式 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

  1. 設定服務帳號: 這部分詳細說明了如何在Google Cloud Platform (GCP)上建立服務帳號,以及如何管理相關的權限。同時,我們也了解到如何生成專屬於服務帳號的金鑰,這個金鑰將被用於後續的身份驗證。
  2. 服務帳號金鑰內容: 我們深入瞭解了服務帳號金鑰的內容。其中包括了金鑰的類型、關聯的GCP專案ID、私有金鑰ID等重要參數。此外,我們也注意到金鑰內容中的敏感信息,特別是私有金鑰,這是用於確保訪問GCP資源的關鍵。

6. 相關連結

  1. 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
  2. Terraform-project-best-practice — https://github.com/qwedsazxc78/terraform-project-best-practice
  3. 歡迎訂閱我的udemy課程:Terraform 從零開始 — 10+實戰Lab打造GCP雲端自動化架構課程

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *