iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
IT管理

GCP 的 terraform 之旅系列 第 21

day21 Terraform GCP cloud sql

  • 分享至 

  • xImage
  •  

簡介

今天來跟大家介紹 GCP terraform 如何創建 cloud sql

正文

根據網路上的文章可以得到基本概念

如何將 MySQL 部署在 Google Cloud

根據 google 文件可以查到基本用法

Cloud SQL for PostgreSQL features  |  Google Cloud

而在 terraform 的文件可以查到能使用的參數

Terraform Registry

此外我額外引用了 google_sql_user 元件來創建 IAM 登入用戶

Terraform Registry

最後有一個 bug 是 sql instance 完成後不能馬上 access 到 sql_user

所以我加上了延遲一分鐘的設置

resource "time_sleep" "wait_seconds" {
  depends_on = [google_sql_database_instance.instance]

  create_duration = "60s"
}

cloud sql IAM login 補充

每創建一個新的 IAM 用戶需要在資料庫設置對應權限(可自行撰寫,以下為範例)

設置

  • 給予 IAM 用戶 userId 所有操作 public 下 table 的權限 + 可以使用獲取 table 的 sequence (一些 rule 和 index)

    GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "userId";
    GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO "userId";
    ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT USAGE, SELECT ON SEQUENCES TO "userId";
    

解除

  • 沒有解除權限前, 不可以刪除 google_sql_user

    REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM "userId";
    REVOKE ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public FROM "userId";
    ALTER DEFAULT PRIVILEGES FOR ROLE postgres IN SCHEMA public REVOKE ALL PRIVILEGES ON SEQUENCES FROM "userId";
    

實測

clone 後進入專案該資料夾

code

創建用 make start

釋放資源用 make destroy


上一篇
day20 Terraform GCP cloud build deploy cloud run
下一篇
day22 Terraform GCP cloud run
系列文
GCP 的 terraform 之旅31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言