react-native-kms-module by boostbrothers/agent-skills
npx skills add https://github.com/boostbrothers/agent-skills --skill react-native-kms-module@boostbrothers/react-native-aws-kms — 一个使用 AWS Key Management Service (KMS) 安全地加密和解密敏感数据的 React Native 原生模块。基于 Expo Modules API。
在以下情况下参考此技能:
AWS KMS 使用信封加密。数据不直接发送到 KMS,而是在本地使用 KMS 生成的数据密钥 (DEK) 进行加密。
앱 (React Native)
↓ init() / encrypt() / decrypt()
KMS Module (Expo NativeModule)
↓
네이티브 레이어 (iOS Swift / Android Kotlin)
↓ AWS KMS API 호출
AWS KMS → 데이터 키 반환
↓
네이티브 레이어: AES-256-ECB 로컬 암호화
↓
Base64 문자열 반환
初始化 KMS 客户端。
import { init } from '@boostbrothers/react-native-aws-kms';
await init({
region: 'ap-northeast-2',
keyId: 'arn:aws:kms:ap-northeast-2:123456:key/abcd-1234',
accessKey: credentials.accessKeyId,
secretKey: credentials.secretAccessKey,
sessionToken: credentials.sessionToken,
});
⚠️ 安全警告:请勿将
accessKey、、 硬编码在源代码中。应通过环境变量、AWS Cognito Identity Pool 或 STS 动态获取凭据。
@boostbrothers/react-native-aws-kms — AWS Key Management Service(KMS)를 사용하여 민감한 데이터를 안전하게 암호화하고 복호화하는 React Native 네이티브 모듈. Expo Modules API 기반.
Reference this skill when:
AWS KMS는 엔벨로프 암호화를 사용합니다. 데이터를 KMS에 직접 전송하지 않고, KMS에서 생성한 데이터 키(DEK)로 로컬에서 암호화합니다.
앱 (React Native)
↓ init() / encrypt() / decrypt()
KMS Module (Expo NativeModule)
↓
네이티브 레이어 (iOS Swift / Android Kotlin)
↓ AWS KMS API 호출
AWS KMS → 데이터 키 반환
↓
네이티브 레이어: AES-256-ECB 로컬 암호화
↓
Base64 문자열 반환
KMS 클라이언트를 초기화합니다.
import { init } from '@boostbrothers/react-native-aws-kms';
await init({
region: 'ap-northeast-2',
keyId: 'arn:aws:kms:ap-northeast-2:123456:key/abcd-1234',
accessKey: credentials.accessKeyId,
secretKey: credentials.secretAccessKey,
sessionToken: credentials.sessionToken,
});
⚠️ SECURITY WARNING :
accessKey, , 을 소스 코드에 하드코딩하지 마세요. 환경 변수, AWS Cognito Identity Pool, 또는 STS를 통해 동적으로 자격증명을 획득하세요.
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
secretKeysessionToken加密数据。从 KMS 生成数据密钥,并在本地使用 AES-256-ECB 进行加密。
const encrypted = await encrypt('민감한 데이터');
// encrypted: Base64 编码的密文
解密已加密的数据。
const decrypted = await decrypt(encrypted);
// decrypted: 原始明文
import { init, encrypt, decrypt } from '@boostbrothers/react-native-aws-kms';
// 1. 从 STS 获取临时凭据
const credentials = await getTemporaryCredentials();
// 2. 初始化 KMS
await init({
region: 'ap-northeast-2',
keyId: 'arn:aws:kms:...',
...credentials,
});
// 3. 加密
const cipherText = await encrypt('주민등록번호: 123456-1234567');
// 4. 解密
const plainText = await decrypt(cipherText);
凭据错误:检查 accessKey/secretKey/sessionToken 是否有效。检查 STS 令牌的过期时间。
网络错误:确认是否可以访问 AWS KMS 端点。检查 VPN 或代理设置。
密钥权限错误:在 IAM 策略中确认是否拥有对该 KMS 密钥的 encrypt/decrypt 权限。
Base64 解码错误:encrypt() 的返回值是 Base64 字符串。无需额外编码,直接传递给 decrypt()。
| 平台 | 支持 |
|---|---|
| iOS | ✅ |
| Android | ✅ |
| Web | ❌ |
每周安装数
1
代码仓库
首次出现
今天
安全审计
安装于
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
secretKeysessionToken데이터를 암호화합니다. KMS에서 데이터 키를 생성하고 로컬에서 AES-256-ECB로 암호화.
const encrypted = await encrypt('민감한 데이터');
// encrypted: Base64 인코딩된 암호문
암호화된 데이터를 복호화합니다.
const decrypted = await decrypt(encrypted);
// decrypted: 원본 평문
import { init, encrypt, decrypt } from '@boostbrothers/react-native-aws-kms';
// 1. STS에서 임시 자격증명 획득
const credentials = await getTemporaryCredentials();
// 2. KMS 초기화
await init({
region: 'ap-northeast-2',
keyId: 'arn:aws:kms:...',
...credentials,
});
// 3. 암호화
const cipherText = await encrypt('주민등록번호: 123456-1234567');
// 4. 복호화
const plainText = await decrypt(cipherText);
자격증명 오류 : accessKey/secretKey/sessionToken이 유효한지 확인. STS 토큰의 만료 시간 체크.
네트워크 오류 : AWS KMS 엔드포인트 접근 가능 여부 확인. VPN 또는 프록시 설정 검토.
키 권한 오류 : IAM 정책에서 해당 KMS 키에 대한 encrypt/decrypt 권한이 있는지 확인.
Base64 디코딩 오류 : encrypt() 반환값은 Base64 문자열. 추가 인코딩 없이 그대로 decrypt()에 전달.
| Platform | Support |
|---|---|
| iOS | ✅ |
| Android | ✅ |
| Web | ❌ |
Weekly Installs
1
Repository
First Seen
Today
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1
xdrop 文件传输脚本:Bun 环境下安全上传下载工具,支持加密分享
27,100 周安装
A/B测试设置指南:从假设到分析的完整流程与最佳实践
1 周安装
Stripe支付集成指南:Node.js结账会话、支付意图、订阅与Webhooks完整教程
1 周安装
Spring Web MVC 高级教程:RestClient 与 ResponseEntity 实战指南
1 周安装
Spring Data R2DBC 教程:使用响应式关系数据库驱动开发 Java 应用
1 周安装
Spring Cloud 基础教程:微服务架构、Eureka服务发现与API网关实战
1 周安装
弹性模式实战指南:指数退避重试、熔断器与Resilience4j实现分布式系统容错
1 周安装