[AWS Summit Korea] 보안

GonnabeAlright·2022년 5월 11일
0
post-thumbnail

본 게시글은 AWS Summit Korea 2022 이기백 (테크니컬 트레이너, AWS)님의 AWS 클라우드 핵심 서비스 소개 강연을 보고 정리한 글입니다.

AWS를 사용하는 고객은 데이터를 저장하고 암호화하는 등 고객의 데이터에 대한 소유권을 항상 유지하면서 안전한 글로벌 인프라를 기반으로 서비스를 구축할 수 있도록 지원하고 있습니다.

예를 들어 AWS 글로벌 네트워크를 통해 전송되는 모든 데이터는 데이터 계층에서 자동으로 암호화됩니다. 나아가서는 모든 VPC 교차 리전 피어링 트래픽, 고객 또는 서비스 간 TLS 연결 등 추가적인 암호화 계층도 존재합니다. 또한 AWS는 금융, 소매, 의료, 정부 등의 보안 및 규정 준수 표준 인증 조건을 충족하기 위해 지속적으로 모니터링하고 있습니다.

또한 수천 가지의 글로벌 규정 준수 요구 사항에 대해 타사 검증을 정기적으로 진행하여 고객이 규정을 준수할 수 있도록 지원하고 있습니다. 하지만 보안과 규정 준수는 AWS와 고객의 공동 책임입니다. 이것을 AWS의 공동 책임 모델이라고 합니다.

AWS의 책임 영역

AWS는 호스트 운영 체제 및 가상화 계층부터 서비스가 운영되는 시설의 물리적 보안에 이르기까지 구성 요소를 운영, 관리 및 제어하는 역할과 같은 고객의 운영 부담을 줄일 수 있습니다. 이 부분은 AWS의 책임 영역입니다.

사용자의 책임 영역

반면 고객은 인스턴스 운영체제의 업데이트와 보안 패치를 포함한 다른 관련 소프트웨어를 관리하고 AWS에서 제공한 보안 그룹도 직접 구성할 책임이 있습니다. 따라서 고객은 서비스를 구현할 때 신중하게 고려해야 합니다. 고객의 책임이 적용되는 환경에서 특정 소프트웨어의 사용 그리고 관계 법규에 따라 보안에 대한 요구 사항이 달라지기 때문입니다. 이러한 책임의 차이를 일반적으로 클라우드의 보안클라우드에서의 보안이라고 부릅니다.

클라우드의 보안 (AWS의 책임 영역)

AWS의 책임인 클라우드의 보안의 영역에서 AWS는 모든 서비스를 실행하는 인프라를 보호할 책임이 있습니다. 단순한 하드웨어뿐만 아니라 이 인프라는 AWS 서비스를 실행하는 소프트웨어, 네트워킹 및 시설로 구성됩니다.

클라우드에서의 보안 (사용자의 책임 영역)

반면에 '클라우드에서의 보안'은 고객이 책임지는 영역입니다.
클라우드에서의 보안을 확보하기 위해서는 사용하고자 하는 서비스의 종류에 따라 고객이 보안을 책임지는 데 필요한 작업이 달라집니다. 예를 들어 데이터의 서버 측 암호화 여부나 운영체제 보안 패치 실행 여부는 고객의 책임 영역입니다.

AW Identity and Access Management(IAM)


Identity and Access, 즉 자격 증명과 접근에 대해 관리를 하는 서비스입니다. IAM을 사용하면 AWS 서비스에서 생성한 리소스에 대해 접근을 안전하게 통제할 수 있습니다. 또한 AWS 사용자 및 그룹, 역할을 만들고 관리할 수 있고 접근권한을 허용하거나 거부하는 정책을 정의해서 AWS 리소스에 대한 접근 관리를 합니다. 즉 IAM에서 사용자를 생성하거나 사용자에게 개별 보안 자격증명을 할당하거나 임시 보안 자격 증명을 요청해서 사용자에게 AWS 서비스 및 리소스에 대한 액세스 권한을 제공할 수 있습니다. 이렇게 전체 AWS 리소스에 대한 보안을 제공하는 IAM은 AWS를 사용하는 데 있어 필수적인 기능이기 때문에 추가 비용 없이 제공하는 기능입니다.

