本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Go 搭配用戶端快取取得 Secrets Manager 秘密值
擷取秘密時,您可以使用 Secrets Manager Go 型快取元件進行快取以供將來使用。擷取快取的秘密比從 Secrets Manager 中擷取要快。由於呼叫 Secrets Manager 需要成本APIs,因此使用快取可以降低成本。如需您可以擷取機密的所有方法,請參閱 獲取秘密。
快取政策是最近使用的 (LRU),因此當快取必須捨棄秘密時,會捨棄最近使用的秘密。預設情況下,快取每小時重新整理一次秘密。您可以設定在快取中重新整理機密的頻率,並可以掛接到機密擷取以新增更多功能。
一旦釋放快取參考,快取不會強制執行垃圾回收。快取實作不包括快取失效。快取實作著重於快取本身,而不是強化或著重於安全性。如果您需要額外的安全性,例如加密快取中的項目,請使用提供的介面和抽象方法。
若要使用元件,您必須擁有下列項目:
-
AWS SDK for Go。請參閱 AWS SDKs。
若要下載原始程式碼,請參閱 上的 Secrets Manager Go 快取用戶端
若要設定 Go 開發環境,請參閱 Go 程式設計語言網站上的 Golang 入門
必要許可:
secretsmanager:DescribeSecret
secretsmanager:GetSecretValue
如需詳細資訊,請參閱許可參考。
範例 擷取秘密
下列程式碼範例顯示擷取秘密的 Lambda 函數。
package main import ( "github.com/aws/aws-lambda-go/lambda" "github.com/aws/aws-secretsmanager-caching-go/secretcache" ) var ( secretCache, _ = secretcache.New() ) func HandleRequest(secretId string) string { result, _ := secretCache.GetSecretString(secretId)
// Use the secret, return success
} func main() { lambda. Start( HandleRequest) }