Community코딩 & 개발github.com

giuseppe-trisciuoglio/aws-sdk-java-v2-secrets-manager

AWS SDK for Java 2.x용 AWS Secrets Manager 패턴 제공 (비밀 검색, 캐싱, 로테이션 인식 접근, Spring Boot 통합 포함). Java 서비스에서 비밀 저장/읽기, 하드코딩된 자격 증명 교체, 또는 애플리케이션에 비밀 기반 설정 연결 시 사용합니다.

aws-sdk-java-v2-secrets-manager란 무엇인가요?

이 스킬은 AWS Secrets Manager와 AWS SDK for Java 2.x를 함께 사용하는 Java 애플리케이션에서 비밀 정보(자격 증명, API 키, 데이터베이스 비밀번호 등)를 안전하게 관리할 수 있는 패턴과 유틸리티를 제공합니다. 주요 기능으로는 비밀 검색 및 캐싱 (CachingSecretsManager), Secrets Manager에서 자동으로 비밀을 갱신하는 로테이션 인식 접근 (RotationAwareSecretsManager), 그리고 Spring Boot 애플리케이션에 비밀 정보를 손쉽게 주입할 수 있는 spring-cloud-starter-aws-secrets-manager-config 통합이 포함됩니다. 이를 통해 개발자는 하드코딩된 자격 증명을 제거하고, 비밀 정보를 중앙 집중식으로 안전하게 관리하며, 애플리케이션 구성에서 비밀 정보를 동적으로 로드할 수 있습니다. Java 17+ 및 AWS SDK for Java 2.x를 지원하며, Spring Boot 3.x와 완벽하게 통합됩니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit/tree/main/skills/aws-sdk-java-v2-secrets-manager

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

aws-sdk-java-v2-secrets-manager은(는) 무엇을 하나요?

AWS SDK for Java 2.x용 AWS Secrets Manager 패턴을 제공합니다. 비밀 검색, 캐싱, 로테이션 인식 접근, Spring Boot 통합이 포함됩니다. Java 서비스에서 비밀 정보를 저장하거나 읽을 때, 하드코딩된 자격 증명을 대체할 때, 또는 애플리케이션에 비밀 기반 설정을 연결할 때 사용하세요.

기능

  • 비밀 검색: GetSecretValueRequest를 사용하여 Secrets Manager에서 비밀 값을 검색합니다.
  • 비밀 캐싱: CachingSecretsManager를 사용하여 Secrets Manager에 대한 API 호출을 줄이고 성능을 향상시킵니다.
  • 로테이션 인식 접근: RotationAwareSecretsManager를 사용하여 비밀 로테이션을 자동으로 감지하고 처리합니다.
  • Spring Boot 통합: spring-cloud-starter-aws-secrets-manager-config를 사용하여 Spring Boot 애플리케이션에 비밀 정보를 자동으로 주입합니다.

전제 조건

  • AWS 계정 및 Secrets Manager에 저장된 비밀.
  • AWS SDK for Java 2.x (software.amazon.awssdk:secretsmanager)
  • Java 17+
  • (선택 사항) Spring Boot 3.x

설치

Maven

<dependency>
    <groupId>software.amazon.awssdk</groupId>
    <artifactId>secretsmanager</artifactId>
    <version>2.25.0</version>
</dependency>

Gradle

implementation 'software.amazon.awssdk:secretsmanager:2.25.0'

사용법

1. 기본 비밀 검색

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 getSecretValueRequest = GetSecretValueRequest.builder()
        .secretId("my-secret-name")
        .build();

GetSecretValueResponse getSecretValueResponse = client.getSecretValue(getSecretValueRequest);
String secret = getSecretValueResponse.secretString();
System.out.println(secret);

2. 캐싱된 비밀 검색

import com.example.CachingSecretsManager;

CachingSecretsManager cachingManager = new CachingSecretsManager(client);
String cachedSecret = cachingManager.getSecretString("my-secret-name");
// 후속 호출은 캐시에서 제공되어 API 호출을 줄입니다.

3. 로테이션 인식 접근

import com.example.RotationAwareSecretsManager;

RotationAwareSecretsManager rotationManager = new RotationAwareSecretsManager(client);
String secret = rotationManager.getSecretWithRotationAwareness("my-secret-name");
// 로테이션이 감지되면 새 값을 가져오고 캐시를 업데이트합니다.

4. Spring Boot 통합

bootstrap.yml 또는 application.yml에 다음을 추가합니다:

aws:
  secretsmanager:
    region: us-east-1
    secrets:
      - secretName: my-db-secret
        prefix: /config

