本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用資料庫角色和 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 角色連線至叢集。
-
使用 SQL 公用程式連線至 Aurora DSQL 叢集。
使用
admin資料庫角色搭配 IAM 身分,且該身分已獲授權讓 IAM 動作dsql:DbConnectAdmin連線至您的叢集。 -
建立新的資料庫角色,請務必指定
WITH LOGIN選項。CREATE ROLE example WITH LOGIN; -
將資料庫角色與 IAM 角色 ARN 建立關聯。
AWS IAM GRANT example TO 'arn:aws:iam::012345678912:role/example'; -
將資料庫層級許可權限授予資料庫角色
下列範例使用
GRANT命令在資料庫中提供授權。GRANT USAGE ON SCHEMA myschema TO example; GRANT SELECT, INSERT, UPDATE ON ALL TABLES IN SCHEMA myschema TO example;
如需更多詳細資訊,請參閱 PostgreSQL 文件中的 PostgreSQLGRANT
檢視 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 撤銷授權。