Lambda 函數旋轉策略 - AWS Secrets Manager

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Lambda 函數旋轉策略

對於由 Lambda 函數旋轉資料庫機密,秘密管理員提供兩種輪換策略。

輪換策略:單一使用者

此策略會在一個秘密中更新一個使用者的憑證。對於 Amazon RDS Db2 執行個體,因為使用者無法變更自己的密碼,因此必須使用單獨的密碼來提供管理員登入資料。這是最簡單的輪換策略,適用於大多數使用案例。特別是,建議您將此策略用於一次性 (臨機操作) 或互動式使用者的憑證。

秘密輪換時,不會中斷開啟的資料庫連線。輪換正在進行時,資料庫中的密碼變更與更新秘密之間,有一小段時間落差。在此期間,資料庫有可能拒絕使用輪換後憑證的呼叫。您可以透過適當的重試策略降低這種風險。輪換之後,新的連線會使用新的憑證。

輪換策略:交替使用者

此策略會在一個秘密中更新兩個使用者的憑證。您可以建立第一個使用者,然後在第一次輪換期間,輪換函數會複製該使用者,以建立第二個使用者。每當秘密輪換時,輪換函數都會交替要更新的使用者密碼。由於大多數使用者沒有複製自身的許可,所以您必須提供其他秘密中 superuser 的憑證。在資料庫中複製的使用者沒有與原始使用者相同的許可時,建議使用單一使用者輪換策略,以及將其用於一次性 (臨機操作) 或互動式使用者的憑證。

此策略適合具有許可模型的資料庫,其中一個角色擁有資料庫資料表,而第二個角色具有存取資料庫資料表的許可。這也適用於需要高可用性的應用程式。如果應用程式在輪換期間擷取秘密,應用程式仍會取得一組有效的憑證。輪換之後,useruser_clone 憑證都有效。在這種類型的輪換期間,應用程式遭到拒絕的機率比單一使用者輪換更低。如果資料庫託管於伺服器陣列,將密碼變更傳播到所有伺服器需要一段時間,則資料庫有可能拒絕使用新憑證的呼叫。您可以透過適當的重試策略降低這種風險。

Secrets Manager 會建立複製使用者,該使用者擁有與原始使用者相同的許可。如果在建立複製使用者後變更原始使用者的許可,您也必須變更複製使用者的許可。

例如,如果您使用資料庫使用者的憑證建立秘密,則該秘密會包含一個具有這些憑證的版本。

The secret contains one secret version labeled AWSCURRENT. The username for the AWSCURRENT version is MyUser.

第一次輪換:輪換函數會使用產生的密碼建立用戶的複製,並且這些憑證會成為目前的秘密版本。

The secret contains two secret versions, one labeled AWSCURRENT and one labeled AWSPREVIOUS. The username for the AWSCURRENT version is MyUser_clone.

第二次輪換:輪換函數會更新原始使用者的密碼。

The secret contains two secret versions, one labeled AWSCURRENT and one labeled AWSPREVIOUS. The username for the AWSCURRENT version is MyUser.

第三次輪換:輪換函數會更新複製使用者的密碼。

The secret contains two secret versions, one labeled AWSCURRENT and one labeled AWSPREVIOUS. The username for the AWSCURRENT version is MyUser_clone.