IAM 구성 요소

IAM은 다음과 같은 구성 요소로 이루어져 있습니다. 먼저 사용자입니다.
여러분은 IAM 사용자를 통해서 인증을 할 수 있습니다. 인증은 이 사람이 실제 사용자가 맞는지 확인하는 과정을 의미합니다. AWS를 어떻게 사용하는지 그 방법에 따라 인증 방식은 크게 IAM user의 ID와 Password를 이용하거나 Access Key ID와 Secret Access key를 기반으로 하는 두 가지 방식으로 구분할 수 있습니다. 이 인증 방식의 차이는 관리 콘솔을 사용하는 경우와 그 외의 경우로 나누어지며 콘솔로 로그인할 때만 IAM user Password 기반으로 이루어지고 그 외의 SDK나 CLI와 같이 프로그래밍 방식을 사용하는 경우 Access Key ID와 Secret Access Key를 기반으로 이루어집니다.

정책

그룹은 동일한 권한을 가진 사용자 모음으로 여러분들이 권한을 제어할 수 있는 정책을 좀 더 효율적으로 관리할 수 있습니다. 사용자에게 정책을 연결해서 권한을 할당하는 것이 아니라 그룹에 이를 할당하고 해당 그룹에 사용자를 포함시키면 해당 사용자는 아무런 권한이 없어도 그룹의 권한을 상속받게 됩니다.

그룹

여러분이 IAM 사용자로 로그인을 해도 AWS 서비스에 대한 사용 권한이 없다면 아무것도 할 수 없습니다. 이러한 권한을 주기 위해 여러분들은 JSON 형태로 기술된 정책을 사용자, 그룹, 다음에 얘기할 역할에 연결하게 됩니다. 해당 정책을 통해서 IAM 사용자는 적절한 권한을 가지고 AWS 서비스를 사용할 수 있습니다.

역할

역할이라고 하는 것은 AWS 자격 증명이라는 점에서 사용자와 비슷합니다. 그러나 역할은 IAM 사용자 뿐만 아니라 AWS 리소스에 액세스할 수 없는 사용자 애플리케이션 또는 AWS 리소스에 액세스 권한을 위임할 수 있습니다. 또한 역할에는 그와 연관된 암호 또는 액세스 키와 같은 장기 자격 증명이 없습니다. 대신에 역할을 맡은 사용자에게는 해당 역할을 사용하는 동안 임시로 보안 자격 증명이 제공되고 IAM 사용자의 경우 자신의 권한을 임시로 포기하고 해당 역할의 권한을 사용하게 됩니다. AWS 리소스에 대한 액세스 권한이 없는 사용자, 애플리케이션 또는 서비스에 액세스 권한을 위임하려면 IAM 역할을 사용하세요.

IAM 사용자를 좀 더 살펴보도록 하겠습니다.

IAM 사용자


IAM 사용자는 여러분들이 처음 이메일로 가입한 AWS의 계정과 동등한 수준이 아니라 계정 안에 속합니다. 그리고 각 사용자는 매니지먼트 콘솔에 접근하기 위해 ID, Password를 사용할 수 있습니다. 그 외에 프로그래밍 액세스를 위해 Access Key ID, Secret Access Key를 부여할 수 있습니다.

프로그래밍 방식 액세스는 Commnad Line Interface, SDK를 통해 AWS 서비스를 제어하는 것을 말합니다. 다만 이 상태에서는 자신이 누군지에 대한 인증만 되므로 다른 AWS 서비스 제어에 대한 권한을 가지고 있지 않습니다. 예를 들어 홍길동이라는 사용자가 로그인했지만 EC2에 대한 권한이 없어서 EC2 인스턴스를 조회하거나 시작, 정지를 할 수 없는 것입니다. 이렇게 서비스에 대한 권한을 제공하기 위해 정책을 연결할 수도 있으며 역할을 부여해 임시로 권한을 부여할 수 있습니다.

