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 CLIAWS SDK 提供身分驗證。

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 身分:

  • dsql:DbConnectAdmin 如果您使用的是 admin角色,請使用 。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 權限 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 政策或從身分分離政策。

您也可以使用資料庫中的 命令,移除資料庫角色與 IAM 之間的關聯AWS IAM REVOKE。若要進一步了解如何從資料庫角色撤銷存取權,請參閱 從 IAM 角色撤銷資料庫授權

您無法管理預先定義admin資料庫角色的許可。若要了解如何管理自訂資料庫角色的許可,請參閱 PostgreSQL 權限。在 Aurora DSQL 成功遞交修改交易之後,權限的修改會在下一個交易上生效。