AWS CloudTrail의 보안 모범 사례 CloudTrail 탐지 보안 모범 사례 1. 추적 생성 AWS 계정의 이벤트 기록을 보유하려면 Trail을 생성해야 한다. CloudTrail은 Trail을 생성하지 않고 CloudTrail Console에서 관리 이벤트에 대한 90일의 이벤트 기록정보를 제공하지만, 이 기록은 영구적이지 않을 뿐더러 모든 유형의 이벤트에 대한 정보를 제공하는게 아니다. 따라서 지속적인 레코드 및 모든 이벤트 유형이 포함된 레코드를 얻으려면 Trail을 생성해야 한다. Trail은 지정하는 AWS Amazon S3 Bucket에 Log 파일을 저장한다. CloudTrail 데이터를 관리하는데 용이하도록 모든 AWS 리전에서 관리이벤트를 로깅하는 Trail 하나를 생성한 후 A..
CloudTrail에 대한 Amazon S3 Bucket 정책 기본적으로 Amazon S3 Bucket 및 객체는 Private하다. Resource 소유자만 Bucket과 Bucket에 포함된 객체에 액세스할 수 있다. Resource 소유자는 액세스 정책을 작성해 다른 Resource 및 사용자에게 액세스 권한을 부여할 수 있다. 여기서는 그에대한 정책들을 소개한다. 다음 정책은 CloudTrail이 지원되는 리전의 Amazon S3 Bucket에 Log 파일을 작성하도록 허용한다. { "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailAclCheck20150319", "Effect": "Allow", "Principal": {"Servi..
AWS CloudTrail 보안 이 자료는 CloudTrail 사용 시 책임 분담 모델을 적용하는 방법을 이해하는데 도움을 주기 위한 자료이다. 다음 항목에서 보안 및 규정 준수 목표를 충족하기 위해 CloudTrail을 구성하는 방법을 보여준다. 또한 CloudTrail Resource를 모니터링하고 보호하는데 도움이 되는 다른 AWS Service 사용법에 대해서도 소개한다. AWS CloudTrail 데이터 보호 AWS는 데이터 보호를 위해 AWS 계정의 자격 증명을 보호하고, AWS IAM을 사용해 개별 IAM 사용자 계정에 직무에 필요한 권한만을 부여하는 것이 좋다. 또한 다음과 같은 방법으로 데이터를 보호하는 것이 좋다. 각 IAM 사용자에 멀티 팩터 인증(MFA)를 사용한다. SSL/TLS를..
AWS CloudTrail 이란? AWS 계정에서 AWS Service가 수행하는 작업들은 CloudTrail에 이벤트로 기록됩니다. 이 때 이벤트는 AWS Management Console, AWS CLI, AWS SDK, API에서 수행하는 모든 작업들을 말한다. AWS CloudTrail을 사용해 AWS 인프라 전반에 걸친 계정활동을 확인, 검색, 다운로드, 보관, 응답할 수 있다. 따라서 AWS 계정 활동에 대한 CloudTrail을 통한 가시성 확보는 보안 및 운영에서 매우 중요하다. CloudTrail 작동 방식 CloudTrail은 생성 시 AWS 계정에서 활성화된다. AWS 계정에서 이루어진 활동이 CloudTrail 이벤트에 기록되고, AWS Console의 Event History에서 ..
Terraform Import? Terraform에서 Import는 Terrafomr을 통해서 생성된 Resource가 아니라 AWS Console을 통해서 직접 추가한 Resource나 다른 Terraform 환경에서 생성한 Resource를 가져오기 위해 제공되는 CLI 명령이다. 사용하는 이유는 Terrafomr은 tfstate파일에 있는 Resource만 본다는 점 때문이다. 이런 Terraform Import를 사용하는 간단한 예시를 살펴보고 몇 가지 특징에 대해서 정리해본다. 1. AWS IAM User에 대한 Resource를 가져오기 이와 같이 AWS Console 상에서는 총 5개의 IAM User를 확인할 수 있다. 그러나, Terraform의 tfstate파일에는 이러한 정의가 되어있..
테라폼을 수행할 때 마다 최상위 경로에 state파일을 생성해 인프라의 모든 정보를 저장해 놓는다. 이 파일은 JSON형식으로 실제 환경의 리소스와 대응되는 정보들이 저장되어 있다. 개인 프로젝트가 아니라 팀 프로젝트라면 다음 요구사항들이 지켜져야 한다. 1. 상태 파일의 공유 스토리지 2. 상태 파일의 잠금 3. 상태 파일의 분리 Git과 같은 버전관리도구를 통해 상태 파일을 사용하는 것은 옳지 못한 방법이다. 왜냐하면 최신 변경 사항을 업데이트 하지 않거나 변경된 사항을 가져오지 않는 실수를 할 여지가 있고, 상태파일이 일반 텍스트로 저장되기 때문에 보안상 문제가 발생할 가능성이 있다. 때문에 테라폼에서 내장으로 제공하는 Remote State Storage를 사용하는 것이 좋다. 1. AWS S3 ..