보안 모범 사례

루트 계정은 일종의 슈퍼 유저 또는 루트 사용자 권한을 가지므로 해당 계정을 탈취당하면 보안에 심각한 위협이 가해질 수 있습니다. 보안 모법 사례로 계정은 프로그래밍 방식 액세스를 하지 않도록 해당 자격 증명을 폐기하고 추가적으로 MFA, 멀티팩트 인증을 통해 보안을 강화해야 합니다.

IAM 정책 유형


IAM의 정책 유형은 다음과 같이 분류할 수 있습니다. IAM 사용자, 그룹, 역할과 같은 자격증명 기반, Amazon S3와 같이 리소스 자체에서 권한을 부여해 접근을 제어할 수 있는 리소스 기반 정책이 있습니다. 이를 S3 버킷 정책이라고 합니다.

리소스 기반 정책을 통해 S3에 대한 접근을 소유자만 접근하거나 Public으로 변경해 모든 익명의 사용자가 접근하게 하거나 사용자를 지정하여 허용할 수 있습니다. 이렇듯 IAM 정책을 통해 세밀하고 강력한 보안을 구축할 수 있습니다.

IAM 서비스는 AWS 서비스에 대해서 인증 및 인가 부분은 처리하지만 서비스에 대한 추적을 하지는 않습니다. 이러한 계정의 사용자 활동 및 API를 추적해야 합니다. CloudTrail이라는 서비스를 통해서 AWS 계정의 사용자 활동 및 API 활동을 추적할 수 있습니다.

CloudTrail


CloudTrail은 Amazon S3 버킷으로 전송되며 해당 로그에서 여러분들의 정보는 누가, 무엇을, 언제, 어디로 작업을 수행했고 결과는 어떠했는지 확인할 수 있습니다. 또한 CloudTrail 로그를 통해서 이를 감사 자료로 활용하거나 분석을 통해 발생할 수 있는 잠재적 위협을 조기에 식별하고 조치할 수 있습니다.

AWS Trusted Advisor


AWS Trusted Advisor는 비용 최적화, 보안, 내결함성, 성능, 서비스 한도라는 다섯 가지 범주의 모범 사례를 제공합니다.

검사 상태는 대시보드 페이지에서 3가지 색상을 사용해 표시됩니다. 빨간색은 조치가 권장된다는 의미이며 노란색은 조사가 권장된다는 의미입니다. 녹색은 탐지된 문제가 없음을 나타냅니다.

각 검사에서 권장되는 모범 사례에 대한 자세한 설명, 알림 기준 집합, 조치를 위한 지침, 주제와 관련된 유용한 리소스 목록을 볼 수 있습니다.

비용 최적화

먼저 비용 최적화 부분에서 사용되지 않는 유휴 리소스를 제거하거나 예약 용량을 약정하여 AWS에서 비용을 절약할 수 있는 방법을 알아볼 수 있습니다.

성능

성능 부분은 서비스 한도를 점검하고 프로비저닝 된 처리량을 활용하는지 확인하고 초과 사용되는 인스턴스를 모니터링해 성능을 개선할 수 있습니다.

보안

보안 부분은 결함을 없애고 다양한 AWS 보안 기능을 사용하고, 권한을 점검해 서비스에 대한 보안을 향상시킬 수 있습니다.

내결함성

다음으로 내결함성은 자동 조정, 상태 확인, 복수 가용 영역, 백업 기능을 활용하여 AWS 애플리케이션의 가용성과 중복성을 높이는 데 활용될 수 있습니다.

서비스 한도

마지막으로 서비스 한도는 서비스 한도의 80%가 넘는 서비스 사용량이 있는지 점검합니다. 값은 스냅샷을 기반으로 하며 현재 사용량과 다를 수 있습니다. 한도 및 사용량에 변경 사항이 반영되는 데 최대 24시간이 걸릴 수 있습니다.

0개의 댓글