AWS 계정에서 개선해야할 10가지 보안 항목

2020. 04. 24 | 블로그

안녕하세요 디딤365입니다. 클라우드 보안을 향상시키려는 경우 AWS의 최고 정보 보안 책임자인 Stephen Schmidt가 AWS re:Invent 2019에서 제시한 10가지 보안 조언을 따르는 것이 좋습니다.

이에 이번 포스팅에서는 이 10가지 조언을 차례대로 알아보겠습니다.

1. 정확한 계정 정보

AWS가 AWS계정 소유자에게 연락해야 하는 경우 계정 생성에 사용된 메일 주소와 대체 연락처를 사용합니다. 모든 메일 주소는 1명에게 의존하지 않도록 설정해야 합니다. 또한 이러한 전자 메일 주소로 메일을 잘 수신하고 있는지 확인해야 하고, 특히 abuse@amazon.com 의 주소로 오는 보안 알림을 정기적으로 확인하는 과정이 필요합니다. 부재중에도 중요한 메시지를 확실하게 받을 수 있도록 대체 연락처를 설정하는 방법에 대해 알아봅니다.

2. MFA 사용 (Multi-Factor Authentication)

MFA는 부적절한 접근으로부터 계정을 보호하는 최선의 방법입니다. Root 사용자와 IAM 사용자에게 항상 MFA 설치를 권장합니다. AWS SSO을 사용하여 AWS에 대한 액세스를 제어하거나 회사 ID 저장소를 통합할 경우 MFA를 적용할 수 있습니다. AWS에서 MFA를 시작하려면 MFA (Multi-Factor Authentication) 사용을 참조하세요.

3. 암호를 hard-coding할 필요 없음

AWS에서 애플리케이션을 구축하는 경우 AWS IAM 역할을 사용하여 AWS 서비스를 호출하기 위한 일시적인 단기 자격 증명을 제공할 수 있습니다. 그러나 일부 응용 프로그램에서는 데이터베이스 암호, API 키와 같이 수명이 긴 자격 증명이 필요합니다. 이 경우 이 암호를 응용프로그램에 hard-coding 하거나 소스 코드에 저장해서는 안됩니다.

AWS Secrets Manager를 사용하여 애플리케이션의 정보를 제어할 수 있습니다. Secrets Manager를 사용하여 데이터베이스 자격 증명, API 키 및 기타 암호를 수명 주기를 통해 관리 및 검색할 수 있습니다. 사용자와 애플리케이션은 Secrets Manager API를 호출하여 암호를 얻을 수 있기 때문에 중요한 정보를 일반 텍스트로 hard-coding할 필요가 없습니다.

또한, Amazon EC2에서 실행되는 애플리케이션에 AWS IAM 역할을 사용하는 방법도 배워야합니다. 최상의 결과를 얻으려면 AWS Secrets Manager를 사용하여 데이터베이스 자격증명을 AWAS Lambda 함수에 안전하게 제공하는 방법을 알아보세요.

4. 보안 그룹 제한

보안 그룹은 AWS에서 프로비저닝 한 리소스에 대한 네트워크 액세스를 활성화할 수 있는 중요한 방법입니다. 필요한 포트만 열려 있고 연결이 알려진 네트워크 범위에서 연결이 가능하도록 하는 것은 보안에 대한 기본적인 접근 방식입니다. AWS Config 또는 AWS Firewall Manager와 같은 서비스를 사용하여 VPC (Virtual Private Cloud) 보안 그룹 구성을 프로그래밍 방식으로 보장할 수 있습니다. 네트워크 도달 가능성 규칙 패키지는 Amazon VPC네트워크 구성을 분석하여 인터넷 가상 사설 게이트웨이와 같은 외부 네트워크에서 Amazon EC2 인스턴스에 도달할 수 있는지 여부를 결정합니다. AWS Firewall Manager를 사용하여 AWS WAF 규칙을 AWS 계정의 전체 리소스에 자동으로 적용할 수 있습니다 . VPC 보안 그룹의 변경 사항 감지 및 대응에 대해 자세히 알아보세요.

5. 계획적인 데이터 정책

모든 데이터가 동일하게 생성되는 것은 아니므로 데이터를 올바르게 분류하는 것이 보안에 중요합니다. 긴 액세스 절차를 필요로 하는 엄격한 보안 상태는 데이터 보안에 대한 강력한 보증을 제공합니다. 그러나 이러한 보안 상태는 개발자가 원하는 빠른 개발 환경에 맞지 않을 수 있습니다. 다양한 액세스 요구 사항을 충족하도록 데이터 분류에 대한 접근 방식을 설계하세요.

데이터를 분류하는 방법은 Public 또는 Private일 필요는 없습니다. 데이터는 다양한 수준의 민감도로 제공되며 모두 다른 수준의 민감도와 기밀성에 해당하는 데이터가 있을 수 있습니다. 아래 제안에서 Public data 와 Private data의 차이를 주로 다룹니다. 현재 분류 정책이 없는 경우 private과 public을 비교해보며 시작하는 것이 좋습니다.

데이터가 분류되거나 분류되는 동안 데이터를 보호하려면 다음 단계를 수행하세요.

