[AWS] AWS에서의 보안 구성은 어떻게 해야할까요?
IT/AWS

[AWS] AWS에서의 보안 구성은 어떻게 해야할까요?

반응형

 

지금까지 고객과의 미팅에 있어서 답변드리기 어려웠던 질문중 하나가 

 "AWS에서 보안은 어디까지 제공되나요?" 였습니다.

그래서 오늘은 아주 DeepDive 하게 AWS에서 보안을 어떻게 구성할 수 있는지 알아보도록 하겠습니다. 

 

 "AWS에서 보안은 어디까지 제공되나요?"

이 질문에서 보안의 범위가 너무 광범위 하기 때문에 어떤 보안을 말씀하시는지 되물어볼 필요가 있습니다.

그런데 대부분의 고객분들이 보안의 범위를 정확히 알지 못하는 경우가 많죠.

이유인즉슨 컨설팅 받고자하는 고객분들의 대부분이 마케팅, 개발, 시스템 특정 분야의 전문가들이기 때문입니다.

 

따라서 이 경우 보안의 범위를 먼저 알려드리고 그 범위를 좁혀 설명해야합니다.

기준을 제시해드리고 요구에 맞는 가이드를 해드리는 것이 저희 Solution Architect가 해야할 일이지요.

그럼 사명감을 다해 설명해보겠습니다.

 

일반적으로 보안은 다음과같이 크게 5가지 카테고리로 묶어서 말씀드릴 수 있습니다.

1. 물리 보안

2. 데이터 보안

3. 시스템 보안

4. 네트워크 보안

5. 애플리케이션 보안

 

그리고 AWS에서 지원하는 보안 서비스는 아래표와 같습니다. 

null

 

여기 5가지를 모두 설명하면 자칫 잘못하다가 TMI가 될 수 있으므로

어떤 보안을 생각하고 있는지 여쭤보고 그곳을 집중 공략하여 설명드립니다.

제가 지금까지 만난 고객의 90%이상은 어플리케이션보안에 대해 궁금해 하셨습니다.

특히 DDoss 공격과 웹방화벽 서비스에 대해 알고 싶어 하셨는데요.

 

그래서 5번 애플리케이션 보안에 대해 먼저 설명해보겠습니다.

웹방화벽 서비스의 경우 "AWS shiled 와 WAF 서비스를 사용하여 해결 할 수 있습니다." 라고 말씀드립니다.

 

그럼 AWS shiled와 WAF는 어떤 서비스일까요?

AWS shiled는 간단히 말해 DDooss공격으로부터 AWS서비스를 보호해주는 서비스입니다.

지원 범위에 따라서 Standard와 Advanced 타입으로 구분이 됩니다.

Standard 타입은 AWS사용시 자동으로 활성화되며 무료입니다.

AWS cloudfront, Route53서비스에 한하여 L3, L4레벨의 DDoss 공격을 보호해 줍니다.

무료인 반면에 보호받는 AWS서비스가 제한되어 있으므로 주로 사용하는 EC2, ELB에 대한 보호를 받고 싶다하면 Advanced 타입을 구매하셔야합니다.

 

AWS shiled Advanced 타입은 AWS EC2, ELB, S3, Cloudfront, Rout53 서비스에 대해 L3, L4와 함께 L7레벨에서도 DDoos공격으로 보호받을 수 있습니다.

해당 서비스에 대해 24시간 실시간 관제가 포함되어 있으므로 가격이 비싼편입니다.

비용의 부담으로 AWS shield Advanced를 이용하고 있는 고객은 많지 않은게 사실입니다만 DDoss공격에 노출 되었을 경우의 비지니스 손실을 고려한다면

이보다 좋은 서비스는 있을 수가 없으리라 생각됩니다.

 

다음으로 AWS WAF는 웹방화벽 서비스로 특정 IP를 차단, SQL 인잭션 차단, 지역 IP 차단 등 웹 어플리케이션 방화벽 서비스입니다.

AWS WAF는 아키텍처상 cloud front , ALB(Application Load Balancer), Amazon API Gateway 에 설정이 가능합니다.

 

WAF의 차단 규칙들을 WAF Rule이라고 하는데 custom하게 구성해야하며 고객이 원하실 경우 MSP업체에서 축적한 노하우를 통해 제안드리기도 합니다.

비용은 WAF Rule 개수, 요청 수를 기준으로 발생 하므로 비용이 추가로 발생할 수 있다는 점 고려해야합니다.

 

여기 까지 일반적으로 고객분들에게 답변 드리는 내용이었습니다.

