[GCP Associate Cloud Engineer] 암호화(Encryption)
데이터 암호화
클라우드에 데이터를 이동하거나 저장할 때, 보안이 중요하다.
암호화되지 않은 데이터를 저장하면, 무단 접근 시 데이터가 그대로 노출될 위험이 있다.
암호화는 데이터를 보호하는 주요 방법 중 하나로, 데이터를 허가받지 않은 접근으로부터 안전하게 지킨다.
따라서 데이터 손실 시에도 암호화 덕분에 데이터 보호 가능하다.
방어의 법칙(Defense in Depth): 데이터의 저장, 전송, 사용 단계에서 모두 암호화 적용.
데이터의 상태
데이터는 세 가지 주요 상태 중 하나에 있을 수 있다
데이터가 저장된 상태(Data at Rest)
저장 장치나 백업에 데이터가 저장된 상태로 하드 디스크의 데이터, 데이터베이스 내부의 데이터, 데이터베이스 백업 및 아카이브등이 해당된다.
이는 스토리지 암호화를 통해 보호한다.
데이터가 이동 중인 상태(Data in Motion)
네트워크를 통해 데이터를 전송하는 중인 상태로 온프레미스 스토리지에서 클라우드 스토리지로 데이터 복사하거나 애플리케이션과 데이터베이스 간 데이터 송수신 상태가 해당된다.
세부적으로 따지면 클라우드 내의 장치 간 데이터 전송을 하는 클라우드 내부 전송, 인터넷을 통한 클라우드와 외부 간 데이터 전송을 하는 클라우드 외부 전송이 있다.
클라우드 외부 전송은 더 높은 수준의 보안이 필요하다.
이는 TLS(Transport Layer Security) 같은 프로토콜을 사용하여 네트워크 전송 중 데이터를 보호하는데, 클라우드 외부 전송에 더 높은 보안 수준 적용한다.
데이터가 사용 중인 상태(Data in Use)
활성 데이터가 비영구적(non-persistent) 상태에서 처리되는 경우로 RAM에 저장된 데이터가 해당된다.
이는 데이터가 RAM이나 CPU 내부에서 처리되는 동안 보안 유지된다.
데이터 암호화 접근법
대칭 키 암호화(Symmetric Key Encryption)
하나의 키를 사용하여 데이터를 암호화 및 복호화하는 것으로 평문을 키를 사용해 암호문으로 변환하고, 복호화 시 동일한 키로 암호문을 평문으로 복원한다.
장점: 처리 속도가 빠르고, 구현이 간단하다.
단점
- 키 관리 문제
암호화 키를 안전하게 보관해야 하며, 키가 유출되면 데이터가 위험에 노출된다.
- 키 공유 문제
데이터를 암호화 및 복호화하는 시스템 간에 키를 안전하게 공유하는 것이 어렵다.
비대칭 키 암호화(Asymmetric Key Encryption)
두 개의 키를 사용하여 데이터를 공개 키로 암호화하고, 데이터를 개인 키로 복호화한다.
장점
공개 키를 모두에게 공유 가능. 개인 키만 안전하게 보호하면 되기 때문에 키 공유 문제를 해결했다.
단점
대칭 키 암호화에 비해 속도가 느리다.
보안 강도
RSA와 같은 강력한 알고리즘을 사용하면, 공개 키로 개인 키를 추출하는 데 수년이 걸릴 수 있다.
암호화 적용 단계
저장 데이터(Data at Rest)
하드 디스크, 데이터베이스, 백업 데이터 등에 암호화 적용
전송 중 데이터(Data in Transit)
TLS 같은 프로토콜 사용하여 애플리케이션과 데이터베이스 간, 또는 클라우드 외부로의 데이터 전송 시 암호화 적용
.
사용 중 데이터(Data in Use)
RAM에서 처리되는 데이터도 보호
Cloud KMS
Cloud KMS는 Google Cloud에서 암호화 키 생성, 관리, 제어를 지원하는 서비스이다.
대칭 키와 비대칭 키를 생성하고, 이를 활용해 데이터 암호화 및 복호화, 서명 등을 수행할 수 있다.
키 생성 및 관리
Google Cloud에서 대칭 및 비대칭 키 생성하고, 키 사용을 특정 애플리케이션 및 GCP 서비스로 제한 가능하다.
데이터 암호화
디스크, Cloud Storage, 데이터베이스 등 다양한 GCP 리소스의 데이터를 암호화하고, API를 통해 암호화, 복호화, 데이터 서명 기능 제공한다.
온프레미스 키 통합
온프레미스에서 생성된 암호화 키를 KMS에 통합해 사용할 수 있다.
GCP 서비스와 통합
KMS는 GCP의 거의 모든 데이터 암호화 서비스와 통합 가능하다.
Cloud KMS 키 옵션
Google 관리 키 (Google Managed Key)
Google에서 키를 완전히 관리하여 사용자 설정 불필요하기 때문에 간단한 사용 사례에 적합하다.
고객 관리 키 (Customer Managed Key)
사용자가 KMS에서 암호화 키를 생성하고 직접 관리하기 때문에 키의 수명, 접근 제어 등을 사용자가 설정 가능하여 민감한 데이터를 직접 관리해야 하는 경우 적합하다.
고객 제공 키 (Customer Supplied Key)
사용자가 온프레미스에서 생성한 키를 KMS에 등록해 사용하여 외부 키를 사용하여 GCP 리소스를 암호화한다.
키 관리 및 제어를 온프레미스에서 계속 유지해야 하는 경우 적합하다.
사용 예시
디스크 암호화: Compute Engine 디스크의 데이터 암호화.
스토리지 암호화: Cloud Storage에 저장된 데이터 암호화.
데이터베이스 암호화: GCP에서 관리되는 데이터베이스의 데이터 암호화.
암호화 키 통합: 온프레미스와 클라우드 환경의 암호화 키를 통합 관리.