일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- merge
- pandas
- AWS
- SSA
- node
- EC2
- Class
- socket io
- RDS
- 튜플
- 중급파이썬
- MongoDB
- NeXT
- wetube
- 채팅
- 파이썬
- dict
- crud
- SAA
- docker
- async
- flask
- Vue
- 카톡
- lambda
- S3
- git
- react
- TypeScript
- Props
- Today
- Total
초보 개발자
AWS KMS 암복호화 과정 본문
KMS에서 커스텀 키(마스터 키)를 생성, 이를 이용해 데이터 키를 생성할 수 있다.
커스텀 키는 전적으로 AWS에서 관리하며 로컬로 내보내기가 불가능하다.
커스텀 키를 이용해서 데이터 키를 생성한다. 이 데이터 키를 이용해서 파일을 암호화한다. 그리고 마스터 키를 이용해서 데이터 키를 암호화 한 뒤, 데이터 키와 암호화 되기 전의 파일을 삭제한다. 이 후 복호화 하고 싶을 때 커스텀 키를 사용해서 암호화 된 데이터 키를 데이터 키로 바꾼 뒤 이 데이터 키를 이용해서 암호화 된 데이터를 복호화 한다.
남에게 보여주고 싶지 않은 나의 비밀 일기장 텍스트 파일이 있다고 해보자. 이 파일을 내 바탕화면에 두었다.
어느날 친구가 놀러와서 내가 화장실에 있는동안 비밀 일기장 파일을 연다고 가정하면 내 비밀스러운 일기가 다 공개되어버린다.
이 때 키라는걸 사용해서 암호화를 한다. 암호화를 하면 내 일기장에 적혀있는 텍스트가 한글이아닌 특수문자로 변환되어 친구가 읽고싶어도 읽을 수 없는 형태로 변경이 된다.
키 역시 바탕화면에 같이 두었다고 해보자. 컴퓨터를 좀 잘하는 친구라면, 이 키를 이용해서 복호화 할 수도 있다. 이렇다면 내가 키를 이용해서 암호화 한 의미가 사라져버리게 된다.
그렇다면 키 역시 암호화를 시키면 어떨까?. 새로운 키2를 만들어서 이 키2로 키1(위에서 사용한 키)를 암호화 시켜버린다. 그리고 키2를 바탕화면이 아닌 찾기 어려운 폴더에 넣어두었다.
이 경우라면, 내가 화장실 간 동안 친구가 바탕화면에 있는 키1(키2에 의해 암호화 됨)를 사용해서 비밀 일기장을 해독할 수 없다. 비밀일기장을 해독하기 위해선 키2를 이용해서 키1을 복호화 한 뒤 복호화 된 키1이 필요하다.
친구가 옆에 컴퓨터를 더 잘하는 친구2가 키2의 위치를 찾아버린다면, 앞서 키3던 키4던 몇개를 만들더라도 같은 문제가 발생할 것이다.
그래서 나는 어려운 폴더에 있는 키2를 USB에 넣고 그 USB를 금고에 넣어두었다.
이렇게 되면 나는 비밀 일기장을 읽고싶을 때, 금고에 있는 키2를 이용해서 키1을 복호화 하고, 이 키1을 통해서 비밀일기장을 복호화 하면 된다.
물론 금고가 털리면 똑같겠지만, 전에 비하면 더욱 안전해진 것이 아닐까.
마스터 키(AWS에서 만든 CMK) : 키2
데이터 키(마스터키로 만든 암호화 키) : 키1
금고 : AWS KMS서비스
비밀 일기장 : 개인정보와 같은 중요한 정보
이게 일반적인 흐름인데.
지속적으로 데이터를 암호화하고 싶다면, 같은 데이터 키로 암호화를 해야할 것이고, 당연히 같은 데이터 키로 복호화를 해야할 것이다.
즉 암호화 할 때마다 커스텀 키를 이용해서 새로운 데이터 키를 생성해서 암호화해버리면, 관리해야할 키가 수 없이 많아질 것이다.
--> 그럼 단 하나의 데이터 키를 발급, 이를 암호화 해둠. 이 암호화 된 데이터키를 어딘가에 저장함.
암호화 하고 싶은 데이터가 있다면 아래의 과정을 반복해야하나 ? 이게 베스트 프랙티스란건가? 이에 대한 해답을 쉽게 찾을 수 없었다. 실무에선 어떤식으로 사용한다는 거지..
암호화
1. 암호화 된 데이터 키를 가지고 와서 복호화 한 뒤,
2. 이 복호화된 데이터키로 데이터를 암호화
복호화
1. 암호화 된 데이터 키를 가지고 와서 복호화 한 뒤,
2. 이 복호화된 데이터키로 암호화 된 데이터를 복호화
'AWS' 카테고리의 다른 글
「AWS」EC2에 접속하는 4가지 방법 (0) | 2024.09.22 |
---|---|
[CDK] Unable to resolve AWS account to use. (0) | 2024.01.13 |
AWS Snapshot storage (0) | 2023.08.07 |
AWS RDS 관련 질문 (0) | 2023.06.22 |
AWS Compute optimizer를 활용하여 EC2타입 변경. (0) | 2023.06.21 |