AWS Lambda의 보안 개요 1/2

빌드업웍스
9 min readMar 30, 2020

--

https://AWS.amazon.com/ko/

본 문서는 총 2부로 구성되어 있으며 이 글은 1부입니다.

2부 링크 : AWS Lambda의 보안 개요 2/2

요약

이 백서는 보안 렌즈를 통해 AWS Lambda 서비스에 대해 자세히 설명합니다. 신규채택자에게 유용할 수 있는 서비스의 전체적인 그림을 제공하며, 현재 사용자를 위한 AWS Lambda에 대한 이해도를 높일 수 있습니다.

이 백서의 대상 고객은 CISO(Chief Information Security Officers), 정보 보안 그룹, 보안 분석가, 엔터프라이즈 설계자, 컴플라이언스팀 및 AWS Lambda의 토대를 이해하는 데 관심이 있는 사용자입니다.

소개

오늘날 AWS Lambda를 사용하여 기본 인프라를 관리하지 않고 확장성, 성능 및 비용 효율성을 달성하는 워크로드가 늘어나고 있습니다. 이러한 워크로드는 초당 수천 개의 동시 요청으로 확장되어 AWS Lambda가 오늘날 AWS에서 제공하는 많은 중요한 서비스 중 하나가 되었습니다. AWS Lambda는 수십만 명의 AWS 고객이 매달 수조 건의 요청을 처리하는 데 사용합니다.

미디어 및 엔터테인먼트, 금융 서비스 및 기타 규제 업종에 이르기까지 다양한 고객들이 AWS Lambda를 주목하고 있습니다. 이러한 고객은 시장 출시 시간을 단축하고, 비용을 최적화하며, 비즈니스 운영에 최선을 다하여 민첩성을 높이는 데 더 많은 관심을 가지고 있습니다. Lambda는 많은 업계에서 미션 크리티컬 애플리케이션을 위한 확실한 선택이 되었습니다.

AWS Lambda의 관리 런타임 환경 모델은 많은 구현 세부 정보를 의도적으로 사용자에게 숨기고 있으며, 클라우드 보안에 대한 기존 모범 사례 중 일부를 무관하게 만들고, 새로운 모범 사례의 필요성을 제기합니다. 본 백서에서는 개발자, 보안 분석가, 컴플라이언스 팀 및 기타 이해관계자에게 자세한 정보를 제공하는 Lambda의 기반에 대한 정보를 포함한 모범 사례를 소개합니다.

AWS Lambda 정보

AWS Lambda는 사용자 지정 논리로 다른 AWS 서비스를 확장하거나 확장, 성능 및 보안과 함께 작동하는 다른 백엔드 서비스를 생성하는 이벤트 기반의 서버리스 컴퓨팅 서비스입니다. Lambda는 Amazon API Gateway를 통한 HTTP 요청, Amazon S3 버킷의 개체에 대한 수정, Amazon DynamoDB의 테이블 업데이트 및 AWS Step Functions의 상태 전환과 같은 여러 이벤트에 대한 응답으로 코드를 자동으로 실행할 수 있습니다. 웹 또는 모바일 앱에서 직접 코드를 실행할 수도 있습니다.

Lambda는 고가용성 컴퓨팅 인프라에서 코드를 실행하고 서버 및 운영 체제 유지 보수, 용량 프로비저닝 및 자동 확장, 패치 적용, 코드 모니터링 및 로깅을 비롯한 기본 플랫폼의 모든 관리를 수행합니다.

Lambda를 사용하면 코드를 업로드하고 호출 시기를 구성할 수 있습니다. Lambda는 고가용성 코드를 실행하는 데 필요한 다른 모든 작업을 처리합니다. Lambda는 다른 많은 AWS 서비스와 통합되며 주기적으로 트리거 되는 간단한 자동화 작업부터 완전한 마이크로서비스 응용 프로그램에 이르기까지 서버리스 애플리케이션 또는 백엔드 서비스를 생성할 수 있습니다.

또한 Amazon Virtual Private Cloud 내의 리소스에 액세스하도록 Lambda를 구성할 수도 있습니다.

