管理身分與存取權管理驗證

本頁說明如何準備 AlloyDB for PostgreSQL 執行個體,以便透過 Identity and Access Management (IAM) 進行資料庫驗證。

IAM 驗證功能可透過標準 PostgreSQL 使用者輔助資料庫驗證,每個 AlloyDB 叢集都支援這項功能。如果您在叢集上啟用 IAM 驗證,則可以使用 IAM 或 PostgreSQL 使用者角色向該叢集進行驗證。

根據預設,AlloyDB 執行個體不會啟用 IAM 驗證。如要啟用 IAM 驗證,請完成下列步驟:

如要將其他 IAM 使用者新增至 AlloyDB 叢集,請重複這些步驟。

啟用或停用 IAM 驗證

如要在執行個體上啟用 IAM 驗證,請將該執行個體上的alloydb.iam_authentication 旗標設為 on

如要在執行個體上停用 IAM 驗證,請將 alloydb.iam_authentication 設回預設值 off

如要進一步瞭解如何設定 AlloyDB 執行個體的標記,請參閱「設定執行個體的資料庫旗標」。

將執行個體的存取權授予 IAM 使用者或服務帳戶

如要為新資料庫使用者啟用 IAM 存取權,請按照下列兩步驟操作:

  1. 更新專案的 IAM 設定,授予適當的 IAM 使用者或服務帳戶 AlloyDB 資料庫存取權。

  2. 在叢集上建立新的資料庫使用者,並將使用者名稱設為 IAM 使用者或服務帳戶的電子郵件地址。

您可以重複執行步驟 2,將 IAM 帳戶存取權授予專案中的其他叢集。

更新 IAM 帳戶,使其具備適當角色

您可以授予下列 IAM 角色,讓 IAM 使用者或服務帳戶能夠向 AlloyDB 執行個體進行驗證:

  • alloydb.databaseUser:讓使用者連線至 AlloyDB 執行個體。
  • serviceusage.serviceUsageConsumer:提供使用者存取 API 的權限,以檢查權限。

如要這麼做,請按照「授予其他使用者存取權」一文中的操作說明進行。在選取要授予 IAM 主體的角色時,請選擇 alloydb.databaseUser

在叢集中新增 IAM 使用者或服務帳戶

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下要新增使用者的叢集名稱。

  3. 按一下「Users」(使用者)

  4. 按一下「Add user account」(新增使用者帳戶)

  5. 選取「Cloud IAM」

  6. 在「Principal」(主體) 欄位中,輸入 IAM 主體。

    如果是 IAM 使用者帳戶,請提供使用者帳戶的完整電子郵件地址。例如 kai@altostrat.com

    如果是 IAM 服務帳戶,請提供服務帳戶的地址,不要加上 .gserviceaccount.com 後置字元。舉例來說,如要指定服務帳戶 my-service@my-project.iam.gserviceaccount.com,請在此使用 my-service@my-project.iam 值。

  7. 按一下「新增」

gcloud

如要根據 IAM 使用者或服務帳戶建立 PostgreSQL 資料庫使用者,請使用 gcloud alloydb users create 指令

gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED

請替換下列變數:

  • USERNAME:您要新增為資料庫使用者的 IAM 使用者 ID。

    如果是 IAM 使用者帳戶,請提供使用者帳戶的完整電子郵件地址。例如 kai@altostrat.com

    如果是 IAM 服務帳戶,請提供服務帳戶的地址,不要加上 .gserviceaccount.com 後置字元。舉例來說,如要指定服務帳戶 my-service@my-project.iam.gserviceaccount.com,請在此使用 my-service@my-project.iam 值。

  • CLUSTER:要在哪個叢集內建立這個資料庫使用者帳戶的 ID。

  • REGION:叢集所在的區域 ID。 例如:us-central1

授予 IAM 使用者適當的資料庫權限

將 IAM 使用者新增至資料庫執行個體時,系統預設不會授予新使用者任何資料庫的權限。

使用者或服務帳戶連線至資料庫時,可以對已授予 PUBLIC 存取權的任何資料庫物件執行查詢。

如需其他存取權,可以使用 GRANT PostgreSQL 陳述式授予更多權限。

GRANT SELECT ON TABLE_NAME TO "USERNAME";

請替換下列變數:

  • USERNAME:使用者的電子郵件地址。地址前後須加上雙引號。

  • TABLE_NAME:您要授予使用者存取權的資料表名稱。

從叢集中移除 IAM 使用者或服務帳戶

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 按一下要移除使用者的叢集名稱。

  3. 按一下「Users」(使用者)

  4. 在要移除的使用者所在資料列,按一下「開啟這個使用者的動作」

  5. 選取「移除」

  6. 在「要移除使用者帳戶嗎?」對話方塊中,按一下「移除」

gcloud

使用gcloud alloydb users delete 指令

gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION

更改下列內容:

  • USERNAME:要從叢集移除的 IAM 使用者 ID。

    如果是 IAM 使用者帳戶,請提供使用者帳戶的完整電子郵件地址。例如 kai@altostrat.com

    如果是 IAM 服務帳戶,請提供服務帳戶的地址,不要加上 .gserviceaccount.com 後置字元。舉例來說,如要指定服務帳戶 my-service@my-project.iam.gserviceaccount.com,請在此使用 my-service@my-project.iam 值。

  • CLUSTER:要從中移除使用者的叢集 ID。

  • REGION:叢集所在的區域 ID。 例如:us-central1

後續步驟