擷取 Java 應用程式中的 AWS Secrets Manager 秘密 - AWS Secrets Manager

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

擷取 Java 應用程式中的 AWS Secrets Manager 秘密

擷取秘密時,您可以使用 Secrets Manager Java 型快取元件進行快取以供將來使用。擷取快取的秘密比從 Secrets Manager 中擷取要快。由於呼叫 Secrets Manager API 需要花費成本,因此使用快取可以降低成本。如需您可以擷取機密的所有方法,請參閱 擷取秘密

快取政策是「最近最少使用的 (LRU)」,因此當快取必須丟棄秘密時,其會丟棄最近最少使用的秘密。預設情況下,快取每小時重新整理一次秘密。您可以設定在快取中重新整理機密的頻率,並可以掛接到機密擷取以新增更多功能。

一旦釋放快取參考,快取不會強制執行垃圾回收。快取實作不包括快取失效。快取實作著重於快取本身,而不是強化或著重於安全性。如果您需要額外的安全性,例如加密快取中的項目,請使用提供的介面和抽象方法。

若要使用元件,您必須擁有下列項目:

  • Java 8 或更高版本的開發環境。請參閱 Oracle 網站上的 Java SE 下載

  • 適用於 Java 的 AWS SDK 1.x。您可以在自己的專案中使用這兩種適用於 Java 的 AWS SDK 版本。如需詳細資訊,請參閱 Using the SDK for Java 1.x and 2.x side-by-side (並用適用於 Java 的 SDK 1.x 和 2.x)。

若要下載開放程式碼,請參閱 Secrets Manager Java 型快取用戶端元件 (在 GitHub 上)。

要將元件新增至您的專案中,請在 Maven pom.xml 檔案中包含以下相依性。如需 Maven 的詳細資訊,請參閱 Apache Maven 專案網站上的入門指南

<dependency> <groupId>com.amazonaws.secretsmanager</groupId> <artifactId>aws-secretsmanager-caching-java</artifactId> <version>1.0.2</version> </dependency>

必要許可:

  • secretsmanager:DescribeSecret

  • secretsmanager:GetSecretValue

如需更多詳細資訊,請參閱 許可參考

範例 擷取秘密

下列程式碼範例顯示擷取秘密字串的 Lambda 函數。它遵循將函數處理常式之外的快取執行個體化的最佳實務,所以如果您再次呼叫 Lambda 函數,則不會繼續呼叫 API。

package com.amazonaws.secretsmanager.caching.examples; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.secretsmanager.caching.SecretCache; public class SampleClass implements RequestHandler<String, String> { private final SecretCache cache = new SecretCache(); @Override public String handleRequest(String secretId, Context context) { final String secret = cache.getSecretString(secretId); // Use the secret, return success; } }