기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon ElastiCache 클러스터의 미사용 암호화 모니터링
Abhishek Agawane, Amazon Web Services
요약
Amazon ElastiCache는 클라우드상의 인 메모리 데이터 스토어 또는 캐시 환경을 배포하기 위한 확장 가능하고 비용 효율적인 고성능 캐싱 솔루션을 제공하는 Amazon Web Service(AWS) 서비스입니다. 처리량이 높고 지연 시간이 짧은 인메모리 데이터 스토어에서 데이터를 검색합니다. 이 기능은 캐싱, 세션 스토어, 게임, 지리 공간 서비스, 실시간 분석 및 대기열과 같은 실시간 사용 사례에 널리 사용됩니다. ElastiCache는 1밀리초 미만의 응답 시간을 제공하는 Redis 및 Memcached 데이터 스토어를 제공합니다.
데이터 암호화는 권한 없는 사용자가 Redis 클러스터 및 관련 캐시 스토리지 시스템에서 사용 가능한 민감한 데이터를 읽는 것을 방지하는 데 도움이 됩니다. 여기에는 영구 미디어에 저장된 데이터인 저장 데이터와 클라이언트와 캐시 서버 사이의 네트워크를 통해 이동하는 동안 가로챌 수 있는 데이터인 전송 중 데이터가 포함됩니다.
AtRestEncryptionEnabled파라미터를 로 설정하여 복제 그룹을 생성할 때 ElastiCache(Redis OSS)에 대한 미사용 데이터 암호화를 활성화할 수 있습니다true. 이 파라미터를 활성화하면 동기화, 백업 및 스왑 작업 중에 디스크를 암호화하고 Amazon Simple Storage Service(S3)에 저장된 백업을 암호화합니다. 기존 복제 그룹에 대해서는 미사용 데이터 암호화를 설정할 수 없습니다. 복제 그룹을 생성할 때 다음 두 가지 방법으로 저장 데이터 암호화를 활성화할 수 있습니다.
저장된 서비스 관리형 암호화를 사용하는 기본 옵션을 선택합니다.
고객 관리형 키를 사용하고 AWS Key Management Service ()에서 키 ID 또는 Amazon 리소스 이름(ARN)을 제공합니다AWS KMS.
이 패턴은 API 호출을 모니터링하고 CreateReplicationGroup작업에 대한 Amazon EventBridge 이벤트 이벤트를 생성하는 보안 제어를 제공합니다. 이 이벤트는 Python 스크립트를 실행하는 AWS Lambda 함수를 호출합니다. 함수는 이벤트 JSON 입력에서 복제 그룹 ID를 가져오고 다음 검사를 수행하여 암호화되지 않은 클러스터가 있는지 확인합니다.
AtRestEncryptionEnabled키가 존재하는지 확인합니다.AtRestEncryptionEnabled있는 경우는 값을 확인하여 값이 인지 확인합니다true.AtRestEncryptionEnabled값이 로 설정된 경우false는 Amazon Simple Notification Service(Amazon SNS) 알림을 사용하여 위반을 추적하고 사용자가 제공한 이메일 주소로 위반 메시지를 보내는 변수를 설정합니다.
사전 조건 및 제한 사항
사전 조건
활성. AWS 계정
제공된 Lambda 코드를 업로드하기 위한 S3 버킷입니다.
위반 알림을 받으려는 이메일 주소입니다.
모든 API 로그에 액세스할 수 있도록 ElastiCache 로깅이 활성화되었습니다.
제한 사항
이 탐지 제어는 리전별 제어이므로 모니터링 AWS 리전 하려는 각에 배포해야 합니다.
이 컨트롤은 Virtual Private Cloud(VPC)에서 실행 중인 복제 그룹을 지원합니다.
컨트롤은 다음 노드 유형을 실행하는 복제 그룹을 지원합니다.
R7g, R6gd, R6g, R5, R4, R3
M7g, M6g, M5, M4, M3
T4g, T3, T2
C7gn
제품 버전
ElastiCache(Redis OSS) 버전 3.2.6 이상 및 Valkey 7.2 이상 지원
아키텍처
워크플로 아키텍처

