Was macht aws-sdk-java-v2-secrets-manager?
Stellt Muster für AWS Secrets Manager mit dem AWS SDK für Java 2.x bereit, einschließlich Geheimnisabruf, Caching, rotationsbewusstem Zugriff und Spring Boot-Integration. Verwenden Sie dies beim Speichern oder Lesen von Geheimnissen in Java-Diensten, beim Ersetzen hartcodierter Anmeldeinformationen oder beim Einbinden geheimnisgestützter Konfiguration in Anwendungen.
Funktionen
- Sicherer Geheimnisabruf: Rufen Sie Geheimnisse aus AWS Secrets Manager mit minimalem Code ab.
- Caching: Zwischenspeichern von Geheimnissen zur Reduzierung von API-Aufrufen und Verbesserung der Latenz.
- Rotationsbewusster Zugriff: Erkennen und behandeln Sie rotierte Geheimnisse automatisch.
- Spring Boot-Integration: Binden Sie Geheimnisse nahtlos in die Spring Boot-Konfiguration ein.
- Typensicherheit: Nutzen Sie Java-Generika für typsicheren Zugriff auf Geheimniswerte.
Voraussetzungen
- Java 8 oder höher
- AWS SDK für Java 2.x (z.B.
software.amazon.awssdk:secretsmanager) - AWS-Konto mit Secrets Manager-Ressourcen
- Spring Boot (optional, für Integration)
Installation
Fügen Sie die folgende Abhängigkeit zu Ihrer pom.xml (Maven) hinzu:
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>secretsmanager</artifactId>
<version>2.20.0</version>
</dependency>
Für Gradle:
implementation 'software.amazon.awssdk:secretsmanager:2.20.0'
Verwendung
Grundlegender Geheimnisabruf
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueRequest;
import software.amazon.awssdk.services.secretsmanager.model.GetSecretValueResponse;
SecretsManagerClient client = SecretsManagerClient.create();
GetSecretValueRequest request = GetSecretValueRequest.builder()
.secretId("mein-geheimnis")
.build();
GetSecretValueResponse response = client.getSecretValue(request);
String geheimnis = response.secretString();
Mit Caching
import com.example.SecretCache;
SecretCache cache = new SecretCache(client);
String geheimnis = cache.getSecretString("mein-geheimnis");
Spring Boot-Integration
Konfigurieren Sie in application.yml:
aws:
secretsmanager:
region: eu-central-1
secrets:
- name: mein-geheimnis
property: app.secret
Und binden Sie es in Ihren Code ein:
@Value("${app.secret}")
private String geheimnis;
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert.