AWS CloudTrail의 보안 모범 사례 - AWS CloudTrail

AWS CloudTrail의 보안 모범 사례

AWS CloudTrail는 자체 보안 정책을 개발하고 구현할 때 고려해야 할 여러 보안 기능을 제공합니다. 다음 모범 사례는 일반적인 지침이며 완벽한 보안 솔루션을 나타내지는 않습니다. 이러한 모범 사례는 환경에 적절하지 않거나 충분하지 않을 수 있으므로 참고용으로만 사용해 주세요.

CloudTrail 탐지 보안 모범 사례

추적 생성

AWS 계정의 이벤트 기록을 보유하려면 추적을 생성해야 합니다. CloudTrail은 추적을 생성하지 않고 CloudTrail 콘솔에서 관리 이벤트에 대한 90일의 이벤트 기록 정보를 제공하지만, 이 기록은 영구적인 레코드가 아니며 가능한 모든 유형의 이벤트에 대한 정보를 제공하는 것도 아닙니다. 지속적인 레코드 및 지정하는 모든 이벤트 유형이 포함된 레코드를 얻으려면 추적을 생성해야 합니다. 추적은 지정된 Amazon S3 버킷에 로그 파일을 제공합니다.

CloudTrail 데이터를 관리하는 데 도움이 되도록, 모든 AWS 리전에서 관리 이벤트를 로그하는 추적을 하나 생성한 다음, Amazon S3 버킷 활동 또는 AWS Lambda 함수와 같은 리소스에 대한 특정 이벤트 유형을 로그하는 추가 추적을 생성하는 것이 좋습니다.

다음과 같은 몇 가지 단계를 수행할 수 있습니다.

추적을 모든 AWS 리전에 적용

AWS 계정에서 사용자, 역할 또는 서비스가 수행하는 이벤트의 전체 레코드를 획득하려면 모든 AWS 리전에서 이벤트를 로그하도록 각 추적을 구성해야 합니다. 모든 AWS 리전에서 이벤트를 로그하여 어떤 AWS 리전에서 이벤트가 발생하든 상관없이 AWS 계정에서 발생하는 모든 이벤트를 로깅합니다. 여기에는 해당 서비스와 관련된 AWS 리전에 로그되는 글로벌 서비스 이벤트 로깅이 포함됩니다. 모든 리전에 적용되는 추적을 생성하면 CloudTrail이 각 리전에 이벤트를 기록하고 CloudTrail 이벤트 로그 파일을 지정된 S3 버킷으로 전송합니다. 모든 리전에 적용되는 추적을 생성한 후 AWS 리전을 추가하면 해당 새 리전이 자동으로 포함되며 해당 리전의 이벤트가 로깅됩니다. 이러한 작업이 CloudTrail 콘솔에서 추적을 생성할 때의 기본 옵션입니다.

다음과 같은 몇 가지 단계를 수행할 수 있습니다.

CloudTrail 로그 파일 무결성 사용

검증된 로그 파일은 보안 및 과학 수사에서 특히 중요합니다. 예를 들어, 검증된 로그 파일을 사용하면 로그 파일 자체가 변경되지 않았음을 또는 특정 사용자 자격 증명이 특정 API 활동을 수행했음을 확실하게 주장할 수 있습니다. 또한 CloudTrail 로그 파일 무결성 검증 프로세스를 사용하면 로그 파일이 삭제 또는 변경되었는지 여부를 알 수 있거나 특정 시간 동안 사용자 계정으로 로그 파일이 전송되지 않았음을 확실하게 주장할 수 있습니다. CloudTrail 로그 파일 무결성 검증은 산업 표준 알고리즘(해싱을 위한 SHA-256, 디지털 서명을 위해 RSA를 사용하는 SHA-256)을 사용합니다. 따라서 감지되지 않으면서 CloudTrail 로그 파일을 수정, 삭제 또는 위조하는 것은 컴퓨팅 방식으로 실행 불가능합니다. 자세한 내용은 섹션을 참조하세요검증 활성화 및 파일 검증

Amazon CloudWatch Logs와 통합

CloudWatch Logs를 사용하면 CloudTrail에서 캡처된 특정 이벤트에 대한 알림을 모니터링하고 수신할 수 있습니다. CloudWatch Logs에 전송된 이벤트는 추적에서 로그하도록 구성한 이벤트이므로, 모니터링하려는 이벤트 유형(관리 이벤트 및/또는 데이터 이벤트)을 로그하도록 추적을 하나 이상 구성했는지 확인하세요.

예를 들어 AWS Management Console 로그인 실패 이벤트와 같은 주요 보안 및 네트워크 관련 관리 이벤트를 모니터링할 수 있습니다.

다음과 같은 몇 가지 단계를 수행할 수 있습니다.

CloudTrail 예방적 보안 모범 사례

다음과 같은 CloudTrail 모범 사례를 통해 보안 사고를 예방할 수 있습니다.

중앙 집중식 전용 Amazon S3 버킷에 로그

CloudTrail 로그 파일은 사용자, 역할 또는 AWS 서비스가 수행하는 작업의 감사 로그입니다. 이러한 로그의 무결성, 완전성 및 가용성은 과학 수사와 감사를 위해 매우 중요합니다. 중앙 집중식 전용 Amazon S3 버킷에 로그하면 엄격한 보안 제어, 액세스 및 업무 분리를 시행할 수 있습니다.

