KMS Module
React Native KMS Module
AWS KMS를 활용한 네이티브 데이터 암호화/복호화 모듈
React Native KMS Module
@boostbrothers/react-native-aws-kms는 AWS Key Management Service(KMS)를 사용하여 민감한 데이터를 안전하게 암호화하고 복호화하는 React Native 네이티브 모듈입니다. Expo Modules API 기반으로 구현되어 iOS와 Android 모두를 지원합니다.
지원 플랫폼
| 플랫폼 | 지원 여부 |
|---|---|
| iOS | ✅ |
| Android | ✅ |
| Web | ❌ |
AWS KMS란?
AWS Key Management Service(KMS)는 암호화 키를 생성하고 관리하기 위한 AWS의 관리형 서비스입니다. 키 자체는 AWS 인프라 내에서 안전하게 관리되며, 고객은 키를 직접 보관하지 않고도 데이터를 암호화할 수 있습니다.
주요 특징:
- FIPS 140-2 인증 하드웨어 보안 모듈(HSM) 사용
- CloudTrail을 통한 모든 키 사용 감사 로그
- IAM 기반 세밀한 접근 제어
- 자동 키 교체(Key Rotation) 지원
아키텍처 개요
엔벨로프 암호화 패턴: AWS KMS는 엔벨로프 암호화(Envelope Encryption)를 사용합니다. 데이터를 KMS에 직접 전송하지 않고, KMS에서 생성한 데이터 키(Data Encryption Key)로 로컬에서 암호화합니다. 이 방식은 대용량 데이터 처리에 효율적이며 네트워크 비용을 절감합니다.
accessKey, secretKey, sessionToken을 소스 코드에 하드코딩하지 마세요. 환경 변수, AWS Cognito Identity Pool, 또는 STS(Security Token Service)를 통해 동적으로 자격증명을 획득하는 것을 권장합니다.