AWS IAM(Identity and Access Management) 및 이 백서에서 설명하는 기타 기술을 사용하여 Lambda를 강력한 보안 상태로 쉽게 포장하여 높은 수준의 보안 및 감사를 유지하고 규정 준수 요구 사항을 충족할 수 있습니다.

Lambda의 장점

확장 가능하고 비용 효율적이며 관리하기 쉬운 인프라를 제공하는 IT 팀의 능력에 영향을 주지 않으면서 개발 조직의 창의성과 속도를 실현하고자 하는 고객은 AWS Lambda를 통해 규모나 안정성에 영향을 주지 않으면서 민첩성과 더 나은 가격 책정을 위해 운영상의 복잡성을 바꿀 수 있다는 사실을 알게 되었습니다.

Lambda는 다음과 같은 여러 가지 이점을 제공합니다.

관리 할 서버가 없음

Lambda는 단일 지역의 여러 가용 영역에 분산되어 있는 고가용성, 내결함성 인프라에서 코드를 실행하고 코드를 원활하게 배포하며 인프라의 모든 관리, 유지 보수 및 패치를 제공합니다. 또한 Lambda는 Amazon CloudWatch, CloudWatch Logs 및 AWS CloudTrail과의 통합을 비롯하여 기본 제공되는 로깅 및 모니터링 기능을 제공합니다.

연속 스케일링

Lambda는 이벤트 트리거 코드를 병렬로 실행하고 각 이벤트를 개별적으로 처리하여 기능(또는 애플리케이션)의 확장을 정밀하게 관리합니다.

서브 세컨드 미터링

AWS Lambda를 사용하면 100ms마다 코드가 실행되고 코드가 트리거되는 횟수가 충전됩니다. 서버 단위가 아닌 일관된 처리량 또는 실행 기간을 지불해야 합니다.

혁신 증가

Lambda는 인프라 관리를 인수함으로써 프로그래밍 리소스를 확보하여 비즈니스 로직의 혁신과 개발에 더 집중할 수 있도록 지원합니다.

응용 프로그램 현대화

Lambda는 미리 훈련된 기계 학습 모델의 기능을 사용하여 애플리케이션에 쉽게 인공지능을 주입할 수 있습니다. 단일 API 요청은 이미지를 분류하고, 비디오를 분석하고, 음성을 텍스트로 변환하고, 자연 언어 처리를 수행하는 등의 작업을 수행할 수 있습니다.

풍부한 생태계

Lambda는 AWS Serverless Application Repository를 통해 서버리스 애플리케이션을 검색, 배포 및 게시하는 개발자, AWS Cloud9, Visual Studio용 AWS Toolkit, Visual Studio용 AWS Tools와 같은 다양한 IDE와의 통합을 지원하는 풍부한 에코시스템을 제공합니다. 이와 함께 Lambda는 추가 AWS 서비스와 통합되어 서버리스 애플리케이션을 구축하기 위한 풍부한 에코시스템을 제공합니다.

Lambda 기반 응용 프로그램 실행 비용

Lambda는 세분화된 종량제 가격 모델을 제공합니다. 이 모델의 경우 함수 호출 수와 그 지속 시간(코드를 실행하는 데 걸리는 시간)에 따라 요금이 청구됩니다. Lambda는 이러한 유연한 가격 모델 외에도 매월 100만 개의 영구적인 무료 요청을 제공하므로 많은 고객이 비용을 들이지 않고도 프로세스를 자동화할 수 있습니다.

책임 분담 모델

보안 및 컴플라이언스는 AWS와 고객 간의 공동 책임입니다. 이 공유 책임 모델은 AWS가 호스트 운영 체제 및 가상화 계층에서 서비스 운영 체제의 물리적 보안까지 구성 요소를 작동, 관리 및 제어하므로 운영 부담을 줄이는 데 도움이 됩니다. 게스트 운영 체제(업데이트 및 보안 패치 포함) 및 기타 관련 애플리케이션 소프트웨어와 AWS에서 제공하는 보안 그룹 방화벽의 구성을 책임지고 관리합니다.

AWS Lambda의 경우 AWS는 기본 인프라 및 기반 서비스, 운영 체제 및 애플리케이션 플랫폼을 관리합니다. 귀하는 Lambda 서비스와 기능 내에서 코드의 보안, 중요한 데이터의 저장 및 접근성, IAM(ID 및 액세스 관리)을 책임집니다.