만약 고객 입장에서 '시간이 충분하고 5가지 카테고리에 대한 모든 설명을 원한다'라고 한다면 이를 천천히 하나하나 설명 드려야겠죠?

그럼 모든 설명을 원하는 고객을 가정하에 하나하나 살펴보겠습니다.

 

설명드리기 전에 많은 고객들이 네트워크 보안, 시스템 보안, 데이터보안, 물리보안은 AWS에서 전부 알아서 처리해주겠지하고 생각하시는 분들이 많습니다.

반은 맞고 반은 틀리다 라고 답변드릴 수 있겠습니다.

왜냐면 일부는 AWS에서 처리해주고 있지만 일부는 고객이 직접 구축, 관리를 해야하기 때문이죠.

 

(** 지금부터는 한 숨 크게 쉬고, 천천히 정독해주시면 감사하겠습니다.)

 

우선 1번 물리보안은 AWS에서 알아서 처리해주고 있다고 생각하시면 됩니다.

물리보안의 대표적인 인증프로그램인 ISO27001, PCI DSS, ISMS 등등 인증을 받았고, 보호설비 및 물리적 출입 통제시스템을 갖고 있습니다.

즉 물리보안에 대해서는 고객이 직접적으로 관리하시지 않아도되며 장비 노후화 서버 업데이트 등등에 대한 걱정도 할필요가 없겠죠.

 

그 다음 2번 부터 5번까지는 고객이 직접 관리를 해야하는 부분입니다.

고객의 TO-BE 모델을 도출해야하기 때문에 담당 고객께서도 전반적인 시스템과 보안의 이해도가 필요한 부분이기도합니다.

 

AWS 서비스를 이용할 수도 있고, 특별한 경우 3rd party solution을 요청하시는 고객분들도 있습니다.

 

 

우선 2번 데이터 보안 입니다.

AWS서비스로는 KMS, Cloud HSM, Cloud trail이 있습니다.

자세한 서비스 내용은 AWS에서 Document로 너무나 상세히 제공해주고 있기 때문에 간략하게만 설명드리겠습니다.

 

1) Cloud trail은 AWS consol 및 API로 요청되는 모든 로그를 기록하는 서비스로 필수로 사용해야하는 서비스라고 보시면 됩니다.

2) KMS는 암호키 생성, 제어, 사용을 용이하게 해주는 서비스 입니다.

3) Cloud HSM 는 Dedicated managed 보안 서비스로 KMS보다 강력한 형태의 보안 안정성을 제공하는 서비스 입니다.

 

AWS에서 제공하는 보안 서비스 말고, 일부 특정 기업에서는 데이터 보안을 위해 DB접근제어 솔루션, 데이터 암호화 솔루션을 요청하는 경우가 있습니다.

그 이유는 고객의 데이터가 개인정보보호법으로 보호되어야하는 대상이며 특정 인증심사 또는 내부 감사를 통과하기 위해서 이를 만족하는 솔루션이 필요한 경우가 있기 때문이죠.

관련 3rd party 솔루션으로는 DB접근제어 솔루션 Chacramax, DB암호화 솔루션 Ksign 등 이 있습니다.

여기에서 주의하셔야하는 부분은 MSP업체에서는 개인정보호법에 대해 특정 사례로만 가이드 드리고 있으며, 필요시 법률 전문가를 통해 상세 가이드를 받으셔야합니다.

 

3번 시스템 보안입니다.

시스템 보안을 위한 AWS서비스는 IAM, Cloud watch logs, Trusted Advisor, AWS Config가 있습니다.

마찬가지로 AWS document에서 상세히 가이드 하고 있으므로 간략히 설명 드리겠습니다.

 

1) IAM은 AWS 계정에 대한 접근 제어, 권한관리를 하는 서비스 입니다.

AWS는 웹콘솔 또는 CLI기반으로 서비스가 되기때문에 AWS콘솔에 접속하기 위한 유저와 권한, CLI로 AWS서비스를 접근하기위한 key가 필요 합니다.

이 것을 관리하는 서비스가 IAM 입니다.

 

2) Cloud watch logs는 AWS리소스, AWS기반 애플리케이션을 모니터링할 수 있는 서비스 입니다.

AWS가 기본적으로 제공되지 않는 EC2 memory, storage 등의 수치들은 custom 하게 설정해야하며

EC2 같은 경우 추가 비용을 들여 Detailed monitoring기능을 이용하면 1분단위로도 수치를 확인 가능합니다 (기본 5분)

port scanning등 더욱 더 상세한 레벨의 모니터링을 위해 일부 고객은 WATAP과 같은 3rd party solution을 사용하기도 합니다.

 

