本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
您可以在建立代理之後變更與該代理相關聯的特定設定。您可以修改代理本身、它的關聯目標群組,或兩者都修改。每個代理都有一個關聯的目標群組。
重要
Client authentication type (用戶端身分驗證類型) 和 IAM authentication (IAM 身分驗證) 欄位中的值適用於與此代理相關聯的所有 Secrets Manager 機密。若要為每個秘密指定不同的值,請改用 AWS CLI 或 API 來修改您的代理。
若要修改代理的設定
-
登入 AWS Management Console ,並在 https://console.aws.amazon.com/rds/
:// 開啟 Amazon RDS 主控台。 -
在導覽窗格中,選擇 Proxies (代理)。
-
在代理清單中,選擇您要修改其設定的代理伺服器,或移至其詳細資訊頁面。
-
在 Actions (動作) 中,選擇 Modify (修改)。
-
輸入或選擇要修改的屬性。您可以修改下列選項:
-
Proxy identifier (Proxy 識別碼) – 輸入新的識別碼,以便將 Proxy 重新命名。
-
Idle client connection timeout (閒置用戶端連線逾時) – 輸入閒置用戶端連線逾時的期間。
-
IAM role (IAM 角色) – 變更從 Secrets Manager 中擷取秘密所使用的 IAM 角色。
-
Secrets Manager secrets (Secrets Manager 秘密) – 新增或移除 Secrets Manager 秘密。這些秘密對應於資料庫使用者名稱和密碼。
-
Client authentication type (用戶端身分驗證類型) – (僅限 PostgreSQL) 變更用戶端連線至代理時的身分驗證類型。
-
IAM authentication (IAM 身分驗證) – 要求或不允許連線至 Proxy 時進行 IAM 身分驗證。
-
Require Transport Layer Security – 開啟或關閉 Transport Layer Security (TLS) 的需求。
-
VPC security group (VPC 安全群組) – 新增或移除 Proxy 要使用的 VPC 安全群組。
-
Enable enhanced logging (啟用增強型日誌) – 啟用或停用增強型日誌。
-
-
選擇 Modify (修改)。
如果您找不到您要變更的列出設定,請使用下列程序更新代理的目標群組。與代理相關聯的目標群組可控制與實體資料庫連線相關的設定。每個代理都有一個名為 default
的關聯目標群組,這些群組將與代理一起自動建立。您無法重新命名預設目標群組。
您只能從代理詳細資訊頁面修改目標群組,而不能從 代理頁面上的清單修改。
若要修改代理目標群組的設定
-
在 Proxies (代理) 頁面上,前往代理的詳細資訊頁面。
-
在目標群組中選擇
default
連結。目前,所有的代理都有一個名為default
的目標群組。 -
在預設目標群組的詳細資訊頁面上,選擇 Modify (修改)。
-
選擇您可修改之屬性的新設定:
-
資料庫 – 選擇不同的 RDS 資料庫執行個體或叢集。
-
Connection pool maximum connections (連線集區最大連線數) – 調整 Proxy 可以使用的最大可用連線數的百分比。
-
Session pinning filters (工作階段鎖定篩選條件) – (選用) 選擇工作階段鎖定篩選條件。這樣做會規避用戶端連線之間多工處理資料庫連線的預設安全措施。目前,PostgreSQL 不支援設定。唯一的選擇是
EXCLUDE_VARIABLE_SETS
。啟用此設定可能會導致一個連線的工作階段變數影響其他連線。如果您的查詢取決於目前交易之外設定的工作階段變數值,這樣做可能會造成錯誤或正確性問題。請先確認應用程式可安全地在用戶端連線之間共用資料庫連線,再考慮使用此選項。
以下模式可視為安全:
-
SET
陳述式,其中有效的工作階段變數值沒有變更,也就是工作階段變數沒有變更。 -
您會在同一交易中變更工作階段變數值和執行陳述式。
如需詳細資訊,請參閱避免鎖定 RDS Proxy。
-
-
Connection borrow timeout (連線借用逾時) – 調整連線借用逾時間隔。在已為代理使用連線數上限時,則會套用此設定。此設定會決定代理在傳回逾時錯誤之前等待連線變成可用的時間。
-
初始化查詢。(選用) 新增初始化查詢,或修改目前的查詢。開啟每個新資料庫連線時,您可為要執行的代理指定一或多個 SQL 陳述式。設定通常與
SET
陳述式搭配使用,以確保每個連線都有相同的設定。請確定您新增的查詢有效。若要在單一SET
陳述式中包含多個變數,請使用逗號分隔符號。例如:SET
variable1
=value1
,variable2
=value2
對於多個陳述式,請使用分號作為分隔符號。
您無法變更某些屬性,例如目標群組識別符和資料庫引擎。
-
-
選擇 Modify target group (修改目標群組)。
若要使用 修改代理 AWS CLI,請使用 modify-db-proxy、 modify-db-proxy-target-group、deregister-db-proxy-targets 和 register-db-proxy-targets 命令。
使用 modify-db-proxy
命令,您可以變更屬性,如下所示:
-
代理使用的 Secrets Manager 秘密組。
-
是否需要 TLS。
-
閒置用戶端逾時。
-
是否記錄來自 SQL 陳述式的額外資訊以供偵錯。
-
用於擷取 Secrets Manager 秘密的 IAM 角色。
-
代理使用的安全群組。
下列範例顯示如何將現有的代理重新命名。
aws rds modify-db-proxy --db-proxy-name
the-proxy
--new-db-proxy-namethe_new_name
若要修改連線相關設定或重新命名目標群組,請使用 modify-db-proxy-target-group
命令。目前,所有的代理都有一個名為 default
的目標群組。使用此目標群組時,您可以指定代理的名稱default
,以及目標群組的名稱。您無法重新命名預設目標群組。
下列範例顯示如何先檢查代理的 MaxIdleConnectionsPercent
設定,然後使用目標群組將其變更。
aws rds describe-db-proxy-target-groups --db-proxy-name
the-proxy
{ "TargetGroups": [ { "Status": "available", "UpdatedDate": "2019-11-30T16:49:30.342Z", "ConnectionPoolConfig": { "MaxIdleConnectionsPercent": 50, "ConnectionBorrowTimeout": 120, "MaxConnectionsPercent": 100, "SessionPinningFilters": [] }, "TargetGroupName": "default", "CreatedDate": "2019-11-30T16:49:27.940Z", "DBProxyName": "the-proxy", "IsDefault": true } ] } aws rds modify-db-proxy-target-group --db-proxy-namethe-proxy
--target-group-name default --connection-pool-config ' { "MaxIdleConnectionsPercent": 75 }' { "DBProxyTargetGroup": { "Status": "available", "UpdatedDate": "2019-12-02T04:09:50.420Z", "ConnectionPoolConfig": { "MaxIdleConnectionsPercent": 75, "ConnectionBorrowTimeout": 120, "MaxConnectionsPercent": 100, "SessionPinningFilters": [] }, "TargetGroupName": "default", "CreatedDate": "2019-11-30T16:49:27.940Z", "DBProxyName": "the-proxy", "IsDefault": true } }
使用 deregister-db-proxy-targets
和 register-db-proxy-targets
命令,您可以透過其目標群組變更 Proxy 與哪一個 RDS 資料庫執行個體相關聯。目前,每個代理可以連接到一個 RDS 資料庫執行個體 。目標群組會追蹤多可用區域組態中所有 RDS 資料庫執行個體的連線詳細資訊,。
下列範例將從與名為 cluster-56-2020-02-25-1399
的 Aurora MySQL 叢集關聯的代理開始。此範例顯示如何變更代理,讓它可以連線到名為 provisioned-cluster
的不同叢集。
當您使用 RDS 資料庫執行個體時,請指定 --db-instance-identifier
選項。
下列範例會修改 Aurora MySQL 代理。Aurora PostgreSQL 代理具有連接埠 5432。
aws rds describe-db-proxy-targets --db-proxy-name
the-proxy
{ "Targets": [ { "Endpoint": "instance-9814.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-9814" }, { "Endpoint": "instance-8898.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-8898" }, { "Endpoint": "instance-1018.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-1018" }, { "Type": "TRACKED_CLUSTER", "Port": 0, "RdsResourceId": "cluster-56-2020-02-25-1399" }, { "Endpoint": "instance-4330.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "instance-4330" } ] } aws rds deregister-db-proxy-targets --db-proxy-namethe-proxy
--db-cluster-identifier cluster-56-2020-02-25-1399 aws rds describe-db-proxy-targets --db-proxy-namethe-proxy
{ "Targets": [] } aws rds register-db-proxy-targets --db-proxy-namethe-proxy
--db-cluster-identifier provisioned-cluster { "DBProxyTargets": [ { "Type": "TRACKED_CLUSTER", "Port": 0, "RdsResourceId": "provisioned-cluster" }, { "Endpoint": "gkldje.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "gkldje" }, { "Endpoint": "provisioned-1.demo.us-east-1.rds.amazonaws.com", "Type": "RDS_INSTANCE", "Port": 3306, "RdsResourceId": "provisioned-1" } ] }
若要使用 RDS API 修改 Proxy,請使用 ModifyDBProxy、ModifyDBProxyTargetGroup、DeregisterDBProxyTargets 和 RegisterDBProxyTargets 操作。
使用 ModifyDBProxy
,您可以變更屬性,如下所示:
-
代理使用的 Secrets Manager 秘密組。
-
是否需要 TLS。
-
閒置用戶端逾時。
-
是否記錄來自 SQL 陳述式的額外資訊以供偵錯。
-
用於擷取 Secrets Manager 秘密的 IAM 角色。
-
代理使用的安全群組。
使用 ModifyDBProxyTargetGroup
,您可以修改與連線相關的設定。目前,所有的代理都有一個名為 default
的目標群組。使用此目標群組時,您可以指定代理的名稱default
,以及目標群組的名稱。您無法重新命名預設目標群組。
使用 DeregisterDBProxyTargets
和 RegisterDBProxyTargets
,您可以變更代理透過其目標群組與哪個 RDS 資料庫執行個體 相關聯。目前,每個 Proxy 都可以連線到一個 RDS 資料庫執行個體。目標群組會追蹤多可用區域組態中 RDS 資料庫執行個體的連線詳細資訊。