본문 바로가기
AWS 공부

AWS 보안 2

by 돈 되는 정보 공유하기 2022. 6. 9.
반응형

AWS 보안 2
신분 기반 정책( Identity-Based Policies) 외에도 IAM과 같이 자원에 대한 접근 제어를 위해 일부 AWS 서비스에서는 자원 기반 정책(Resource-Based Policies)을 정의할 수 있다. 예시로 S3의 경우 자원 기반 정책의 일종인 버킷 정책을 통해 객체와 전체 버킷을 제어할 수 있도록 한다. KMS (Key Management Service)의 경우는 사용자에게 Key 관리자와 사용자를 지정하기 위한 Key 정책을 자체적으로 정의하도록 한다. SNS(Social Network Service)의 경우 메시지의 배포와 메시지 구독을 제어하고 전송 프로토콜을 정의하기 위한 자원 정책을 제공한다. SQS(Simple Queue Service) 큐도 마찬가지로 자원 기반 SQS 접근 정책을 제공하여 메시지 발신자와 수신자를 제어한다. 별도의 AWS 자격인증이 없는 유저의 경우 주로 자원 기반 정책을 통해 AWS 서비스를 이용하는 경향이 있다. 예시로 인터넷으로 접근한 익명의 사용자도 S3 버킷에서 객체를 다운로드할 수 있고 애플리케이션 엔드 유저의 경우도 AWS 계정이 없이 SNS 알림 이메일을 수신할 수 있다. 이처럼 자원 기반 정책은 신분 기반 정책만으로 제어할 수 없는 자원과 서비스에 대한 접근 권한을 제공할 수 있다. 그리고 자원 기반 정책 생성 시에도 최소 권한 부여라는 원칙을 유지하여 정책을 정의해야 한다. AWS는 다양한 탐지 제어(detective controls) 기법을 제공한다. 탐지 제어 기법의 기능은 클라우드 서비스 환경에서 발생하는 다양한 이벤트를 추적하고 기록하며 자원 침탈 시도나 자원에 대한 잠재적 위협을 경고하기도 한다. 탐지 제어에 있어 어떤 로그를 기록하고 이들 로그 정보를 어떻게 사용할지 결정하는 일이 무척 중요하다. CloudTrail은 AWS 계정에서의 각종 활동 로그를 기록하는데 CloudTrail 환경설정에서 로그 기록의 범위와 어떤 유형의 로그를 기록할지, 그리고 어떤 유형의 로그를 기록하지 않을지 등 사용자의 필요와 효율성에 따라 설정해야 한다. 예를 들어 모든 Region만 기록하거나 특정 Region만 기록할지 설정하거나 모든 리소스만 로그를 기록할지, 또 관리 이벤트, 데이터 이벤트 중 선택하여 기록하거나 둘 다 기록하거나 등을 선택하여 설정할 수 있다. 그리고 추적 trail의 수도 설정해야 한다. read-only 이벤트에 대해 하나의 추적을 생성하고, write-only 이벤트에 대해 또 하나의 추적을 생성할 수 있다. CloudTrail은 S3에 로그를 기록하므로 로그의 확인과 삭제를 제어하기 위해 버킷 정책을 정의할 필요가 있다. 아니면 새로운 추적을 생성한 뒤 CloudTrail 관리 이벤트 로그가 저장되는 S3 버킷의 이벤트 로그를 관리할 수 있다. 그리고 추적 생성 시에는 로그 기록에 대한 보안을 높이기 위해 SSE-KMS 암호화 기능과 로그 파일 무결성 검증 기능을 활성화한다. 또 S3 버킷에 로그 파일이 전송되면 CloudTrail이 SNS(SimpleNotification Service) 공지를 생성하도록 할 수 있다. 단, 이벤트 발생 시간과 CloudTrail의 해당 이벤트에 대한 로그 파일 생성 시기는 최대 15분 정도의 차이가 발생할 수 있다. CloudTrail이 다양한 이벤트에 대한 기록을 로그로 남긴다면 CloudWatch Logs는 CloudTrail Logs, VPC Flow Logs, RDS Logs, Route 53 DNS Queries Route, Lambda 등 다양한 소스에서 유입되는 로그를 수집하여 검색과 저장을 용이하도록 한다. CloudTrail Logs는 CloudTrail 로그의 검색 및 확인의 편의성을 위해 CloudWatch Logs에 수집한다. VPC Flow Logs에는 VPC로 유입되거나 유출되는 트래픽 정보가 수집된다. 네트워크 인터페이스, IP 주소, 포트, 프로토콜, 패킷, 바이트 카운트 등 정보가 포함되고 Amazon DNS 서버로 향하는 트래픽과 DHCP 트래픽이나 은 포함되지 않는다. RDS Log는 MariaDB, MySQL, Oracle 등 데이터베이스 엔진의 로그를 수집하고 Route 53 DNS Queries는 호스팅 존의 DNS 쿼리 로그를 기록하고 CloudWatch Logs에 전송할 수 있다. Lambda는 Lambda 코드에 로그 명령을 추가할 수 있다. Lambda는 자동으로 로그 이벤트를 전송할 수 있다. 전반적인 보안 전략을 위해 이벤트 모니터링 외에도, AWS 자원의 환경설정 상태 모니터링도 필요하다. AWS Config는 AWS 계정 내 자원의 환경설정 변경 사항을 모니터링하고 경고 메시지를 전송한다. 이때 자원 환경설정 기준선과 변경된 환경설정이 비교할 수 있어 기업의 자원 환경설정이 내규나 규정에 위반되지는 않았는지 쉽게 확인할 수 있다. 변경된 환경설정을 비교하기 위해 AWS Config Rules를 정의할 수 있다. AWS Config Rules는 비정상적이거나 의심스러운 환경설정 상태를 정의할 수 있고 이런 상태를 좀 더 자세하게 관찰하고 분석하여 필요시에는 환경설정 수정 또는 보완 작업을 진행할 수 있다. AWS는 다양한 비즈니스에 맞춰 다수의 관리형 규칙을 제공한다. ec2-volume-inuse-check 룰의 경우 인스턴스에 부착되지 않은 상태의 EBS 볼륨을 탐색한다. 이 룰이 시행되는 상태에서, 인스턴스에 부착되지 않은 상태의 EBS 볼륨이 존재하는 경우 환경설정 규정에 맞지 않는 볼륨이 존재한다는 보고를 전송한다.

반응형

'AWS 공부' 카테고리의 다른 글

AWS 비용 관리  (0) 2022.06.11
AWS 보안 3  (0) 2022.06.10
AWS 보안  (0) 2022.06.08
AWS 성능 효율화  (0) 2022.06.06
Amazon CloudFront  (0) 2022.06.05

댓글