Amazon ElastiCache 클러스터의 미사용 암호화 모니터링 - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon ElastiCache 클러스터의 미사용 암호화 모니터링

환경: 프로덕션

기술: 보안, 자격 증명, 규정 준수, 데이터베이스, 인프라, 클라우드 네이티브

워크로드: 오픈 소스

AWS 서비스: 아마존 SNS, 아마존 CloudWatch, 아마존 ElastiCache

요약

ElastiCache Amazon은 클라우드에 인메모리 데이터 스토어 또는 캐시 환경을 배포하기 위한 확장 가능하고 비용 효율적인 고성능 캐싱 솔루션을 제공하는 Amazon Web Services (AWS) 서비스입니다. 처리량이 높고 지연 시간이 짧은 인메모리 데이터 스토어에서 데이터를 검색합니다. 이 기능은 캐싱, 세션 스토어, 게임, 지리 공간 서비스, 실시간 분석 및 대기열과 같은 실시간 사용 사례에 널리 사용됩니다. ElastiCache 밀리초 미만의 응답 시간을 제공하는 Redis 및 Memcached 데이터 스토어를 제공합니다.

데이터 암호화는 권한 없는 사용자가 Redis 클러스터 및 관련 캐시 스토리지 시스템에서 사용 가능한 민감한 데이터를 읽는 것을 방지하는 데 도움이 됩니다. 여기에는 영구 미디어에 저장된 데이터인 저장 데이터와 클라이언트와 캐시 서버 사이의 네트워크를 통해 이동하는 동안 가로챌 수 있는 데이터인 전송 중 데이터가 포함됩니다.

복제 그룹을 생성할 때 파라미터를 true로 설정하여 ElastiCache Redis용 미사용 암호화를 활성화할 수 있습니다. AtRestEncryptionEnabled 이 파라미터를 활성화하면 동기화, 백업 및 스왑 작업 중에 디스크를 암호화하고 Amazon Simple Storage Service(S3)에 저장된 백업을 암호화합니다. 기존 복제 그룹에 대해서는 미사용 데이터 암호화를 설정할 수 없습니다. 복제 그룹을 생성할 때 다음 두 가지 방법으로 저장 데이터 암호화를 활성화할 수 있습니다.

  • 저장된 서비스 관리형 암호화를 사용하는 기본 옵션을 선택합니다.

  • 고객 관리형 키를 사용하고 AWS Key Management Service(AWS KMS)의 키 ID 또는 Amazon 리소스 이름(ARN)을 제공합니다.

이 패턴은 API 호출을 모니터링하고 CreateReplication그룹 작업에서 Amazon CloudWatch Events 이벤트를 생성하는 보안 제어를 제공합니다. 이 이벤트는 Python 스크립트를 실행하는 AWS Lambda 함수를 직접 호출합니다. 함수는 이벤트 JSON 입력에서 복제 그룹 ID를 가져오고 다음 검사를 수행하여 보안 위반 여부를 확인합니다.

  • AtRestEncryptionEnabled키가 존재하는지 확인합니다.

  • AtRestEncryptionEnabled존재하는 경우 값을 검사하여 값이 참인지 확인합니다.

  • AtRestEncryptionEnabled값이 false로 설정된 경우, Amazon Simple Notification Service (Amazon SNS) 알림을 사용하여 위반을 추적하고 사용자가 제공한 이메일 주소로 위반 메시지를 보내는 변수를 설정합니다.

사전 조건 및 제한 사항

사전 조건

  • 활성 상태의 AWS 계정

  • 제공된 Lambda 코드를 업로드하기 위한 S3 버킷입니다.

  • 위반 알림을 받으려는 이메일 주소입니다.

  • ElastiCache 모든 API 로그에 액세스할 수 있도록 로깅이 활성화되었습니다.

제한 사항

  • 이 탐지 제어는 리전별이므로 모니터링하려는 각 AWS 리전에 배포해야 합니다.

  • 이 컨트롤은 Virtual Private Cloud(VPC)에서 실행 중인 복제 그룹을 지원합니다.

  • 컨트롤은 다음 노드 유형을 실행하는 복제 그룹을 지원합니다.

    • R5, R4, R3

    • M5, M4, M3

    • T3, T2

제품 버전

  • ElastiCache Redis 버전 3.2.6 이상의 경우

아키텍처

워크플로 아키텍처

자동화 및 규모 조정

  • AWS Organizations를 사용하는 경우, AWS StackSets Cloudformation을 사용하여 모니터링하려는 여러 계정에 이 템플릿을 배포할 수 있습니다.

도구

