使用資料庫角色和 IAM 身分驗證 - Amazon Aurora DSQL

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用資料庫角色和 IAM 身分驗證

Aurora DSQL 支援使用 IAM 角色和 IAM 使用者進行身分驗證。您可使用任一種方法驗證和存取 Aurora DSQL 資料庫。

IAM 角色

IAM 角色是 中的身分 AWS 帳戶 ,具有特定許可,但未與特定人員建立關聯。使用 IAM 角色提供臨時安全憑證。您可透過多種方式暫時擔任 IAM 角色:

  • 透過在 中切換角色 AWS 管理主控台

  • 透過呼叫 AWS CLI 或 AWS API 操作

  • 使用自訂 URL

您擔任角色之後,就可使用角色的臨時憑證存取 Aurora DSQL。如需使用角色方法的詳細資訊,請參閱 IAM 使用者指南中的 IAM 身分

IAM 使用者

IAM 使用者是您 中的身分 AWS 帳戶 ,具有特定許可,並與單一人員或應用程式相關聯。IAM 使用者具有長期憑證,例如可用於存取 Aurora DSQL 的密碼和存取金鑰。

注意

若要使用 IAM 身分驗證執行 SQL 命令,您可在以下範例中使用 IAM 角色 ARN 或 IAM 使用者 ARN。

授權資料庫角色連線至您的叢集

建立 IAM 角色並使用 IAM 政策動作授予連線授權:dsql:DbConnect

IAM 政策也必須授予許可權限以存取叢集資源。使用萬用字元 (*) 或遵循使用 IAM 條件索引鍵搭配 Amazon Aurora DSQL 中的指示。

授權資料庫角色在您的資料庫使用 SQL

您必須使用具有授權的 IAM 角色連線至叢集。

  1. 使用 SQL 公用程式連線至 Aurora DSQL 叢集。

    使用 admin 資料庫角色搭配 IAM 身分,且該身分已獲授權讓 IAM 動作 dsql:DbConnectAdmin 連線至您的叢集。

  2. 建立新的資料庫角色,請務必指定 WITH LOGIN 選項。

    CREATE ROLE example WITH LOGIN;
  3. 將資料庫角色與 IAM 角色 ARN 建立關聯。

    AWS IAM GRANT example TO 'arn:aws:iam::012345678912:role/example';
  4. 將資料庫層級許可權限授予資料庫角色

    下列範例使用 GRANT 命令在資料庫中提供授權。

    GRANT USAGE ON SCHEMA myschema TO example; GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA myschema TO example;

如需更多詳細資訊,請參閱 PostgreSQL 文件中的 PostgreSQLGRANTPostgreSQL 權限

檢視 IAM 至資料庫角色映射

若要檢視 IAM 角色和資料庫角色之間的映射,請查詢 sys.iam_pg_role_mappings 系統資料表。

SELECT * FROM sys.iam_pg_role_mappings;

輸出範例:

 iam_oid |                  arn                   | pg_role_oid | pg_role_name | grantor_pg_role_oid | grantor_pg_role_name
---------+----------------------------------------+-------------+--------------+---------------------+----------------------
   26398 | arn:aws:iam::012345678912:role/example |       26396 | example      |               15579 | admin
(1 row)

此資料表顯示 IAM 角色 (依其 ARN 識別) 和 PostgreSQL 資料庫角色之間的所有映射。

從 IAM 角色撤銷資料庫授權

若要撤銷資料庫授權,請使用 AWS IAM REVOKE 操作。

AWS IAM REVOKE example FROM 'arn:aws:iam::012345678912:role/example';

若要進一步瞭解撤銷授權,請參閱 使用 IAM 和 PostgreSQL 撤銷授權