Community编程与开发github.com

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

提供使用 AWS SDK for Java 2.x 的 AWS 密钥管理服务 (KMS) 模式。用于创建/管理加密密钥、加密/解密数据、生成数据密钥、数字签名、密钥轮换,或将加密集成到 Spring Boot 应用程序中。

aws-sdk-java-v2-kms 是什么?

该技能提供了利用 AWS SDK for Java 2.x 与 AWS 密钥管理服务 (KMS) 交互的完整模式和最佳实践。它涵盖了加密密钥的创建与管理、数据的加密与解密、数据密钥的生成、数字签名以及密钥轮换等核心功能。对于需要将加密功能集成到 Spring Boot 应用程序中的开发者来说,该技能尤其有用,它提供了清晰且可复用的代码示例。该技能支持所有主要的 AI Agent 平台(如 Claude Code、Cursor、Codex),其文档以结构化的 Markdown 格式呈现,包括关键概念、使用步骤和完整示例。通过使用该技能,开发者可以避免重复编写底层 AWS SDK 调用代码,快速实现符合安全最佳实践的加密方案。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/giuseppe-trisciuoglio/developer-kit/tree/main/skills/aws-sdk-java-v2-kms

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

aws-sdk-java-v2-kms 是做什么的?

提供使用 AWS SDK for Java 2.x 的 AWS 密钥管理服务 (KMS) 模式。用于创建/管理加密密钥、加密/解密数据、生成数据密钥、数字签名、密钥轮换,或将加密集成到 Spring Boot 应用程序中。

概述

该技能包提供了一组全面且可复用的模式,用于在 Java 2.x 应用程序中与 AWS KMS 进行交互。每个模式都旨在解决常见的加密挑战,遵循 AWS 最佳实践,并包含清晰的代码示例。

关键能力

  • 密钥管理:创建、查看、启用、禁用和计划删除 KMS 密钥。
  • 数据加密:使用 KMS 密钥加密和解密小数据块(最大 64 KB)。
  • 数据密钥生成:生成用于客户端加密的数据密钥。
  • 数字签名:对消息进行签名和验证。
  • 密钥轮换:为 KMS 密钥启用和手动触发自动轮换。
  • Spring Boot 集成:将 KMS 客户端以 Spring Bean 的方式注入,使用 @Value 注入配置,以及使用 @Configuration 类。

先决条件

  • 有效的 AWS 账户,并对 KMS 具有适当权限。
  • 配置了 AWS 凭证(环境变量、AWS 配置文件或 IAM 角色)。
  • 在项目中添加 AWS SDK for Java 2.x KMS 依赖项。

如何使用

每个模式都提供了一个独立的 Java 代码示例,包含必要的导入、异常处理和清晰的内联注释。这些示例可以直接复制到您的项目中并进一步调整。

示例:创建 KMS 密钥

以下示例演示了如何创建对称的 KMS 密钥:

import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.kms.KmsClient;
import software.amazon.awssdk.services.kms.model.*;

public class CreateKeyExample {
    public static void main(String[] args) {
        Region region = Region.US_EAST_1;
        KmsClient kmsClient = KmsClient.builder().region(region).build();

        CreateKeyRequest request = CreateKeyRequest.builder()
                .keyUsage(KeyUsageType.ENCRYPT_DECRYPT)
                .origin(OriginType.AWS_KMS)
                .description("用于加密敏感数据的密钥")
                .build();

        try {
            CreateKeyResponse response = kmsClient.createKey(request);
            System.out.println("创建的密钥 ID:" + response.keyMetadata().keyId());
        } catch (KmsException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }
    }
}

Spring Boot 集成

为了将 AWS KMS 集成到 Spring Boot 应用程序中,您可以使用以下配置:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.kms.KmsClient;

@Configuration
public class KmsConfig {

    @Bean
    public KmsClient kmsClient() {
        return KmsClient.builder()
                .region(Region.of("${aws.region}"))
                .build();
    }
}

然后在您的 application.properties 中设置区域:

aws.region=us-east-1

安全注意事项

  • 切勿在代码中硬编码 AWS 凭证。使用环境变量、AWS 配置文件或 IAM 角色。
  • 遵循最小权限原则,为您的 KMS 操作分配特定的 IAM 权限。
  • 启用 CloudTrail 以审计 KMS 密钥的使用。
  • 定期轮换您的 KMS 密钥以降低密钥泄露风险。

更多资源

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-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/aws-sdk-java-v2-secrets-manager

Provides AWS Secrets Manager patterns for AWS SDK for Java 2.x, including secret retrieval, caching, rotation-aware access, and Spring Boot integration. Use when storing or reading secrets in Java services, replacing hardcoded credentials, or wiring secret-backed configuration into applications.

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.

相关技能