새 Amazon Redshift 클러스터에 필수 SSL 엔드포인트가 있는지 확인 - AWS 권장 가이드

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

새 Amazon Redshift 클러스터에 필수 SSL 엔드포인트가 있는지 확인

작성자: Priyanka Chaudhary(AWS)

환경: 프로덕션

기술: 보안, 자격 증명, 규정 준수, 분석

AWS 서비스: AWS CloudTrail, Amazon CloudWatch Events, Amazon Redshift, Amazon SNS, AWS Lambda

요약

이 패턴은 보안 소켓 계층(AWS) 엔드포인트 없이 새 Amazon Redshift 클러스터가 시작될 때 자동으로 알리는 Amazon Web Services(SSL) CloudFormation 템플릿을 제공합니다.

Amazon Redshift는 완전 관리형 페타바이트 규모 클라우드 기반 데이터 웨어하우스 서비스입니다. 대규모 데이터 세트 저장 및 분석을 위해 설계되었습니다. 또한 대규모 데이터베이스 마이그레이션을 수행하는 데에도 사용됩니다. 보안을 위해 Amazon Redshift는 사용자의 SQL 서버 클라이언트 애플리케이션과 Amazon Redshift 클러스터 간의 연결을 암호화SSL할 수 있도록 지원합니다. SSL 연결을 요구하도록 클러스터를 구성하려면 시작 중에 클러스터와 연결된 require_SSL 파라미터 그룹에서 true 파라미터를 로 설정합니다.

이 패턴과 함께 제공되는 보안 제어는 AWS CloudTrail 로그의 Amazon Redshift API 호출을 모니터링하고 CreateCluster, , ModifyCluster, 및 RestoreFromClusterSnapshot에 대한 Amazon CloudWatch Events 이벤트를 시작합니다CreateClusterParameterGroupModifyClusterParameterGroupAPIs. 이벤트가 이러한 중 하나를 감지하면 AWS Lambda를 APIs호출하여 Python 스크립트를 실행합니다. Python 함수는 나열된 CloudWatch 이벤트에 대한 CloudTrail 이벤트를 분석합니다. Amazon Redshift 클러스터가 생성, 수정 또는 기존 스냅샷에서 복원되거나, 클러스터에 대한 새 파라미터 그룹이 생성되거나, 기존 파라미터 그룹이 수정되면 함수가 클러스터의 require_SSL 파라미터를 확인합니다. 파라미터 값이 인 경우 false함수는 이 알림의 출처가 되는 Lambda의 Amazon Redshift 클러스터 이름, AWS 리전, AWS 계정 및 Amazon 리소스 이름(SNS)과 같은 관련 정보가 포함된 Amazon Simple Notification Service(Amazon ARN) 알림을 사용자에게 전송합니다.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정.

  • 클러스터 서브넷 그룹 및 연결된 보안 그룹이 있는 가상 프라이빗 클라우드(VPC)입니다.

제한 사항

  • 이 보안 제어는 리전별로 적용됩니다. 모니터링할 각 AWS 리전에 배포해야 합니다.

아키텍처

대상 아키텍처

SSL 엔드포인트 없이 새 Amazon Redshift 클러스터가 시작될 때 알림을 보내는 워크플로입니다.

자동화 및 규모 조정

도구

AWS 서비스

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

  • Amazon CloudWatch Events - Amazon CloudWatch Events는 AWS 리소스의 변경 사항을 설명하는 시스템 이벤트의 거의 실시간 스트림을 제공합니다.

  • AWS Lambda - AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고 코드 실행을 지원하는 컴퓨팅 서비스입니다.

  • Amazon Redshift - Amazon Redshift는 클라우드에서 완벽하게 관리되는 페타바이트 규모의 데이터 웨어하우스 서비스입니다.

  • Amazon S3-Amazon Simple Storage Service(S3)는 객체 스토리지 서비스입니다. Amazon S3를 사용하면 인터넷을 통해 언제 어디서든 원하는 양의 데이터를 저장하고 검색할 수 있습니다. 

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

코드

이 패턴에는 다음과 같은 첨부 파일이 포함됩니다.

  • RedshiftSSLEndpointsRequired.zip - 보안 제어를 위한 Lambda 코드입니다.

  • RedshiftSSLEndpointsRequired.yml - 이벤트 및 Lambda 함수를 설정하는 CloudFormation 템플릿입니다.

에픽

작업설명필요한 기술

S3 버킷을 정의합니다.

Amazon S3 콘솔에서 Lambda 코드 .zip 파일을 호스팅할 S3 버킷을 선택하거나 생성합니다. 이 S3 버킷은 모니터링하려는 Amazon Redshift 클러스터와 동일한 AWS 리전에 있어야 합니다. S3 버킷 이름은 전역적으로 고유하며 네임스페이스는 모든 AWS 계정에서 공유됩니다. S3 버킷 이름에는 선행 슬래시를 포함할 수 없습니다.

클라우드 아키텍트

Lambda 코드를 업로드합니다.

첨부 파일 섹션에 제공된 Lambda 코드 .zip 파일을 S3 버킷에 업로드합니다.

클라우드 아키텍트
작업설명필요한 기술

AWS CloudFormation 템플릿을 시작합니다.

S3 버킷과 동일한 AWS 리전에서 AWS CloudFormation 콘솔을 열고 연결된 템플릿 를 배포합니다RedshiftSSLEndpointsRequired.yml. AWS CloudFormation 템플릿 배포에 대한 자세한 내용은 CloudFormation 설명서의 AWS CloudFormation 콘솔에서 스택 생성을 참조하세요.

클라우드 아키텍트

템플릿에서 파라미터를 작성합니다.

템플릿을 시작하면 다음 정보를 입력하라는 메시지가 표시됩니다.

  • S3 버킷: 첫 번째 에픽에서 생성하거나 선택한 버킷을 지정합니다. 첨부된 Lambda 코드(.zip 파일)를 업로드한 위치입니다.

  • S3 키: S3 버킷에 있는 Lambda .zip 파일의 위치를 지정합니다(예: filename.zip 또는 controls/filename.zip). 선행 슬래시를 포함하지 마세요.

  • 알림 이메일 : Amazon SNS 알림을 수신하려는 활성 이메일 주소를 제공합니다.

  • Lamba 로깅 수준: Lambda 함수의 로깅 수준 및 빈도를 지정합니다. 정보를 사용하여 진행 상황에 대한 자세한 정보 메시지를 기록하고, 배포를 계속할 수 있는 오류 이벤트의 경우 오류를 기록하고, 잠재적으로 유해한 상황에 대한 경고를 기록할 수 있습니다.

클라우드 아키텍트
작업설명필요한 기술

구독을 확인합니다.

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

클라우드 아키텍트

관련 리소스

첨부

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