aws/aws-secretsmanager-caching-java
GitHub: aws/aws-secretsmanager-caching-java
AWS 官方提供的 Java 密钥缓存客户端,通过进程内缓存机制减少对 Secrets Manager 的重复调用,提升密钥读取性能并自动处理密钥轮换。
Stars: 79 | Forks: 37
## AWS Secrets Manager Java 缓存客户端
[](https://github.com/aws/aws-secretsmanager-caching-java/actions/workflows/maven.yml)
[](https://codecov.io/gh/aws/aws-secretsmanager-caching-java)
AWS Secrets Manager Java 缓存客户端支持为 Java 应用程序提供机密信息的进程内缓存。
## 入门指南
### 必要前提条件
要使用此客户端,您必须具备:
* **Java 8 开发环境**
如果您尚未安装,请访问 Oracle 网站上的 [Java SE 下载](https://www.oracle.com/technetwork/java/javase/downloads/index.html),下载并安装 Java SE Development Kit (JDK)。建议使用 Java 8 或更高版本。
一个 Amazon Web Services (AWS) 账户,用于访问存储在 AWS Secrets Manager 中的机密信息并使用 AWS SDK for Java。
* **要创建 AWS 账户**,请访问[登录或创建 AWS 账户](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html),然后选择**我是新用户**。按照说明创建 AWS 账户。
* **要在 AWS Secrets Manager 中创建机密信息**,请访问[创建机密信息](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_create-basic-secret.html)并按照页面上的说明进行操作。
* **要下载并安装 AWS SDK for Java**,请访问 AWS SDK for Java 文档中的[安装 AWS SDK for Java](https://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/java-dg-install-sdk.html),然后按照页面上的说明进行操作。
### 下载
您可以从 Maven 获取最新版本:
```
com.amazonaws.secretsmanager
aws-secretsmanager-caching-java
2.2.0
```
不要忘记启用从 Maven 下载 snapshot jar 包:
```
allow-snapshots
true
snapshots-repo
https://aws.oss.sonatype.org/content/repositories/snapshots
false
true
```
### 开始使用
以下代码示例演示了如何快速入门:
1. 实例化缓存客户端。
2. 请求机密信息。
```
// This example shows how an AWS Lambda function can be written
// to retrieve a cached secret from AWS Secrets Manager caching
// client.
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;
/**
* SampleClass.
*/
public class SampleClass implements RequestHandler {
private final SecretCache cache = new SecretCache();
@Override
public String handleRequest(String secretId, Context context) {
final String secret = cache.getSecretString(secretId);
// Use secret to connect to secured resource.
return "Success!";
}
}
```
### 启用后量子 TLS
要启用后量子 TLS 以增强安全性:
```
import com.amazonaws.secretsmanager.caching.SecretCache;
import com.amazonaws.secretsmanager.caching.SecretCacheConfiguration;
SecretCache cache = new SecretCache(
new SecretCacheConfiguration()
.withPostQuantumTlsEnabled(true)
);
String secret = cache.getSecretString("my-secret-id");
```
**注意**:PQ-TLS 使用 AWS Common Runtime (CRT),该运行时依赖于系统库,目前在 macOS 或 Windows 上可能无法按预期工作([参考](https://github.com/awslabs/aws-crt-java#tls-behavior))。
## 许可证
本库采用 Apache 2.0 许可证授权。
标签:API, AWS, AWS SDK, DPI, Maven, Secrets Manager, SOC Prime, 云计算, 域名枚举, 安全, 库, 应急响应, 开发工具, 漏洞验证, 缓存, 规则引擎, 超时处理, 进程内缓存