비밀 값은 @Value를 사용하여 주입됩니다:

@Value("${/config/my-db-secret.username}")
private String dbUsername;

구성

환경 변수:

  • AWS_ACCESS_KEY_ID - AWS 액세스 키
  • AWS_SECRET_ACCESS_KEY - AWS 시크릿 액세스 키
  • AWS_REGION - AWS 리전 (예: us-east-1)

Iam 역할에 secretsmanager:GetSecretValue 권한이 있는지 확인하세요.

문제 해결

  • AccessDeniedException: IAM 정책에 secretsmanager:GetSecretValue 권한이 있는지 확인하세요.
  • ResourceNotFoundException: Secrets Manager에 비밀이 존재하는지 확인하세요.
  • 캐싱 문제: CachingSecretsManager의 TTL(만료 시간)을 조정하세요.

참고 자료

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

giuseppe-trisciuoglio/aws-lambda-java-integration

Provides AWS Lambda integration patterns for Java with cold start optimization. Use when deploying Java functions to AWS Lambda, choosing between Micronaut and Raw Java approaches, optimizing cold starts below 1 second, configuring API Gateway or ALB integration, or implementing serverless Java applications. Triggers include "create lambda java", "deploy java lambda", "micronaut lambda aws", "java lambda cold start", "aws lambda java performance", "java serverless framework".

giuseppe-trisciuoglio/aws-lambda-php-integration

Provides AWS Lambda integration patterns for PHP with Symfony using the Bref framework. Creates Lambda handler classes, configures runtime layers, sets up SQS/SNS event triggers, implements warm-up strategies, and optimizes cold starts. Use when deploying PHP/Symfony applications to AWS Lambda, configuring API Gateway integration, implementing serverless PHP applications, or optimizing Lambda performance with Bref. Triggers include "create lambda php", "deploy symfony lambda", "bref lambda aws", "php lambda cold start", "aws lambda php performance", "symfony serverless", "php serverless framework".

giuseppe-trisciuoglio/aws-lambda-python-integration

Provides AWS Lambda integration patterns for Python with cold start optimization. Use when deploying Python functions to AWS Lambda, choosing between AWS Chalice and raw Python approaches, optimizing cold starts, configuring API Gateway or ALB integration, or implementing serverless Python applications. Triggers include "create lambda python", "deploy python lambda", "chalice lambda aws", "python lambda cold start", "aws lambda python performance", "python serverless framework".

giuseppe-trisciuoglio/aws-lambda-typescript-integration

Provides AWS Lambda integration patterns for TypeScript with cold start optimization. Use when creating or deploying TypeScript Lambda functions, choosing between NestJS framework and raw TypeScript approaches, optimizing cold starts, configuring API Gateway or ALB integration, or implementing serverless TypeScript applications. Triggers include "create lambda typescript", "deploy typescript lambda", "nestjs lambda aws", "raw typescript lambda", "aws lambda typescript performance".

giuseppe-trisciuoglio/aws-rds-spring-boot-integration

Provides patterns to configure AWS RDS (Aurora, MySQL, PostgreSQL) with Spring Boot applications. Configures HikariCP connection pools, implements read/write splitting, sets up IAM database authentication, enables SSL connections, and integrates with AWS Secrets Manager. Use when setting up RDS connections in Spring Boot, configuring connection pooling, or managing database credentials securely.

giuseppe-trisciuoglio/aws-sdk-java-v2-bedrock

Provides Amazon Bedrock patterns using AWS SDK for Java 2.x. Invokes foundation models (Claude, Llama, Titan), generates text and images, creates embeddings for RAG, streams real-time responses, and configures Spring Boot integration. Use when asking about Bedrock integration, Java SDK for AI models, AWS generative AI, Claude/Llama invocation, embeddings for RAG, or Spring Boot AI setup.

giuseppe-trisciuoglio/aws-sdk-java-v2-core

Provides AWS SDK for Java 2.x client configuration, credential resolution, HTTP client tuning, timeout, retry, and testing patterns. Use when creating or hardening AWS service clients, wiring Spring Boot beans, debugging auth or region issues, or choosing sync vs async SDK usage.

giuseppe-trisciuoglio/aws-sdk-java-v2-dynamodb

Provides Amazon DynamoDB patterns using AWS SDK for Java 2.x. Use when creating, querying, scanning, or performing CRUD operations on DynamoDB tables, working with indexes, batch operations, transactions, or integrating with Spring Boot applications.

giuseppe-trisciuoglio/aws-sdk-java-v2-kms

