Aurora DSQL 的身分驗證和授權
Aurora DSQL 使用 IAM 角色和政策進行叢集授權。您可將 IAM 角色與 PostgreSQL 資料庫角色
使用 IAM 管理叢集
管理叢集時請使用 IAM 進行身分驗證和授權:
- IAM 身分驗證
- 
                    若要在管理 Aurora DSQL 叢集時驗證 IAM 身分,就一定要使用 IAM。您可以使用 AWS Management Console、AWS CLI 或 AWSSDK 提供身分驗證。 
- IAM 授權
- 
                    若要管理 Aurora DSQL 叢集,請使用 Aurora DSQL 的 IAM 動作授予授權。例如若要描述叢集,請確保您的 IAM 身分具有許可權限可以採取 IAM 動作 dsql:GetCluster,如下列政策動作範例所示。{ "Effect": "Allow", "Action": "dsql:GetCluster", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/my-cluster" }如需更多詳細資訊,請參閱 使用 IAM 政策動作管理叢集。 
使用 IAM 連線至叢集
若要連線至叢集,請使用 IAM 進行身分驗證和授權:
- IAM 身分驗證
- 
                    使用具有授權的 IAM 身分產生臨時身分驗證記號以連線至叢集。如需詳細資訊,請參閱 在 Amazon Aurora DSQL 產生身分驗證記號。 
- IAM 授權
- 
                    將下列 IAM 政策動作授予至您用來建立連線至叢集端點的 IAM 身分: - 
                            如果您使用的是 admin角色,請使用dsql:DbConnectAdmin。Aurora DSQL 會為您建立和管理此角色。下列 IAM 政策動作範例允許admin連線至my-cluster。{ "Effect": "Allow", "Action": "dsql:DbConnectAdmin", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/my-cluster" }
- 
                            如果您使用的是自訂資料庫角色,請使用 dsql:DbConnect。您可在資料庫使用 SQL 命令來建立和管理此角色。下列 IAM 政策動作範例允許自訂資料庫角色連線至my-cluster長達一小時。{ "Effect": "Allow", "Action": "dsql:DbConnect", "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/my-cluster" }
 您建立連線後,角色就獲得授權可連線最長一小時。 
- 
                            
使用 PostgreSQL 資料庫角色和 IAM 角色與資料庫互動
PostgreSQL 使用角色概念來管理資料庫存取許可權限。視角色的設定方式而定,可將角色視為資料庫使用者或資料庫使用者群組。您可使用 SQL 命令建立 PostgreSQL 角色。若要管理資料庫層級授權,請將 PostgreSQL 許可權限授予 PostgreSQL 資料庫角色。
Aurora DSQL 支援兩種類型的資料庫角色:admin 角色和自訂角色。Aurora DSQL 會自動在 Aurora DSQL 叢集中為您建立預先定義的 admin 角色。您無法修改 admin 角色。您以 admin 身分連線至資料庫時,可以發出 SQL 來建立新的資料庫層級角色,以與您的 IAM 角色建立關聯。若要讓 IAM 角色連線至您的資料庫,請將您的自訂資料庫角色與 IAM 角色建立關聯。
- 身分驗證
- 
                    使用 admin角色連線至您的叢集。連線資料庫後,請使用AWS IAM GRANT命令將自訂資料庫角色與有權連線叢集的 IAM 身分建立關聯,如下列範例所示。AWS IAM GRANTcustom-db-roleTO 'arn:aws:iam::account-id:role/iam-role-name';如需詳細資訊,請參閱 授權資料庫角色連線至您的叢集。 
- 授權
- 
                    使用 admin角色連線至您的叢集。執行 SQL 命令來設定自訂資料庫角色並授予許可權限。如需詳細資訊,請參閱 PostgreSQL 文件中的 PostgreSQL 資料庫角色和 PostgreSQL 權限 。 
以 Aurora DSQL 使用 IAM 政策動作
您所能使用的 IAM 政策動作,取決於您用來連線至叢集的角色:可能是 admin 或自訂資料庫角色。政策也取決於此角色所需的 IAM 動作。
使用 IAM 政策動作連線至叢集
您使用 admin 預設資料庫角色連線至叢集時,請使用有權執行下列 IAM 政策動作的 IAM 身分。
"dsql:DbConnectAdmin"
您使用自訂資料庫角色連線至叢集時,請先將 IAM 角色與資料庫角色建立關聯。您用來連線至叢集的 IAM 身分,必須有權執行下列 IAM 政策動作。
"dsql:DbConnect"
若要進一步瞭解自訂資料庫角色,請參閱 使用資料庫角色和 IAM 身分驗證。
使用 IAM 政策動作管理叢集
管理 Aurora DSQL 叢集時,請僅為角色需要執行的動作指定政策動作。例如若您的角色只需取得叢集資訊,您可以限制角色許可權限為僅限 GetCluster 和 ListClusters 許可權限,如下列範例政策所示
下列範例政策顯示所有可用於管理叢集的 IAM 政策動作。
使用 IAM 和 PostgreSQL 撤銷授權
您可以撤銷 IAM 角色存取資料庫層級角色的許可權限:
- 撤銷連線至叢集的管理員授權
- 
                    若要撤銷以 admin角色連線至叢集的授權,請撤銷 IAM 身分對dsql:DbConnectAdmin的存取權限。您可編輯 IAM 政策,或是讓身分與政策分離。從 IAM 身分撤銷連線授權後,Aurora DSQL 會拒絕該 IAM 身分嘗試的所有新連線。任何使用該 IAM 身分的作用中連線,在連線期間可能會保持授權狀態。如需有關連線期間的詳細資訊,請參閱配額與限制。 
- 撤銷自訂角色連線叢集的授權
- 
                    若要撤銷 admin以外存取資料庫角色的權限,請撤銷 IAM 身分對dsql:DbConnect的存取權限。您可編輯 IAM 政策,或是讓身分與政策分離。您也可以使用資料庫的命令 AWS IAM REVOKE,以移除資料庫角色與 IAM 之間的關聯。若要進一步瞭解如何從資料庫角色撤銷存取權限,請參閱 從 IAM 角色撤銷資料庫授權。
您無法管理預先定義 admin 資料庫角色的許可權限。若要瞭解如何管理自訂資料庫角色的許可權限,請參閱 PostgreSQL 權限