서비스

  • Amazon ElastiCache — Amazon을 ElastiCache 사용하면 AWS 클라우드에서 분산된 인메모리 캐시 환경을 쉽게 설정, 관리 및 확장할 수 있습니다. 분산 캐시 환경 배포 및 관리와 관련된 복잡성을 제거하면서 크기 조정이 가능하고 비용 효율적인 고성능 인메모리 캐시를 제공합니다. ElastiCache Redis 및 Memcached 엔진 모두에서 작동합니다.

  • AWS CloudFormation — AWS는 AWS CloudFormation 리소스를 모델링 및 설정하고, 빠르고 일관되게 프로비저닝하고, 수명 주기 전반에 걸쳐 관리할 수 있도록 지원합니다. 템플릿을 사용하여 리소스와 해당 종속성을 설명하고, 리소스를 개별적으로 관리하는 대신 스택으로 함께 시작하고 구성할 수 있습니다. 여러 AWS 계정 및 AWS 리전에서 스택을 관리하고 프로비저닝할 수 있습니다.

  • AWS Cloudwatch Events — Amazon CloudWatch Events는 AWS 리소스의 변경 사항을 설명하는 시스템 이벤트의 스트림을 거의 실시간으로 제공합니다. CloudWatch 이벤트는 운영 변경이 발생하는 즉시 이를 인지하고 필요에 따라 수정 조치를 취하여 환경에 대응하고, 기능을 활성화하고, 변경하고, 상태 정보를 캡처합니다.

  • AWS Lambda - AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있도록 지원하는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 확장이 가능합니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다. 

  • Amazon SNS – Amazon Simple Notification Service(SNS) 는 게시자와 클라이언트 간에 웹 서버와 이메일 주소를 비롯한 메시지 전송을 조정 및 관리합니다. 구독자는 구독하는 주제에 게시된 모든 메시지를 수신하며 주제에 대한 모든 구독자는 동일한 메시지를 수신합니다.

코드

이 패턴에는 두 개의 파일이 포함된 첨부 파일이 포함됩니다.

  • ElasticCache-EncryptionAtRest.zip은(는) 보안 제어(Lambda 코드)가 포함된 압축 파일입니다.

  • elasticache_encryption_at_rest.yml보안 제어를 배포하는 CloudFormation 템플릿입니다.

이러한 파일을 사용하는 방법에 대한 자세한 내용은 에픽 섹션을 참조하세요.

에픽

작업설명필요한 기술
코드를 S3 버킷에 업로드합니다.

새 S3 버킷을 생성하거나 기존 S3 버킷을 사용하여 첨부된 ElastiCache-EncryptionAtRest.zip 파일(Lambda 코드)을 업로드합니다. 이 버킷은 평가하려는 리소스와 동일한 AWS 리전에 있어야 합니다.

클라우드 아키텍트
CloudFormation 템플릿을 배포합니다.

S3 버킷과 동일한 AWS 리전에서 Cloudformation 콘솔을 열고 첨부 파일에 제공된 elasticache_encryption_at_rest.yml 파일을 배포합니다. 다음 에픽에서 템플릿 파라미터에 대한 값을 입력합니다.

클라우드 아키텍트
작업설명필요한 기술
S3 버킷 이름을 제공합니다.

첫 번째 에픽에서 생성하거나 선택한 S3 버킷의 이름을 입력합니다. 이 S3 버킷에는 Lambda 코드용.zip 파일이 들어 있으며, 평가될 템플릿 및 리소스와 동일한 CloudFormation AWS 리전에 있어야 합니다. 

클라우드 아키텍트
S3 키를 입력합니다.

S3 버킷에 있는 Lambda 코드 .zip 파일의 위치를 앞에 슬래시 없이 입력합니다(예: ElasticCache-EncryptionAtRest.zip 또는 controls/ElasticCache-EncryptionAtRest.zip).

클라우드 아키텍트
이메일 주소를 입력합니다.

위반 알림을 받을 사용 중인 이메일 주소를 입력합니다. 

클라우드 아키텍트
로깅 수준을 지정합니다.

로깅 수준 및 상세 정보를 지정합니다. Info는 애플리케이션 진행 상황에 대한 자세한 정보 메시지를 지정하며 디버깅용으로만 사용해야 합니다. Error는 애플리케이션을 계속 실행할 수 있는 오류 이벤트를 지정합니다. Warning은 잠재적으로 유해한 상황을 지정합니다.

클라우드 아키텍트
작업설명필요한 기술
이메일 구독을 확인합니다.

CloudFormation 템플릿이 성공적으로 배포되면 제공한 이메일 주소로 구독 이메일 메시지가 전송됩니다. 알림을 받기 시작하려면 이 이메일 구독을 확인해야 합니다.

클라우드 아키텍트

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.