我們很高興地宣布推出 AWS Secrets Manager 的增強版轉換功能:AWS::SecretsManager-2024-09-16。這次更新旨在簡化基礎設施管理,減少手動安全更新、錯誤修復和運行時升級的需求。
AWS Secrets Manager 幫助您管理、檢索和輪換數據庫憑證、API 金鑰及其他秘密資訊,涵蓋其整個生命週期。一些 AWS 服務提供秘密資訊的管理輪換,但對於其他秘密資訊,您需要使用 AWS Lambda 函數來更新您的秘密資訊和數據庫或服務進行輪換。
轉換是由 AWS CloudFormation 托管的宏,讓您能夠創建或管理複雜的基礎設施設置。有關轉換的一般資訊,請參閱 AWS CloudFormation 文檔。
AWS::SecretsManager 轉換與 AWS::SecretsManager::RotationSchedule 資源類型和 HostedRotationLambda 屬性一起使用,能自動擴展您的 CloudFormation 模板,包含一個嵌套堆疊,創建適合您數據庫或服務的輪換 Lambda 函數。轉換提供了一種便捷的方法,將 AWS 提供的輪換 Lambda 函數部署到您自己的帳戶中,作為 CloudFormation 模板的一部分,而不需要依賴 AWS 無伺服器應用程式庫或 AWS 管理控制台創建輪換 Lambda 函數。
在這篇文章中,我們將探索轉換的新功能,將其與之前的版本進行比較,並指導您如何將使用舊轉換版本創建的現有 Lambda 函數更新為使用新轉換版本。
AWS::SecretsManager-2024-09-16 的新功能
新轉換版本相較於之前的版本(AWS::SecretsManager-2020-07-23)引入了幾個增強功能:
- 自動 Lambda 升級:當您更新 CloudFormation 堆疊時,您的輪換 Lambda 函數的運行時配置和內部依賴項現在會自動更新。這有助於您確保使用最安全和穩定的 Secrets Manager 提供的輪換 Lambda 函數代碼和運行時。目前,AWS Lambda 支援 Python 3.9 及以上的運行時。由於 Python 3.8 已被棄用,這項功能允許無縫過渡到更新的支援運行時。有關運行時棄用的更多資訊,請參閱 AWS Lambda 運行時文檔和 Python 版本指南。
- 額外的資源屬性:當與 HostedRotationLambda 屬性一起使用時,新轉換現在支援 AWS::SecretsManager::RotationSchedule 資源類型的額外資源屬性。以下屬性應用於創建輪換 Lambda 函數的嵌套堆疊(類型為 AWS::CloudFormation::Stack):
- CreationPolicy
- DependsOn
- Metadata
- UpdatePolicy
- Condition
有關這些資源屬性的更多資訊,請參閱 AWS CloudFormation 資源屬性參考。
資源屬性比較
下表顯示了 Secrets Manager 轉換的兩個版本支援的資源屬性。
屬性 | AWS::SecretsManager-2020-07-23 | AWS::SecretsManager-2024-09-16 |
---|---|---|
DeletionPolicy | 支援 | 支援 |
UpdateReplacePolicy | 支援 | 支援 |
CreationPolicy | 不支援 | 支援 |
DependsOn | 不支援 | 支援 |
Metadata | 不支援 | 支援 |
UpdatePolicy | 不支援 | 支援 |
Condition | 不支援 | 支援 |
重要考量
在使用 AWS::SecretsManager-2024-09-16 轉換之前,了解以下考量事項是很重要的,以確保您的 CloudFormation 堆疊正確創建或更新:
- 非向後兼容性:新轉換版本與之前的版本不向後兼容。如果您從 AWS::SecretsManager-2024-09-16 降級到 AWS::SecretsManager-2020-07-23,則不會支援額外的資源屬性,這可能會改變現有堆疊的行為。
- 升級期間的回滾行為:當您從之前的版本升級到 AWS::SecretsManager-2024-09-16 轉換時,如果因任何原因發生堆疊回滾,輪換 Lambda 函數可能不會恢復到其先前狀態。這是因為舊轉換的嵌套堆疊可能不會使用升級前使用的相同 Lambda 部署包。
- 直接 Lambda 更改:如果您在 CloudFormation 堆疊更新之外直接更改由新轉換創建的 Lambda 函數,這些修改可能會在後續的 CloudFormation 堆疊更新或回滾期間被覆蓋。
- Lambda 運行時管理:使用新轉換版本時,輪換 Lambda 函數的運行時與 Secrets Manager 轉換 Lambda 模板中提供的編譯二進制文件對齊,無需在 HostedRotationLambda 屬性中指定 Runtime 值。如果您指定了 Runtime 值,請確保它是 Secrets Manager 提供的輪換 Lambda 模板支援的版本。否則,Lambda 運行時將與輪換 Lambda 函數中發布的二進制文件不兼容。關於支援的運行時的更多資訊,請參閱輪換函數模板文檔。
- 支援結束計劃:AWS Secrets Manager 將在未來結束對之前轉換版本(AWS::SecretsManager-2020-07-23)的支援。我們建議您將堆疊遷移到新轉換,以便在未來受益於改進和安全增強。
如何升級
要升級到新轉換版本,請按照以下步驟操作:
- 檢查使用 AWS::SecretsManager-2020-07-23 轉換的現有 CloudFormation 堆疊。
- 更新您的 CloudFormation 堆疊模板,在模板頂部的 Transform 鍵中使用 AWS::SecretsManager-2024-09-16:Transform: AWS::SecretsManager-2024-09-16。
- 如果您之前在 HostedRotationLambda 屬性中定義了 Runtime 值,請將其從模板中移除,以便在未來的堆疊更新中正確更新輪換 Lambda 函數的運行時。
- 根據需要納入新的資源屬性。我們建議在升級時盡量減少其他模板更改,以減少回滾的可能性。
- 通過使用修訂後的模板更新您的 CloudFormation 堆疊來部署更改。
通過遵循這些步驟,您的 Secrets Manager 提供的輪換 Lambda 函數將受益於最新的改進和安全增強。記得在將更改應用於生產堆疊之前,先在非生產環境中測試更改。如果在升級過程中遇到任何問題,請參閱我們的文檔或聯繫 AWS 支援以獲取幫助。
如果您對本文有任何反饋,請在下方的評論區提交評論。如果您對本文有任何疑問,請聯繫 AWS 支援。
新聞來源
本文由 AI 台灣 使用 AI 編撰,內容僅供參考,請自行進行事實查核。加入 AI TAIWAN Google News,隨時掌握最新 AI 資訊!