3) Trusted Advisor는 비용, 보안, 효율성, 안정성, 효율성 측면에서 AWS서비스를 제대로 사용하고 있는지 점검해주는 서비스 입니다.

대부분의 MPS업체에서는 고객의 infra를 초기 구축할때 AWS의 well-architected framwork 기준으로 구축하기 때문에 AWS서비스의 효율적 사용에 문제가 없을 것입니다.

하지만 기존에 AWS를 사용하던 고객의 경우 내가 서비스를 잘 사용하고 있는지를 점검할 수 있는 효과적인 서비스입니다.

 

4) AWS config는 AWS리소스 구성 내역 및 변경 내역을 기록해주는 서비스 입니다.

AWS리소스의 변경에 대해 이력관리를 해주는 서비스라고 보시면됩니다.

 

시스템보안에서 고객이 가장 많이 찾는 3rd party solution으로는 모니터링 솔루션 툴입니다.

Cloud watch에서 제공하는 모니터링으로는 시스템로그(access.log, massage.log) 또는 어플리케이션 로그(catalina log, httpd.log)를 상세히 구성하기가 어렵기 때문에

이에 대한 모니터가 필요할 경우 3rd party 솔루션인 와탭, Data Dog등을 통해서 모니터링 솔루션으로 구축할 수 있습니다.

 

마지막 4번 네트워크보안입니다.

네트워크 보안 설정은 실제 구축시 고객과의 의사소통을 가장많이 해야하는 부분이기도 합니다.

다시말해 고객측 담당자가 네트워크 통신테스트 정도는 할 수 있을 정도의 스킬을 갖고 있어야합니다.

그 이유는 AWS에서 네트워크 보안위해 security group과 같은서비스로 최소한의 포트와 IP를 접근할 수 있도록 white list 방식으로 허용하게 되는데,

통신이 안될 경우 원인을 찾으려면 고객이 네트워크 환경에서 직접 테스트 해야하는 부분이기 때문입니다.

 

AWS에서 제공되는 네트워크 보안 서비스는 security group, VPC NACL, VPC Flow logs, NAT gateway, AWS Certificate Manager가 있습니다.

마찬가지로 하나하나 간략히 설명 드리겠습니다.

1) security group은 EC2, RDS, ELB각각 에 부여되는 L4레벨의 방화벽 입니다.

이는 in/out bound 되는 port와 source를 제한할 수 있으므로 최대한 접근 하고자하는 곳만 허용하는 정책을 만드시는게 좋습니다.

Statefull 방식이기 때문에 out bound를 굳이 설정할 필요가 없으므로 기본이 all allow 입니다.

 

2) VPC NACL은 Subnet에 부여하는 방화벽입니다.

Security Group앞에 있는 subnet단위의 방화벽이라고 보시면됩니다.

가장큰 차이점은 Stateless 이기 때문에 어디서 오는지(in bound) 어디로 나가는지(out bound) 모두 설정이 필요하다는 점입니다.

 

3) VPC flow Log 는 생성한 VPC대역에 접근하는 모든 접근 로그를 확인 할 수 있습니다.

보통은 이 로그를 통해서 통신상의 문제를 파악하기 위해 사용하는데, VPC로 접근이 잘되었는지 안되었다면 이유는 무엇인지 이 로그를 통해 확인할 수 있습니다.

 

4) NAT gateway 는 외부 인터넷 망에서는 직접 접근 할 수 없는 private subnet 대역에 있는 서버들이 외부 인터넷으로 통신하기 위해 사용하는 서비스 입니다.

일반적인 아키텍처에서 필수적으로 들어가는 서비스이며 private subnet 에서도 외부 인터넷으로의 접근이 가능하므로 보안을 강화할 수 있는 서비스 입니다.

5) AWS Certificate Manager는 SSL/TLS 통신을 위한 인증서입니다. 서비스 이용료는 무료이며 EC2에는 사용할 수 없고, ELB 또는 cloud front에만 설정가능합니다.

회사 내부 규정으로 특정 공인 인증기관의 SSL/TLS 인증서를 꼭 써야한다는 규정이 없다면 ACM을 사용 하는 것이 비용 효율 적일 수 있습니다.

 

자, 여기까지 AWS에서 보안구성 하는 방법에 대해 설명드렸습니다.

물론 모든 어떤 워크로드와 어떤 서비스를 사용하느냐에 따라서 AWS에서의 보안구성이 달라질 수 있으며 수많은 예외사항을 고려해봐야 할 것입니다.

AWS에서 보안구성을 어떻게 해야하는지 궁금하신 분들에게 조금이나 도움이 되었으면 합니다.

감사합니다.

 

 

 

 

 

 

 

 

 

반응형