그림 1은 AWS Lambda에 대한 공유 책임 모델을 보여줍니다. AWS 책임은 주황색으로, 고객 책임은 파란색으로 표시됩니다. AWS는 Lambda에 배포된 애플리케이션에 대해 더 많은 책임을 집니다.

그림 1 — AWS Lambda의 공유 책임 모델

Lambda 런타임 환경

Lambda는 사용자를 대신하여 기능을 실행할 때 프로비저닝과 코드를 실행하는 데 필요한 리소스를 모두 관리합니다. 이를 통해 개발자는 시스템을 관리하는 것이 아니라 비즈니스 로직과 코드 작성에 집중할 수 있습니다.

Lambda 서비스는 제어면과 데이터 평면으로 분할됩니다. 각 평면은 서비스에서 뚜렷한 목적을 제공합니다. 제어부는 기능 관리 API(CreateFunction, UpdateFunctionCode )를 제공하고 모든 AWS 서비스와의 통합을 관리합니다. 데이터 평면은 Lambda 기능을 실행하는 Invoke API를 제어합니다. Lambda 기능이 호출되면 데이터 평면은 해당 기능에 실행 환경을 할당하거나 해당 기능에 대해 이미 설정된 기존 실행 환경을 선택한 다음 해당 환경에서 기능 코드를 실행합니다.

각 기능은 하나 이상의 전용 실행 환경에서 실행되며, 이 환경은 해당 기능의 수명 동안 사용 각 실행 환경은 동시 호출 하나를 호스팅하지만 동일한 기능의 여러 직렬 호출에서 재사용됩니다. 실행 환경은 하드웨어 가상화된 가상 시스템(마이크로VM)에서 실행됩니다. 마이크로VM은 AWS 계정 전용이지만, 계정 내의 여러 기능에 걸친 실행 환경에 의해 재사용될 수 있습니다. MicroVM은 AWS 소유 및 관리 하드웨어 플랫폼(Lambda Workers)에 패키징됩니다. 실행 환경은 기능 간에 공유되지 않으며, 마이크로VM은 AWS 계정 간에 공유되지 않습니다.

그림 2 — AWS Lambda의 격리 모델

[ 고지 사항 (Disclaimer) ]

본 컨텐츠는 고객의 편의를 위하여 AWS 서비스 설명을 위해 제작, 제공된 것입니다. 만약 AWS 사이트와 컨텐츠 상에서 차이나 불일치가 있을 경우 AWS 사이트 (AWS.amazon.com)가 우선합니다. 또한 AWS 사이트 상에서 한글 번역문과 영어 원문에 차이나 불일치가 있을 경우(번역의 지체로 인한 경우 등 포함), 영어 원문이 우선합니다.

본 문서는 Security Overview of AWS Lambda (2019년, 영문) 내용에 기반하여 작성 되었습니다.

이 문서는 정보 제공의 목적으로만 제공됩니다. 본 문서의 발행일 당시 AWS의 현재 제품 오퍼링 및 실행방법 등을 설명하며, 예고 없이 변경될 수 있습니다. 고객은 본 문서에 포함된 정보나 AWS 제품 또는 서비스의 사용을 독립적으로 평가할 책임이 있으며, 각 정보 및 제품은 명시적이든 묵시적이든 어떠한 종류의 보증 없이 “있는 그대로” 제공됩니다. 본 문서는 AWS, 그 자회사, 공급업체 또는 라이선스 제공자로부터 어떠한 보증, 표현, 계약 약속, 조건 또는 보장을 구성하지 않습니다. 고객에 대한 AWS의 책임 및 의무는 AWS 계약에 의해 관리되며 본 문서는 AWS와 고객 사이의 어떠한 계약에도 속하지 않으며 계약을 변경하지도 않습니다.

© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.

--

--

빌드업웍스
빌드업웍스

Written by 빌드업웍스

클라우드 교육, 구축, 운영, 관리, 컨설팅 및 교육 리소스 디지털 퍼블리싱 : AWS 파트너, 유데미 파트너| buw.co.kr | admin@buw.co.kr | 053–954–3711

No responses yet