사용자는 AWS Management Console, AWS Command Line Interface (AWS CLI) 또는 API 호출을 통해 ElastiCache 복제 그룹을 시작합니다.
ElastiCache는
CreateReplicationGroupAPI가 호출될 때 EventBridge 이벤트를 생성합니다.EventBridge 규칙은 규정 준수 확인을 위해 Lambda 함수를 트리거하고 호출합니다.
Lambda 함수는 이벤트를 처리하고 ElastiCache 클러스터에서 미사용 데이터 암호화가 활성화되어 있는지 확인합니다.
암호화 위반이 감지되면 Lambda 함수는 SNS 주제에 알림 메시지를 게시합니다.
Amazon SNS는 관리자에게 암호화 규정 준수 위반에 대한 이메일 알림을 전송합니다.
자동화 및 규모 조정
를 사용하는 경우 AWS CloudFormation StackSets를 사용하여 모니터링하려는 여러 계정에이 템플릿을 배포할 AWS Organizations수 있습니다.
도구
AWS 서비스
Amazon ElastiCache – Amazon ElastiCache를 사용하면 AWS 클라우드에서 분산된 인 메모리 캐시 환경을 손쉽게 설정, 관리 및 규모 조정할 수 있습니다. 분산 캐시 환경 배포 및 관리와 관련된 복잡성을 제거하면서 크기 조정이 가능하고 비용 효율적인 고성능 인 메모리 캐시를 제공합니다. ElastiCache는 Redis 엔진 및 Memcached 엔진 모두와 함께 작동합니다.
AWS CloudFormation
를 사용하면 AWS 리소스를 모델링 및 설정하고, 리소스를 빠르고 일관되게 프로비저닝하고, 수명 주기 동안 관리할 수 있습니다. 템플릿을 사용하여 리소스와 해당 종속성을 설명하고 리소스를 개별적으로 관리하는 대신 스택으로 함께 시작 및 구성할 수 있습니다. 여러 및에서 스택을 관리하고 프로비저닝할 수 AWS 계정 있습니다 AWS 리전. Amazon EventBridge는 AWS 리소스의 변경 사항을 설명하는 시스템 이벤트 스트림을 거의 실시간으로 제공합니다. EventBridge는 운영 변경 발생 시 이를 인지하고 환경에 응답하기 위한 메시지를 보내고, 함수를 활성화하고, 변경을 수행하고, 상태 정보를 캡처하여 필요에 따라 수정 조치를 취합니다.
AWS Lambda
는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 컴퓨팅 서비스입니다. Lambda는 필요 시에만 코드를 실행하며, 일일 몇 개의 요청에서 초당 수천 개의 요청까지 자동으로 확장이 가능합니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되지 않습니다. Amazon SNS
는 웹 서버 및 이메일 주소를 포함하여 게시자와 클라이언트 간의 메시지 전송을 조정하고 관리합니다. 구독자는 구독하는 주제에 게시된 모든 메시지를 수신하며 주제에 대한 모든 구독자는 동일한 메시지를 수신합니다.
코드
이 패턴의 코드는 GitHub Monitor Amazon ElastiCache 클러스터의 저장 데이터 암호화
모범 사례
배포
이 컨트롤을 배포하기 전에 AWS CloudTrail 가 ElastiCache API 호출을 로깅하는지 확인합니다.
이는 리전별 컨트롤입니다. ElastiCache를 사용하는 각에 컨트롤 AWS 리전 을 배포합니다.
프로덕션에 배포하기 전에 개발/테스트 환경에서 솔루션을 검증합니다.
보안
암호화 키에 대한 향상된 제어를 위해 고객 관리형 KMS 키를 사용합니다.
AWS Identity and Access Management (IAM) 권한을 검토하여 Lambda 실행 역할에 대한 최소 권한 액세스를 보장합니다.
배달 못한 편지 대기열의 메시지에 대한 알림을 설정합니다.
운영
적절한 로그 보존을 설정하여 규정 준수 요구 사항과 비용의 균형을 맞춥니다.
Lambda의 예약된 동시성을 조정하여 ElastiCache 생성 빈도에 따라 조정합니다.
팀 알림을 받으려면 Amazon SNS에 여러 이메일 주소를 구독하세요.
모니터링
Amazon CloudWatch 경보를 검토하여 경보 임계값이 운영 요구 사항과 일치하는지 확인합니다.
Lambda 지표 실행 기간 및 오류율을 정기적으로 모니터링합니다.
정기적으로 위반을 감사하여 암호화 규정 준수 알림을 검토합니다.
에픽
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
GitHub에서 코드를 다운로드합니다. | GitHub에서 코드 리포지토리 | 클라우드 아키텍트 |
Lambda 배포 패키지를 생성합니다. | Python 코드에서 두 개의 .zip 파일을 생성합니다.
| 클라우드 아키텍트 |
코드를 S3 버킷에 업로드합니다. |
| 클라우드 아키텍트 |
CloudFormation 템플릿을 배포합니다. | S3 버킷과 동일한에서 CloudFormation 콘솔 | 클라우드 아키텍트 |
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
S3 버킷 이름을 제공합니다. | 첫 번째 에픽에서 생성하거나 선택한 S3 버킷의 이름을 입력합니다. 이 S3 버킷에는 Lambda 코드에 대한 .zip 파일이 포함되어 있으며 평가할 CloudFormation 템플릿 및 리소스 AWS 리전 와 동일한에 있어야 합니다. | 클라우드 아키텍트 |
S3 키를 입력합니다. | S3 버킷에 있는 Lambda 코드 .zip 파일의 위치를 앞에 슬래시 없이 입력합니다(예: | 클라우드 아키텍트 |
이메일 주소를 입력합니다. | 위반 알림을 받을 사용 중인 이메일 주소를 입력합니다. | 클라우드 아키텍트 |
로깅 수준을 지정합니다. | 로깅 수준 및 세부 정보를 지정합니다.
| 클라우드 아키텍트 |
| 작업 | 설명 | 필요한 기술 |
|---|---|---|
이메일 구독을 확인합니다. | CloudFormation 템플릿이 성공적으로 배포되면 제공한 이메일 주소로 구독 메시지가 전송됩니다. 알림을 받으려면 이 이메일 구독을 확인해야 합니다. | 클라우드 아키텍트 |
문제 해결
| 문제 | Solution |
|---|---|
Lambda 함수가 트리거되지 않음 | 증상: ElastiCache 클러스터를 생성하거나 수정한 후 CloudWatch에 로그가 없습니다. 솔루션:
|
이메일 알림 없음 | 증상: Lambda 함수가 성공적으로 실행되지만 이메일 알림이 수신되지 않습니다. 솔루션:
|
권한 문제 | 증상: Lambda 함수 CloudWatch 로그의 액세스 거부 오류입니다. 솔루션:
|
관련 리소스
CloudFormation 콘솔에서 스택 생성(CloudFormation 문서)
ElastiCache(Redis OSS)의 미사용 데이터 암호화(ElastiCache 설명서)