다음과 같은 몇 가지 단계를 수행할 수 있습니다.

  • 별도의 AWS 계정을 로그 아카이브 계정으로 생성합니다. AWS Organizations를 사용하는 경우 이 계정을 조직에 등록하고 조직 추적을 생성하여 조직에 있는 모든 AWS 계정에 대한 데이터를 로그하는 것이 좋습니다.

  • Organizations를 사용하지 않지만 여러 AWS 계정에 대한 데이터를 로그하려는 경우 추적을 생성하여 이 로그 아카이브 계정의 활동을 로그합니다. 계정 및 감사 데이터에 액세스할 수 있어야 하는 신뢰할 수 있는 관리 사용자로만 이 계정에 대한 액세스를 제한합니다.

  • 추적 생성의 일부로, 조직 추적이든 단일 AWS 계정에 대한 추적이든 상관없이, 이 추적에 대한 로그 파일을 저장할 전용 Amazon S3 버킷을 생성합니다.

  • 둘 이상의 AWS 계정에 대한 활동을 로그하려면 AWS 계정 활동을 로그하려는 모든 AWS 계정에 대해 로그 파일을 로그 및 저장할 수 있도록 버킷 정책을 수정합니다.

  • 조직 추적을 사용하지 않으려는 경우 로그 아카이브 계정에서 Amazon S3 버킷을 지정하여 모든 AWS 계정에서 추적을 생성합니다.

AWS KMS 관리형 키를 사용한 서버 측 암호화

기본적으로 CloudTrail이 버킷에 제공하는 로그 파일은 Amazon S3가 관리하는 암호화 키(SSE-S3)를 사용하는 서버 측 암호화를 사용하여 암호화됩니다. 직접 관리할 수 있는 보안 계층을 제공하려면 CloudTrail 로그 파일에 대한 AWS KMS 관리형 키(SSE-KMS)를 사용하는 서버 측 암호화를 대신 사용하면 됩니다. CloudTrail과 함께 SSE-KMS를 사용하려면 KMS 키라고도 하는 AWS KMS key를 생성하고 관리합니다.

참고

SSE-KMS 및 로그 파일 검증을 사용하고 SSE-KMS 암호화 파일만 허용하도록 Amazon S3 버킷 정책을 수정한 경우, 다음 예시 정책 라인과 같이 AES256 암호화를 특별히 허용하도록 버킷 정책을 수정하지 않는 한, 해당 버킷을 활용하는 추적을 생성할 수 없습니다.

"StringNotEquals": { "s3:x-amz-server-side-encryption": ["aws:kms", "AES256"] }

다음과 같은 몇 가지 단계를 수행할 수 있습니다.

기본 Amazon SNS 주제 정책에 조건 키 추가

Amazon SNS에 알림을 보내도록 추적을 구성하면 CloudTrail은 CloudTrail이 SNS 주제에 콘텐츠를 보낼 수 있도록 허용하는 정책 문을 SNS 주제 액세스 정책에 추가합니다. 보안 모범 사례로 aws:SourceArn(또는 선택적으로 aws:SourceAccount) 조건 키를 CloudTrail 정책 문에 추가하는 것이 좋습니다. 이렇게 하면 SNS 주제에 대한 무단 계정 액세스를 방지할 수 있습니다. 자세한 내용은 섹션을 참조하세요CloudTrail에 대한 Amazon SNS 주제 정책

로그 파일을 저장하는 Amazon S3 버킷에 대한 최소 권한 액세스 구현

CloudTrail은 지정된 Amazon S3 버킷으로 로그 이벤트를 추적합니다. 이러한 로그 파일에는 사용자, 역할 및 AWS 서비스가 수행하는 작업의 감사 로그가 포함됩니다. 이러한 로그 파일의 무결성과 완전성은 감사와 과학 수사를 위해 매우 중요합니다. 무결성을 보장하려면 CloudTrail 로그 파일을 저장하는 데 사용된 모든 Amazon S3 버킷에 대한 액세스 권한을 생성하거나 수정할 때 최소 권한의 원칙을 준수해야 합니다

다음 단계를 따릅니다.

로그 파일을 저장하는 Amazon S3 버킷에서 MFA Delete 사용

Multi-Factor Authentication(MFA)을 구성하면 버킷의 버전 관리 상태를 변경하거나 객체 버전을 영구적으로 삭제하려고 시도할 때 추가 인증이 필요합니다. 이 기능은 사용자가 Amazon S3 객체를 영구적으로 삭제할 수 있는 권한이 있는 사용자의 암호를 획득하더라도 로그 파일의 무결성을 손상시킬 수 있는 작업을 방지하는 데 도움이 됩니다.

다음과 같은 몇 가지 단계를 수행할 수 있습니다.

로그 파일을 저장하는 Amazon S3 버킷에서 객체 수명 주기 관리 구성

Amazon S3 추적 기본값은 추적을 위해 구성된 Amazon S3 버킷에 로그 파일을 무한정으로 저장하는 것입니다. Amazon S3 객체 수명 주기 관리 규칙을 사용하여 비즈니스 및 감사 필요에 더 적합하게 자체 보존 정책을 정의할 수 있습니다. 예를 들어, 1년보다 오래된 로그 파일을 Amazon Glacier에 보관하거나, 일정 시간이 지난 후 로그 파일을 삭제할 수 있습니다.

AWSCloudTrail_FullAccess 정책에 대한 액세스 제한

AWSCloudTrail_FullAccess 정책이 적용되는 사용자는 자신의 AWS 계정에서 가장 민감하고 중요한 감사 기능을 사용 중지하거나 재구성할 수 있습니다. 이 정책은 AWS 계정의 사용자 및 역할에 광범위하게 적용하거나 공유하기 위한 것이 아닙니다. 이 정책의 적용을 최대한 적은 수의 개인으로 제한하세요. AWS 계정 관리자 역할을 담당할 것으로 예상되는 사람에게만 이 정책을 적용해야 합니다.