암호화 (Encryption)이란?
- 데이터를 도난이나 해킹으로부터 보호하기 위한 방법
- 3가지 암호화 방법
- 1) 전송중 암호화 : 네트워크로 전송하는 트래픽을 암호화
- 2) 서버측 암호화 : 서버에 저장된 데이터를 암호화
- 3) 클라이언트측 암호화 : 데이터를 보내기전에 암호화
Key Management System (KMS)
- 암호화 키를 생성 및 관리하는 서비스
- 키(Key)는 암호화를 하고 암호를 해독하는 역할
- AWS에서 암호화에 관련된 서비스는 대부분 KMS와 관련되어 있음
- EBS, S3, RDS등의 AWS 서비스 데이터 암호화에 대부분 KMS를 사용
- 키를 자동으로 교체하는 기능을 지원 (보안을 위해)
- 감사를 위해 AWS CloudTrail과도 통합되어 모든 키 사용에 관한 로그를 제공
- 3가지 유형의 키를 제공
- 1) 고객 관리형 키 (Customer Managed keys)
- 사용자가 생성, 소유 및 관리하는 AWS 계정의 KMS 키
- 키 정책, IAM 정책 및 권한 부여, 암호화 구성요소 등의 제어 권한을 사용자가 가짐
- 2) AWS 관리형 키 (AWS Managed Keys)
- AWS 서비스가 고객의 계정에서 고객 대신 생성, 관리 및 사용하는 KMS 키
- 키 정책, 키 삭제 등의 제어 권한이 없거나 제한이 있음
- 3) AWS의 키 (AWS Owned Keys)
- AWS 서비스가 여러 AWS 계정에서 사용하기 위해 소유하고 관리하는 KMS 키 모음
- 1) 고객 관리형 키 (Customer Managed keys)
CloudHSM
- KMS는 AWS에서 관리하는 SW방식의 암호화
- CloudHSM은 AWS에서 제공하는 하드웨어 암호화 장비를 통한 하드웨어 방식의 암호화
- KMS와 다르게 암호화 키관리는 사용자(클라이언트)가 해야함
- 고객 제공 키(SSE-C, Customer Provided Keys)에 적합한 방식
KMS 다중 리전 키 (Multi-Region Keys)
- 기본적으로 단일 리전에 키를 가지고 있지만 이 경우 여러 리전에서 동일한 키를 가지고 있는 것을 뜻한다.
- 다중 리전 키의 각 세트에는 동일한 키 구성요소와 키 ID가 있다. 그렇기 때문에 AWS KMS를 다시 암호화하거나 크로스리전 호출을 수행하지 않고 하나의 AWS 리전에서 데이터를 암호화할 수 있다. 이 암호화된 데이터를 다른 리전에서 복호화(원래는 그 리전에 맞는 키)를 할 수 있다.
- 예를들어, 시드니의 복제본 키를 사용하여 데이터를 암호화하고, 데이터를 오레곤으로 보낸다. 오레곤에서는 복제 키를 사용하여 암호를 복호화할 수 있다. (리전이 다름에도 불구하고)
- 즉, 동일한 키를 사용하면 다른 리전의 데이터를 서로 다른 키로 다시 암호화 및 복호화할 필요 없음 (복제 키면 모두 가능)
- Amazon DynamoDB 글로벌 테이블 및 DynamoDB 암호화, 멀티 리전의 복제된 S3 버킷의 암호화 등에 사용 가능하다.
실습
- KMS를 검색해 서비스에 들어간다.
- AWS에서 직접 생성한 AWS 관리형키(S3, RDS 등등...)
- 이때는 키 관리자, 사용자, 암호화 구성 등등 수정이 불가하다.
- 키를 직접 만든는 고객 관리형 키(대칭, 비대칭)가 있으며 키를 사용하는 사람, 관리하는 사람, 다른 AWS 계정에 권한을 부여할 수 있다.
- 반면 키 관리자, 사용자, 암호화, 활성화, 비활성화 등등 수정할 수 있다.
'Cloud Infra Architecture (AWS) > AWS SAA-C03' 카테고리의 다른 글
AWS Certificate Manager (ACM)이란? (0) | 2023.01.12 |
---|---|
AWS Secrets Manager란? (0) | 2023.01.12 |
AWS Cognito, AWS Single Sing-On이란? (0) | 2023.01.12 |
AWS Step Functions & Amazon AppFlow란? (0) | 2023.01.12 |
AWS Amazon MQ 및 AWS API Gateway란? (0) | 2023.01.12 |