本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
IAM 資料庫身分驗證
您可以使用 AWS Identity and Access Management (IAM) 資料庫身分驗證來驗證資料庫叢集。IAM 資料庫身分驗證可搭配 Aurora MySQL 和 Aurora PostgreSQL 運作。透過此身分驗證方法,您連線至資料庫叢集時不需要使用密碼。而是改用身分驗證字符。
身分驗證字符是 Amazon Aurora 依請求而產生的唯一字元字串。身分驗證字符是使用 AWS Signature 第 4 版產生。每個字符的存留期為 15 分鐘。您不需要將使用者登入資料存放在資料庫,因為身分驗證是利用 IAM 在外部管理。您仍可使用標準資料庫身分驗證。字符僅用於身分驗證,並且在建立後不會影響工作階段。
IAM 資料庫身分驗證提供下列優點:
-
使用 Secure Socket Layer (SSL) 或 Transport Layer Security (TLS) 來加密往返資料庫的網路流量。如需使用 SSL/TLS 搭配 Amazon Aurora 的詳細資訊,請參閱 使用 SSL/TLS 加密與資料庫叢集的連線。
-
您可以使用 IAM 來集中管理資料庫資源的存取,而不需要在每個資料庫叢集上個別地管理存取。
-
對於 Amazon EC2 上執行的應用程式,您可以使用 EC2 執行個體專用的設定檔登入資料 (而非密碼) 來存取資料庫,如此安全性更高。
通常,當應用程式每秒建立的連線少於 200 個,且您不希望直接以應用程式程式碼管理使用者名稱和密碼時,請考慮使用 IAM 資料庫身分驗證。
Amazon Web Services (AWS) JDBC 驅動程式支援 IAM 資料庫身分驗證。如需詳細資訊,請參閱 Amazon Web Services (AWS) JDBC Driver GitHub 儲存庫
Amazon Web Services (AWS) Python Driver 支援 IAM 資料庫身分驗證。如需詳細資訊,請參閱 Amazon Web Services (AWS) Python Driver GitHub 儲存庫
瀏覽下列主題,了解設定資料庫身分驗證 IAM 的程序:
區域和版本可用性
功能可用性和支援會因每個 Aurora 資料庫引擎的特定版本以及 AWS 區域而有所不同。如需 Aurora 和 IAM 資料庫身分驗證的版本和區域可用性的詳細資訊,請參閱 支援的區域和 Aurora 資料庫引擎進行IAM資料庫。
對於 Aurora MySQL,所有支援的資料庫執行個體類別都支援 IAM 資料庫身分驗證,但 db.t2.small 和 db.t3.small 除外。如需有關支援的資料庫執行個體類別的資訊,請參閱 資料庫執行個體類別的支援資料庫引擎。
CLI 和開發套件支援
IAM 資料庫身分驗證適用於 AWS CLI和下列語言特定 AWS SDKs:
IAM 資料庫身分驗證的限制
使用 IAM 資料庫身分驗證,會套用以下限制:
-
IAM 資料庫身分驗證會調節每秒 200 個連線的連線。
使用相同身分驗證字符的連線不會受到調節。我們建議您盡可能重複使用身分驗證字符。
-
目前,IAM 資料庫驗證不支援所有全域條件內容金鑰。
如需有關全域條件內容索引鍵的詳細資訊,請參閱《IAM 使用者指南》中的 AWS 全域條件內容索引鍵。
-
對於 PostgreSQL,如果 IAM 角色 (
rds_iam
) 新增至使用者 (包括 RDS 主要使用者),則 IAM 身分驗證優先於密碼身分驗證,因此使用者必須以 IAM 使用者身分登入。 -
對於 Aurora PostgreSQL,您無法使用 IAM 身分驗證來建立複寫連線。
-
您無法使用自訂 Route 53 DNS 記錄,替代資料庫叢集端點來產生身分驗證字符。
-
CloudWatch 和 CloudTrail 不會記錄 IAM 身分驗證。這些服務不會追蹤授權 IAM 角色啟用資料庫連線的
generate-db-auth-token
API 呼叫。 -
IAM 資料庫授權需要資料庫叢集上的運算資源。您的資料庫必須擁有 300 到 1000 MiB 的額外記憶體,才能提供可靠的連線能力。若要查看工作負載所需的記憶體,請在啟用 IAM 資料庫身分驗證之前和之後,比較增強型監控處理清單中 RDS 程序的 RES 欄。請參閱 在RDS主控台中檢視 OS 測量結果。
如果您使用的是爆量類別執行個體,請減少緩衝區和快取等其他參數所使用的記憶體數量,以避免記憶體用盡。
-
對於 Aurora MySQL,您無法針對使用 IAM 身分驗證設定的資料庫使用者使用密碼型身分驗證。
適用於 IAM 資料庫身分驗證的建議
使用 IAM 資料庫身分驗證時,建議您採取以下做法:
-
當您的應用程式每秒需要少於 200 個新的 IAM 資料庫驗證連線時,請使用 IAM 資料庫驗證。
搭配 Amazon Aurora 使用的資料庫引擎完全不限制每秒的身分驗證嘗試次數。不過,當您使用 IAM 資料庫身分驗證時,應用程式必須產生身分驗證字符。然後,應用程式會使用該字符來連接至資料庫叢集。如果您超過每秒新連線數上限,IAM 資料庫身分驗證的額外負荷會導致連線調節。
請考慮在應用程式中使用連線集區,以緩解持續建立連線的問題。如此可以減少 IAM 資料庫身分驗證的額外負荷,並允許您的應用程式重複使用現有連線。或者,請考慮針對這些使用案例採用 RDS Proxy。RDS Proxy需額外收費。請參閱 RDS Proxy 定價
。 IAM 資料庫身分驗證字符的大小取決於許多因素,包括 IAM 標籤的數量、IAM 服務政策、ARN 長度,以及其他 IAM 和資料庫屬性。此字符的最小大小一般約為 1 KB,但可以更大。因為此字符用作連線字串中的密碼,以使用 IAM 身分驗證連線至資料庫,所以您應該確保資料庫驅動程式 (例如 ODBC) 和/或任何工具不會限制或由於其大小而以其他方式截斷此字符。截斷的字符將導致資料庫和 IAM 執行的身分驗證失敗。
-
如果您是在建立 IAM 資料庫身分驗證字符時使用臨時憑證,則在使用 IAM 資料庫身分驗證字符發出連線請求時,臨時憑證必須仍然有效。
不支援的 AWS 全域條件內容索引鍵
IAM 資料庫身分驗證不支援下列 AWS 全域條件內容金鑰子集。
-
aws:Referer
-
aws:SourceIp
-
aws:SourceVpc
-
aws:SourceVpce
-
aws:UserAgent
-
aws:VpcSourceIp
如需詳細資訊,請參閱《IAM 使用者指南》中的AWS 全域條件內容金鑰。