1) 퍼블릭 용도의 Amazon S3 버킷이 있는 경우 모든 데이터를 퍼블릭 액세스를 위해 별도의 AWS 계정으로 이동하세요. 사람이 아닌 프로세스만 데이터를 해당 버킷으로 이동할 수 있도록 정책을 설정하세요. 이를 통해 다른 AWS 계정에서 퍼블릭 Amazon S3 버킷을 만드는 기능을 차단할 수 있습니다.

2) Amazon S3를 통해 데이터를 공유할 수 없는 계정에서 공개 액세스를 차단하려면 Amazon S3를 사용하세요.

3) KMS를 사용한 암호화 및 암호 해독에 서로 다른 두 가지 IAM 역할을 사용하세요. 이를 통해 데이터 입력과 데이터 검토를 분리할 수 있으며 해당 역할을 분석하여 실패한 암호 해독 시도에 대한 위협 탐지를 수행할 수 있습니다.

6. CloudTrail 로그를 중앙 집중화

로깅 및 모니터링은 강력한 보안 계획의 중요한 부분입니다. 예상치 못한 환경 변화를 조사하거나 분석을 수행하여 보안 상태를 반복할 수 있으려면 데이터에 액세스해야 합니다. 로깅을 위해 지정된 AWS 계정의 S3 버킷에 로그, 특히 AWS CloudTrail을 작성하는 것이 좋습니다. 버킷에 대한 권한으로 인해 로그가 삭제되지 않아야 하며 저장시에도 암호화 되어야 합니다. 로그가 중앙 집중화되면 SIEM 솔루션과 통합하거나 AWS 서비스를 사용하여 분석할 수 있습니다. AWS 서비스를 사용하여 AWS CloudTrail 로그를 시각화하는 방법을 알아보세요.

7. IAM 역할 확인

기능을 반복하고 구축하기 위해 AWS 계정을 운영함에 따라 나중에 필요하지 않은 여러 IAM 역할이 생성될 수 있습니다. AWS IAM 액세스 분석기를 사용하여 내부 AWS 리소스에 대한 액세스를 검토하고 AWS 계정 외부에서 공유 액세스 권한이 있는 위치를 결정하세요. AWS IAM 역할 및 권한을 정기적으로 평가하기위해, Security Hub 또는 Prowler와 같은 오픈 소스 제품을 사용할 수 있습니다. 이미 여러 역할을 생성한 경우 사용하지 않는 IAM 역할을 검색하고 제거할 수 있습니다.

8. 결과에 대한 조치

AWS Security Hub, Amazon GuardDuty, AWS Identity and Access Management Access Analyzer는 AWS 계정에서 조치 가능한 결과를 제공하는 관리형 AWS 서비스입니다. 여러 계정을 쉽게 통합할 수 있습니다. 결과를 본다면 조치를 취해야합니다. 취해야 할 조치는 자신의 사고 대응 정책에 따라 결정됩니다. 각 결과에 대해 필요한 대응 조치가 무엇인지 확인하세요.

작업은 사람에게 알리도록 응답할 수 있지만, AWS 서비스에 대한 경험이 많을수록 생성된 결과에 대한 응답을 자동화하려 합니다. Security Hub에서 결과 응답을 자동화하는 방법에 대해 자세히 알아보세요.

9. 키 변환

Security Hub가 제공하는 것들 중 하나는 CIS 벤치 마크를 사용하여 AWS 계정의 규정 준수 상태를 보는 것입니다. 이러한 검사 중 하나는 90일이 지난 액세스 키를 가진 IAM 사용자를 찾는 것입니다. 역할 대신 액세스 키를 사용해야하는 경우 정기적으로 변환해야합니다. 자세한 지침은 AWS 액세스 키 관리 모범 사례를 검토하세요. 사용자가 페더레이션을 통해 AWS에 액세스하는 경우 사용자에게 AWS 액세스 키를 발급할 필요가 없습니다. 사용자는 IdP를 인증하고 대상 AWS 계정에서 IAM 역할을 맡습니다. 결과적으로 사용자에게는 IAM 역할과 관련된 단기 자격 증명이 있기 때문에, 장기 자격 증명이 필요하지 않습니다.

10. 개발 사이클에 참여하세요.

마지막으로 “개발 사이클에 참여하세요”는 사람에 관한 것이며 “조직의 보안 문화를 높이세요”라고 바꿔 말할 수 있습니다. 조직의 모든 부분에서 사람들의 역할은 비즈니스가 솔루션을 안전하게 시작하도록 돕는 것입니다. 보안과 관련된 일을 하는 사람들은 조직의 다른 인원들에게 보안에 대해 교육해야 하며 보안의 기준을 높여야 합니다. 보안은 보안 직책에 있는 사람들을 위한 것이 아니라 조직 모두의 일입니다.

이상 보안 강화를 위한 10가지 사항을 모두 살펴보았습니다.

이를 통해 AWS 계정에 클라우드를 안전하게 구축하시길 바랍니다. 감사합니다.

원문 : Nathan Case

번역 : 영업컨설팅본부 2팀 김남현 매니저

편집 : 전략사업본부 마케팅팀 조항준 주임