Auto-sync: update nexus workspace

This commit is contained in:
2026-04-29 15:44:38 +08:00
parent b2aadf771a
commit c961c6a394
114 changed files with 4784 additions and 1334 deletions

View File

@@ -0,0 +1,92 @@
---
title: "JDBCWrapper"
type: concept
tags:
- AWS
- Java
- Database
- Security
- SDK
---
## Definition
JDBC WrapperJDBC 包装器)是一种通过包装 JDBC 连接,配合 AWS SDK 从 AWS Secrets Manager 动态获取数据库凭据的编程模式,使应用程序无需硬编码数据库密码即可连接数据库。
## Problem Statement
传统数据库连接方式:
```
应用程序 → 配置文件/环境变量 → 数据库
硬编码明文密码(安全风险)
```
**问题**
- 密码在代码、配置文件或环境变量中明文存储
- 密码变更需要修改配置并重启应用
- 无法实现细粒度的访问控制
- 密码泄露风险高
## Solution: JDBC Wrapper Pattern
使用 JDBC Wrapper 的连接方式:
```
应用程序 → JDBC Wrapper + AWS SDK → AWS Secrets Manager → 数据库
```
**工作流程**
1. 应用程序通过 JDBC Wrapper 建立连接
2. JDBC Wrapper 调用 AWS SDK 向 Secrets Manager 请求凭据
3. Secrets Manager 返回动态获取的数据库密码
4. JDBC Wrapper 使用临时凭据建立数据库连接
5. 连接完成后,凭据不在应用内存中长期保留
## Key Benefits
| 优势 | 说明 |
|------|------|
| **无密码访问** | 用户无需知道数据库密码,通过 IAM 角色授权 |
| **动态轮换** | 数据库密码轮换时,应用无需重启 |
| **集中审计** | 所有数据库访问通过 Secrets Manager 记录 |
| **最小权限** | 基于 IAM 角色控制数据库访问权限 |
| **审计追溯** | 用户名由角色控制,可追溯数据库操作 |
## Implementation Architecture
```
┌─────────────┐ ┌──────────────┐ ┌─────────────────┐ ┌──────────────┐
│ Application │────▶│ JDBC Wrapper │────▶│ AWS SDK │────▶│ Secrets │
│ │ │ (密码获取) │ │ (调用API) │ │ Manager │
└─────────────┘ └──────────────┘ └─────────────────┘ └──────────────┘
┌──────────────┐
│ Oracle/MySQL │
│ Database │
└──────────────┘
```
## Access Control Model
- **用户名**:由 IAM 角色控制,根据角色映射数据库用户
- **密码**:由 AWS Secrets Manager 动态提供,无需人工知晓
- **访问权限**:通过 IAM Policy 控制谁能访问哪些 Secrets
## Related Concepts
- [[SecretsManagement]]:敏感信息管理的整体框架
- [[SecretRotation]]:密码轮换机制,与 JDBC Wrapper 配合实现无停机轮换
- [[AWS-SDK]]AWS 服务调用开发工具包
- [[IAM-Roles]]:基于角色的访问控制机制
## Sources
- [[CTP-Topic-62-AWS-Secrets-Manager]] — Victor 演示使用 JDBC Wrapper + AWS SDK 实现无密码 Oracle 数据库登录
## Aliases
- Database Credential Provider
- Secrets Manager JDBC Driver
- Dynamic Database Credentials
- AWS SDK Database Wrapper