Provides AWS Key Management Service (KMS) patterns using AWS SDK for Java 2.x. Use when creating/managing encryption keys, encrypting/decrypting data, generating data keys, digital signing, key rotation, or integrating encryption into Spring Boot applications.

giuseppe-trisciuoglio/aws-sdk-java-v2-lambda

Provides AWS Lambda patterns using AWS SDK for Java 2.x. Use when invoking Lambda functions, creating/updating functions, managing function configurations, working with Lambda layers, or integrating Lambda with Spring Boot applications.

giuseppe-trisciuoglio/aws-sdk-java-v2-messaging

Provides AWS messaging patterns using AWS SDK for Java 2.x for SQS queues and SNS topics. Handles sending/receiving messages, FIFO queues, DLQ, subscriptions, and pub/sub patterns. Use when implementing messaging with SQS or SNS.

giuseppe-trisciuoglio/aws-sdk-java-v2-rds

Provides AWS RDS (Relational Database Service) management patterns using AWS SDK for Java 2.x. Use when creating, modifying, monitoring, or managing Amazon RDS database instances, snapshots, parameter groups, and configurations.

giuseppe-trisciuoglio/aws-sdk-java-v2-s3

Provides Amazon S3 patterns and examples using AWS SDK for Java 2.x. Use when working with S3 buckets, uploading/downloading objects, multipart uploads, presigned URLs, S3 Transfer Manager, object operations, or S3-specific configurations.

giuseppe-trisciuoglio/better-auth

Provides Better Auth integration patterns for NestJS backend and Next.js frontend with Drizzle ORM and PostgreSQL. Use when setting up Better Auth with NestJS backend, integrating Next.js App Router frontend, configuring Drizzle ORM schema, implementing social login (GitHub, Google), adding plugins (2FA, Organization, SSO, Magic Link, Passkey), implementing email/password authentication with session management, or creating protected routes and middleware.

giuseppe-trisciuoglio/chunking-strategy

Provides chunking strategies for RAG systems. Generates chunk size recommendations (256-1024 tokens), overlap percentages (10-20%), and semantic boundary detection methods. Validates semantic coherence and evaluates retrieval precision/recall metrics. Use when building retrieval-augmented generation systems, vector databases, or processing large documents.

giuseppe-trisciuoglio/clean-architecture

Provides implementation patterns for Clean Architecture, Hexagonal Architecture (Ports & Adapters), and Domain-Driven Design in Java 21+ Spring Boot 3.5+ applications. Use when structuring layered architectures, separating domain logic from frameworks, implementing ports and adapters, creating entities/value objects/aggregates, or refactoring monolithic codebases for testability and maintainability.

giuseppe-trisciuoglio/docs-updater

Provides automated documentation updates by analyzing git changes between the current branch and the last release tag. Performs git diff analysis to identify modifications, then updates README.md, CHANGELOG.md following Keep a Changelog standard, and discovers documentation folders for contextual updates. Use when preparing a release, maintaining documentation sync, or before creating a pull request. Triggers on "update docs", "update changelog", "sync documentation", "update readme", "prepare release documentation".

giuseppe-trisciuoglio/drawio-logical-diagrams

Creates professional logical flow diagrams and logical system architecture diagrams using draw.io XML format (.drawio files). Use when creating: (1) logical flow diagrams showing data/process flow between system components, (2) logical architecture diagrams representing system structure without cloud provider specifics, (3) BPMN process diagrams, (4) UML diagrams (class, sequence, activity), (5) data flow diagrams (DFD), (6) decision flowcharts, or (7) system interaction diagrams. This skill focuses on generic/abstract representations, not AWS/Azure-specific architectures (use aws-drawio-architecture-diagrams for cloud diagrams).

giuseppe-trisciuoglio/drizzle-orm-patterns

Provides comprehensive Drizzle ORM patterns for schema definition, CRUD operations, relations, queries, transactions, and migrations. Proactively use for any Drizzle ORM development including defining database schemas, writing type-safe queries, implementing relations, managing transactions, and setting up migrations with Drizzle Kit. Supports PostgreSQL, MySQL, SQLite, MSSQL, and CockroachDB.

giuseppe-trisciuoglio/github-issue-workflow

Provides a structured 8-phase workflow for resolving GitHub issues in Claude Code. Covers fetching issue details, analyzing requirements, implementing solutions, verifying correctness, performing code review, committing changes, and creating pull requests. Use when user asks to resolve, implement, work on, fix, or close a GitHub issue, or references an issue URL or number for implementation.

관련 스킬