在AWS console的Secrets Manager建立一個secret。
Secrets Manager是用來儲存secret的服務。所謂secret通常是指密碼,例如資料庫密碼、API key、auth token等。
使用Secrets Manager的好處是可避免直接在應用程式中寫死密碼,且可設定輪替(rotation)功能來更新密碼
下面是一般的使用情境:
- 管理員[Admin]建立資料庫[Personal database]的密碼及權限。
- 管理員將資料庫的密碼存放在[Secrets Manager]並由[KMS]的key加密。
- 當應用程式[MyCustomApp]需存取資料庫時,向[Secrets Manager]請求密碼。
- [Secrets Manager]將密碼解密回傳給應用程式[MyCustomApp]。
- [MyCustomApp]使用取得密碼來存取資料庫。
建立secret
登入AWS console,選擇服務區域(region)。
在上方搜尋欄搜尋"Secrets Manager",點選[Secrets Manager]。
在Secrets Manager服務左側選單點選[Secrets],然後點選右側的[Secrets]區塊的[Store a new secret]建立新的secret。
[Select type]選擇secret類型,範例選擇[Other type of secret]。
[Key/value pairs]的前面欄位為key名稱,範例為secret
;後面欄位是key對應的value,範例為12345
。[Encryption key]選擇預設的[DefaultEncryptionKey]。按[Next]往下一步。
[Secret name and description]設定secret的名稱及敘述。範例[Secret name]命名為demo/custom/secret1
。
[Tags]、[Resources permissions]及[Replicate secret]維持預設。
[Secret rotation]選擇[Disable automatic rotation],即不使用secret自動輪替功能。
[Review]審視剛設定的結果。
[Sample code]顯示存取secret的程式範例。
最後點選[Store]按鈕完成。
在[Secrets]可看到新建好的secret。點選secret名稱進入[Secret details]
在[Secret details]點選右上方[Actions]選單的[Delete secret]可刪除secret。
刪除secret前需要等待至少7天才能真正被刪除,可設定7-30天。等待刪除的secret將無法被使用。點選[Schedule deletion]確認安排刪除。
已安排刪除的secret預設不會顯示在[Secrets]清單中,可點選右上的齒輪符號開啟[Preferences]。
在[Preferences]勾選[Show secrets scheduled for deletion]才能在[Secrets]清單顯示已安排刪除的secret。
點選進入安排刪除的secret的[Secret detals]上方會出現"This secret has been scheduled for deletion"的提示。
前面設定secret的[Key/value pairs]時,若[Encryption key]選擇預設的[DefaultEncryptionKey]則會在KMS的[AWS managed keys]新增一個加解密secret用的金鑰。
沒有留言:
張貼留言