Aurora DSQL 的身分驗證和授權 - Amazon Aurora DSQL

Aurora DSQL 的身分驗證和授權

Aurora DSQL 使用 IAM 角色和政策進行叢集授權。您可將 IAM 角色與 PostgreSQL 資料庫角色建立關聯以進行資料庫授權。這種方法結合了 IAM 的優點PostgreSQL 權限。Aurora DSQL 使用這些功能為您的叢集、資料庫和資料提供完整的授權和存取政策。

使用 IAM 管理叢集

管理叢集時請使用 IAM 進行身分驗證和授權:

IAM 身分驗證

若要在管理 Aurora DSQL 叢集時驗證 IAM 身分,就一定要使用 IAM。您可以使用 AWS Management ConsoleAWS CLIAWSSDK 提供身分驗證。

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 GRANT custom-db-role TO '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 叢集時,請僅為角色需要執行的動作指定政策動作。例如若您的角色只需取得叢集資訊,您可以限制角色許可權限為僅限 GetClusterListClusters 許可權限,如下列範例政策所示

JSON
{ "Version":"2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "dsql:GetCluster", "dsql:ListClusters" ], "Resource": "arn:aws:dsql:us-east-1:123456789012:cluster/my-cluster" } ] }

下列範例政策顯示所有可用於管理叢集的 IAM 政策動作。

JSON
{ "Version":"2012-10-17", "Statement" : [ { "Effect" : "Allow", "Action" : [ "dsql:CreateCluster", "dsql:GetCluster", "dsql:UpdateCluster", "dsql:DeleteCluster", "dsql:ListClusters", "dsql:TagResource", "dsql:ListTagsForResource", "dsql:UntagResource" ], "Resource" : "*" } ] }

使用 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 權限。Aurora DSQL 成功認可修改交易後,權限修改會在下一個交易生效。