DynamoDB 탐지 보안 모범 사례
다음과 같은 Amazon DynamoDB 모범 사례는 잠재적 보안 약점과 사고를 탐지하는 데 도움이 됩니다.
- AWS CloudTrail을 사용해 AWS 관리형 KMS 키 사용량 모니터링하기
-
유휴 중 암호화를 위해 AWS 관리형 키를 사용하고 있는 경우 이 키의 사용량은 AWS CloudTrail로 로깅됩니다. CloudTrail은 계정에서 수행한 작업을 기록함으로써 사용자 활동에 대한 가시성을 제공합니다. CloudTrail은 요청한 사용자, 사용한 서비스, 수행한 작업, 작업에 대한 파라미터, AWS 서비스가 반환하는 응답 요소 등 각 작업에 대한 중요 정보를 기록합니다. 이러한 정보는 AWS 리소스의 변경 사항을 추적하고 운영 관련 문제를 해결하는 데 도움이 됩니다. CloudTrail을 이용하면 내부 정책 및 규제 표준 준수를 더 쉽게 보장할 수 있습니다.
CloudTrail을 사용해 키 사용을 감사할 수 있습니다. CloudTrail은 계정의 AWS API 호출 및 관련 이벤트 내역이 포함된 로그 파일을 생성합니다. 이 로그 파일은 AWS Management Console, AWS SDK, 명령줄 도구를 사용해 이루어진 모든 AWS KMS API 요청 외에도 통합된 AWS 서비스를 통해 이루어진 요청도 포함합니다. 이러한 로그 파일을 사용해 키가 사용된 시간, 요청되었던 작업, 요청자의 ID, 요청이 시작된 IP 주소 등에 대한 정보를 얻을 수 있습니다. 자세한 내용은 AWS CloudTrail을 사용하여 AWS KMS API 호출 및 AWS CloudTrail 사용 설명서를 참조하세요.
- CloudTrail 사용하여 DynamoDB 작업 모니터링
-
CloudTrail은 제어 플레인 이벤트와 데이터 영역 이벤트를 모두 모니터링할 수 있습니다. 제어 플레인 작업은 DynamoDB 테이블을 생성하고 관리하도록 해 줍니다. 또한 인덱스, 스트림 및 테이블에 따라 다른 다양한 객체를 사용하도록 해 줍니다. 데이터 영역 작업은 테이블의 데이터에 대해 생성, 읽기, 업데이트 및 삭제(CRUD) 작업을 수행하도록 해 줍니다. 데이터 영역 작업의 일부는 보조 인덱스로부터 데이터를 읽도록 해주기도 합니다. CloudTrail에서 데이터 영역 이벤트의 로깅을 활성화하려면 CloudTrail에서 데이터 영역 API 활동의 로깅을 활성화해야 합니다. 자세한 내용은 추적을 위한 데이터 이벤트 로깅 단원을 참조하세요.
DynamoDB에서 활동이 수행되면 해당 활동은 이벤트 기록에 있는 다른 AWS 서비스 이벤트와 함께 CloudTrail 이벤트에 기록됩니다. 자세한 내용은 AWS CloudTrail을 사용하여 DynamoDB 작업 로깅을 참조하세요. AWS 계정에서 최신 이벤트를 확인, 검색 및 다운로드할 수 있습니다. 자세한 내용은 AWS CloudTrail 사용 설명서에서 CloudTrail 이벤트 기록을 사용하여 이벤트 보기를 참조하세요.
DynamoDB에 대한 이벤트를 포함하여 AWS 계정에 이벤트를 지속적으로 기록하려면 추적을 생성합니다. CloudTrail은 추적을 사용하여 Amazon Simple Storage Service(Amazon S3) 버킷으로 로그 파일을 전송할 수 있습니다. 콘솔에서 추적을 생성하면 기본적으로 모든 AWS 리전에 추적이 적용됩니다. 추적은 AWS 파티션에 있는 모든 리전의 이벤트를 로깅하고 지정된 S3 버킷으로 로그 파일을 전송합니다. 이에 더해, CloudTrail 로그에서 수집된 이벤트 데이터를 추가 분석 및 처리하도록 다른 AWS 서비스를 구성할 수 있습니다.
- DynamoDB Streams를 이용한 데이터 영역 작업 모니터링
-
DynamoDB는 DynamoDB Streams의 이벤트에 자동으로 응답하는 코드 조각인 트리거를 만들 수 있도록 AWS Lambda와 통합되어 있습니다. 트리거를 사용하면 DynamoDB 테이블의 데이터 수정에 응답하는 애플리케이션을 구축할 수 있습니다.
테이블에 DynamoDB Streams를 활성화할 경우 스트림 Amazon 리소스 이름(ARN)을 사용자가 작성하는 Lambda 함수에 연결할 수 있습니다. 테이블의 항목이 수정되는 즉시 새로운 레코드가 테이블의 스트림에 표시됩니다. AWS Lambda는 새로운 스트림 레코드가 감지될 때마다 스트림을 폴링하고 Lambda 함수를 동기식으로 호출합니다. Lambda 함수는 알림 보내기, 워크플로 시작과 같이 사용자가 지정하는 모든 작업을 수행할 수 있습니다.
자세한 내용은 자습서: Amazon DynamoDB Streams와 함께 AWS Lambda 사용하기를 참조하세요. 이 예에서는 DynamoDB 이벤트 입력을 받아들여 이 입력에 포함된 메시지를 처리한 후 수신 이벤트 데이터 중 일부를 Amazon CloudWatch Logs에 씁니다.
- AWS Config를 이용한 DynamoDB 구성 모니터링
-
AWS Config를 통해 AWS 리소스의 구성 변경 사항을 지속적으로 모니터링하고 기록할 수 있습니다. 또한 AWS Config를 이용해 AWS 리소스의 목록을 만들 수도 있습니다. 이전 상태에서 변경된 사항이 탐지되면 사용자가 검토하여 조치를 취할 수 있도록 Amazon Simple Notification Service(Amazon SNS) 알림이 전송됩니다. 콘솔을 이용한 AWS Config 설정의 지침에 따라 DynamoDB 리소스 유형이 포함되도록 합니다.
Amazon SNS 주제로 구성 변경 및 알림을 스트리밍하도록 AWS Config를 구성할 수 있습니다. 예를 들어, 리소스가 업데이트되면 변경 사항을 볼 수 있도록 이메일로 전송되는 알림을 받을 수 있습니다. AWS Config가 리소스와 대조하여 사용자 지정 규칙 또는 관리형 규칙을 평가하는 경우에도 알림을 받을 수 있습니다.
예제는 AWS Config개발자 안내서에서 AWS Config가 Amazon SNS 주제로 전송하는 알림을 참조하세요.
- AWS Config 규칙을 이용한 DynamoDB 규정 준수 모니터링
-
AWS Config는 리소스에서 발생하는 구성 변경 사항을 지속적으로 추적합니다. 또한 이러한 변경으로 인해 규칙의 조건 중 위반한 것이 있는지 여부를 확인합니다. 리소스가 규칙을 위반한 경우, AWS Config는 해당 리소스와 규칙을 규칙 미준수로 표시합니다.
AWS Config를 사용해 리소스 구성을 평가함으로써 리소스 구성이 내부 관행, 업계 지침, 규정을 얼마나 잘 준수하는지 평가할 수 있습니다. AWS Config는 AWS 관리형 규칙을 제공합니다. 이 규칙은 AWS 리소스가 일반 모범 사례를 준수하는지 여부를 평가하기 위해 AWS Config가 사용하는 미리 정의된 사용자 지정 가능 규칙입니다.
- 식별 및 자동화를 위해 DynamoDB 리소스에 태그 지정하기
-
AWS 리소스에 태그 형태로 메타데이터를 지정할 수 있습니다. 각 태그는 리소스 관리, 검색 및 필터링을 더 수월하게 해줄 수 있는 옵션 값과 고객이 정의한 키로 구성된 간단한 레이블입니다.
태그를 지정하면 그룹화 제어를 구현할 수 있습니다. 고유한 태그 유형은 없지만 목적, 소유자, 환경 또는 기타 기준에 따라 리소스를 분류할 수 있습니다. 다음은 몇 가지 예입니다.
-
보안 - 암호화와 같은 요구 사항을 결정하는 데 사용됩니다.
-
기밀성 – 리소스가 지원하는 특정 데이터 기밀성 수준에 대한 식별자입니다.
-
환경 - 개발, 테스트 및 프로덕션 인프라 간 구별에 사용됩니다.
자세한 내용은 AWS 태그 지정 전략
및 DynamoDB에 태그 지정하기를 참조하세요. -
- AWS Security Hub을 사용하여 보안 모범 사례와 관련된 Amazon DynamoDB의 사용량을 모니터링합니다.
-
Security Hub는 보안 제어를 사용하여 리소스 구성 및 보안 표준을 평가하여 다양한 규정 준수 프레임워크를 준수할 수 있도록 지원합니다.
Security Hub를 사용하여 DynamoDB 리소스를 평가하는 방법에 대한 자세한 내용은 AWS Security Hub 사용 설명서의 Amazon DynamoDB 제어를 참조하세요.