AWS의 암호화 및 인증서 관리

AWS에서 애플리케이션 배포하기

Dunieski Otano

Amazon Web Services Solutions Architect

분실된 백업 디스크

  • 백업 드라이브가 운송 중 분실됩니다
  • 저장 시 암호화되어 있다면 도둑에게는 무용지물입니다
  • TLS는 전송 중인 데이터에도 같은 역할을 합니다

저장 데이터 암호화를 나타내는 자물쇠로 보호된 디스크와 보호되지 않은 디스크 비교

AWS에서 애플리케이션 배포하기

저장 데이터 암호화 vs 전송 중 데이터 암호화

2단 비교: 왼쪽은 KMS 키로 보호되는 RDS와 S3 아이콘을 통한 저장 데이터 암호화, 오른쪽은 클라이언트에서 Lambda로 이어지는 전송 중 TLS 터널

  • 저장 데이터(At rest): 디스크에 저장된 데이터가 암호화됩니다
  • 저장 데이터 암호화에는 주로 KMS를 통한 키가 사용됩니다
  • 전송 중 데이터(In transit): 네트워크로 이동하는 데이터가 암호화됩니다
  • 전송 중 데이터 암호화에는 TLS 인증서가 사용됩니다
AWS에서 애플리케이션 배포하기

클라이언트 측 vs 서버 측 암호화


서버 측

  • 서비스가 데이터를 수신한 후 암호화합니다
  • 가장 간단한 방식이며, 보통 KMS 키를 사용해 AWS가 이 단계를 관리합니다

클라이언트 측

  • 데이터가 코드를 벗어나기 전에 직접 암호화합니다
  • 서비스는 암호문만 저장하며 평문은 저장하지 않습니다
AWS에서 애플리케이션 배포하기

공개 인증서 vs 비공개 인증서

  • ACM: 도메인용 무료 공개 TLS 인증서를 제공합니다
  • 로드 밸런서, CloudFront, API Gateway에서 사용됩니다
  • AWS Private CA: 내부 전용 비공개 인증서를 발급합니다
  • Private CA는 내부 서비스와 mTLS를 지원합니다

왼쪽은 로드 밸런서와 CloudFront에 적용된 ACM 무료 공개 인증서, 오른쪽은 내부 서비스 간 mTLS를 위한 Private CA 인증서

AWS에서 애플리케이션 배포하기

KMS 키와 키 교체

  • AWS 관리형 키: AWS가 생성하고 교체합니다
  • 고객 관리형 키: 정책과 교체 주기를 직접 제어합니다
  • 자동 교체: 매년 새로운 키 자료가 생성되지만 키 ID는 동일합니다
  • 애플리케이션은 동일한 키 참조를 계속 사용합니다

KMS 키 유형 비교: 왼쪽은 자동 교체되는 AWS 관리형 키, 오른쪽은 키 정책을 설정할 수 있고 연 단위로 교체되는 고객 관리형 키

AWS에서 애플리케이션 배포하기

계정 간 키 액세스

계정 간 KMS 키 액세스: 계정 A의 키에 계정 B의 사용 권한을 부여하는 키 정책이 설정되어 있으며, 계정 B는 키 자료가 KMS를 벗어나지 않고도 암호화와 복호화를 수행합니다

  • 키 정책은 KMS 키를 사용할 수 있는 대상을 제어합니다
  • 정책을 통해 다른 계정에 키 사용 권한을 부여할 수 있습니다
  • 키는 KMS를 벗어나지 않습니다
  • 계정 간 암호화된 리소스 공유가 가능해집니다
AWS에서 애플리케이션 배포하기

암호화와 인증서 통합 적용

  • 전송 중: ACM 인증서가 에지에서 TLS를 종료합니다
  • 저장 시: KMS 키가 저장된 데이터를 암호화합니다
  • 키는 자동으로 교체되고 인증서는 자동으로 갱신됩니다
  • 네트워크부터 디스크까지 다층으로 보호됩니다

다층 암호화 구조: 에지에서 전송 중 TLS를 종료하는 ACM 인증서와 저장 데이터를 암호화하는 KMS 키, 두 가지 모두 매년 자동으로 갱신 및 교체됨

AWS에서 애플리케이션 배포하기

연습해 봅시다!

AWS에서 애플리케이션 배포하기

Preparing Video For Download...