본문 바로가기

Infrastructure/Cloud Computing

[Well-Architected] Security Pillar

Security Pillar

이번 장에서는 Well-Architected Framework의 보안(Security)에 대해서 알아본다.


보안

  • 보안 원칙은 정보 및 시스템을 보호하는 능력에 중점을 두며, 아래와 같은 5가지 핵심 영역이 있다.
    • 자격 증명 및 액세스 관리를 통해 누가 무엇을 할 수 있는지 제어한다.
    • 탐지 제어를 통해 보안 이벤트를 탐지한다.
    • 인프라 보호를 통해 시스템을 보호한다.
    • 데이터의 기밀성 및 무결성을 유지한다.
    • 보안 이벤트에 대한 대응을 한다.

보안 설계 원칙

  • 보안 설계 원칙을 도입하면 클라우드 네이티브 아키텍처를 구축하여 운영할 수 있다.
  • 보안을 모든 계층에 적용하여 사용량과 변동 사항을 추적하기 때문에 코드를 트리거하여 이벤트 또는 이벤트 조합에 대응할 수 있다.
  • 세분화된 액세스 제어를 통해 누가 무엇을 할 수 있는지 지정하거나 보안 이벤트 및 자동화를 준비하는 데 시간을 투입할 수 있다.
  • 자동화, 무결성, 버전 관리 및 확장성을 구현하는 것이 가능하다.
  • 클라우드 환경에서의 대표적인 보안 설계는 아래와 같다.
    • 강력한 자격 증명 기반을 구현한다.
    • 세분화된 액세스 제어를 사용한다.
    • 모든 계층에 보안을 적용한다.
    • 보안 모범 사례를 자동화한다.
    • 보안 이벤트 및 자동화에 대비한다.

안전한 운영

  • 워크로드를 안전하게 운영하려면 보안 영역마다 중요한 모범 사례를 적용해야 한다.
  • 조직 및 워크로드 수준에서 운영 우수성으로 정의한 요구 사항 및 프로세스를 모든 영역에 적용해야 한다.
  • 워크로드를 직무 또는 공통 통제군에 따라 별도 계정과 그룹 계정으로 구성한다.
  • AWS Organizations 및 AWS Control Tower를 사용하여 계정을 관리하고 공통 가드레일을 설정함으로써 누구나 모범 사례를 따르고 여러 계정 관련 작업을 자동화할 수 있도록 한다.

자격 증명 및 액세스 관리

자격 증명

  • 자격 증명을 관리하는 몇 가지 모범 사례에 대해서 살펴본다.
    • AWS Identity and Access Management(IAM)
      • IAM는 AWS 서비스이며 보안 워크로드 구축의 핵심 부분이다.
      • IAM을 이용하면 승인 및 인증을 받은 사용자와 서비스에 한해서 의도한 방식으로만 리소스를 액세스할 수 있다.
      • 예를 들어, IAM 정책에는 추가 조건을 포함해 액세스를 관리하는 특정 세부 권한 목록이 있다.
      • IAM을 통해 고객은 AWS 서비스와 리소스에 대한 사용자와 기계의 액세스를 제어할 수 있다.
      • 사용자, 그룹, 역할 또는 리소스에 권한을 부여하는 세분화된 정책을 적용할 수 있다.
    • 강력한 로그인 메커니즘
      • Multi-Factor Authentication(MFA), 최소 암호 길이 등 강력한 서명 메커니즘을 구성하고 사용자를 대상으로 많이 사용하거나 다시 사용하는 암호는 피하도록 교육해야 한다.
    • 중앙 집중식 자격 증명 공급자
      • 자격 증명 공급자가 중앙에서 자격 증명을 관리하기 때문에 한 곳에서 액세스를 생성, 관리, 취소하여 더욱 손쉽게 액세스를 관리할수 있다.
      • AWS Sing Sign-On(AWS SSO) 서비스는 내장 또는 외부 자격 증명 스토어에서 자격 증명을 관리하는 데 도움이 된다.
      • 예를 들어, 데이터베이스나 제3자 애플리케이션에 대한 암호 같이 암호가 필요한 자격 증명은 최신 업계 표준에 따라 자동 교체 기능이 지원되는 전문 서비스를 통해 저장되어야 한다.
    • 보안 암호
      • Amazon Relational Database Service(Amazon RDS) 등의 AWS 서비스와 통합되는 AWS Secrets Manager를 사용할 수 있다.

권한

  • 액세스 요구 사항을 정의한다.
    • 권한 관리를 통해 AWS 및 워크로드에 액세스해야 하는 인간 및 기계 자격 증명에 대한 액세스를 제어한다.
    • 이러한 권한에 누가 어떤 조건에서 어디에 액세스할 수 있는지 결정된다.
    • 워크로드의 각 구성 요소나 리소스는 관리자, 최종 사용자 또는 다른 구성 요소를 통해 액세스해야 한다.
    • 각 구성 요소마다 액세스가 필요한 사용자 또는 시스템을 명확하게 정의한다.
    • 인증하고 권한을 부여하는 데 적합한 자격 증명 유형과 방법을 선택한다.
  • 최소한의 권한을 부여한다.
    • 특정 조건에서 특정 AWS 리소스에 대한 특정 작업에 한해 액세스를 허용하여 자격 증명에 필요한 액세스만 허용한다.
    • 개별 사용자마다 권한을 정의하는 대신 그룹 및 자격 증명 속성을 이용해 권한을 대규모로 동적 설정한다.
  • 퍼블릭 및 교차 계정 액세스를 제한한다.
    • 퍼블릭 및 교차 계정 액세스를 강조하는 결과물을 지속적으로 모니터링한다.
    • 퍼블릭 액세스 및 교차 계정 액세스를 이러한 유형의 액세스가 필요한 리소스로 제한한다.
  • 권한을 지속적으로 줄인다.
    • 사용하지 않는 자격 증명과 권한을 지속적으로 모니터링하여 줄인다.
    • 더 이상 사용하지 않는 권한을 삭제하고 권한을 최소화할 수 있는 심사 프로세스를 마련한다.

Amazon Cognito

  • 자격 증명을 위해 사용되는 서비스로 Amazon Cognito가 있다.
  • Amazon Cognito의 주요 이점 중 하나는 자격 증명 브로커 구성 요소이다.
  • 자격 증명 브로커 구성 요소는 고유 식별자를 생성한 후 사용자가 임의로 로그인 공급자를 통해 로그인할 때 고유 식별자와 비교한다.
  • 개발자는 로그인 공급자를 유연하게 선택할 수 있다.
  • 버전 1에서는 Google+, Amazon 및 Facebook을 지원하므로 SDK를 사용하여 손쉽게 통합할 수 있다.
  • 핵심은 로그인 공급자가 아니라 사용자이며 해당 사용자에 대한 사용자 기본 설정을 관리한다.
  • Amazon Cognito를 사용하면 클라우드 리소스 액세스를 위한 AWS 보안 모범 사례를 쉽게 구현할 수 있다.
  • 각 앱의 사용자가 모든 AWS 서비스에 액세스할 수 있는 권한이 제한된 임시 AWS 자격 증명 세트를 각 앱에 제공한다.

보안

탐지 제어

  • “탐지”란 보안 이벤트를 탐지하여 식별할 수 있는 능력을 의미한다.
  • 다수의 규정 준수 표준 및 프레임워크에서 공통으로 요구하는 능력으로서 높은 품질의 프로세스, 법률적 규정 준수 의무 또는 위협 식별 및 대응 노력을 지원하는 데 사용할 수 있다.
  • 탐지 제어에는 다양한 유형이 있다.
    • 운영 기준을 설정하기 위한 수명 주기 제어: 자산과 해당 세부 속성에 대한 인벤토리를 실시하면 운영 기준을 설정하는 데 도움이 되는 보다 효과적인 의사 결정을 내릴 수 있다.
    • 제어 검사를 위한 내부 감사 및 자동 알림: 내부 감사를 통해 정보 시스템과 관련된 제어를 통해 정보 시스템과 관련된 제어를 검사하여 실제 시행이 정책 및 요구 사항을 충족하는지, 정의된 조건에 따라 올바른 자동 알림을 설정했는지 확인할 수 있다.
  • 이러한 제어는 중요한 대응적 요소로서 조직이 변칙적인 활동을 식별하고 이해하는 데 도움이 된다.

탐지: 잘못된 구성 탐지 및 대응 자동화

  • 탐지에서 보안 모범 사례를 나타내는 예로 이벤트에 대한 대응 자동화가 있다.
  • 보안 이벤트가 발생할 경우에 따라야 할 플레이북이 있는 경우도 있지만, 해당 프로세스를 시작하는 사람이나 보안 이벤트를 인지하고 플레이북을 정확하게 준수했는지 확인하는 사람에 따라 크게 달라지기도 한다.
  • AWS는 특정 이벤트가 발생했을 때 플레이북 실행을 자동화할 수 있는 탐지 메커니즘을 제공한다.
  • AWS Config를 규칙 및 적합성 팩과 함께 사용하면 사용자가 AWS 리소스에 대한 작업을 수행할 때 코드를 실행할 수 있다.
  • 메커니즘을 통해 AWS 리소스를 생성하거나 수정하는 경우 예를 들어, AWS 콘솔 또는 API라고 한다면 규칙과 비교해 트리거되고 필요한 경우 문제 해결 코드까지 실행한다.
  • 이러한 방식은 플레이북이 코드화되어 버전 관리와 테스트까지 가능하다는 점에서 유용하다.
  • 더욱 중요한 것은 대응이 필요한 이벤트가 발생하면 동시에 코드가 자동으로 실행된다는 사실이다.

인프라 보호

  • 인프라 보호는 정보 보안 프로그램의 핵심 부분이다.
  • 인프라를 보호하면 의도하지 않은 무단 액세스 및 잠재적 취약점으로부터 워크로드 내의 시스템 및 서비스가 보호되며 아래와 같은 방법이 있다.
    • 신뢰 경계: 네트워크 및 계정 경계
    • 시스템 보안 구성 및 유지 관리: 강화, 최소화 및 패치
    • 운영 체제 인증 및 권한 부여: 사용자, 키 및 액세스 수준
    • 적절한 정책 적용 지점: 웹 애플리케이션 방화벽 및 API 게이트웨이

인프라 보호

모든 계층에서 트래픽 제어

  • 인프라 보호에서 보안 모범 사례를 나타내는 예로 모든 계층에서의 트래픽 제어가 있다.
  • 아래의 예시에 인바운드 트래픽, 아웃바운드 트래픽 모두에 대해 심층 방어 접근법을 사용한 제어가 가능하다.
    • 엣지 서비스(AWS WAF, Amazon CloudFront 등)
    • 서브넷을 사용한 Amazon Virtual Private Cloud(VPC)를 계층으로 나눈다.
  • 사용 가능한 제어 기능을 모두 사용한다.

관리형 서비스 사용

  • 인프라 보호에 대한 또 한 가지 모범 사례는 관리형 서비스를 사용하는 것이다.
  • 관리형 서비스를 이용하면 고객이 서비스에 따라 인스턴스 또는 기본 컴퓨팅, 운영 체제 패치등을 할 필요가 없다.
  • 이를 통해 고객은 워크로드의 더 중요한 다른 측면을 보호하는 데 집중할 수 있다.

데이터 보호

  • 데이터 보호는 보유한 데이터를 식별 및 분류한 후 제어 수단과 패턴을 사용해 데이터 기밀성을 유지하는 동시에 데이터를 저장하거나 전송할 때도 무결성과 가용성을 유지하는 것을 의미한다.
  • AWS는 데이터 보호를 지원할 목적으로 아래와 같은 모범 사례를 소개하고 있다.
    • 워크로드에 저장된 데이터를 식별
      • 여기에는 데이터를 공개적으로 사용가능한지 여부, 고객 개인 식별 정보(PII) 같이 데이터가 내부 용도로만 사용되는지 여부 또는 지적 재산권, 법적 기밀 사항 또는 민감한 데이터 같이 데이터에 대한 액세스가 보다 제한적인지 여부를 나타내는 데이터 분류가 포함될 수 있다.
      • Amazon Macie는 저장 데이터를 분류하는 데 도움이 될 수 있다.
      • AWS에서는 데이터 암호화와 키 관리가 간단하다. 여러 서비스에 통합되는 AWS KMS를 사용하여 손쉽게 키를 관리할 수 있기 때문이다.
    • 메커니즘을 통해 데이터 수동 처리를 최소화
      • 정상적인 운영 환경에서는 어떤 사용자든지 민감한 데이터와 시스템에 직접 액세스할 수 없다.
      • 예를 들어, 데이터스토어에 직접 액세스하지 않고도 쿼리를 실행할 수 있도록 대시보드를 제공한다.
    • 전송 데이터를 암호화
      • 적절한 표준 및 권장 사항에 따라 정의된 암호화 요구 사항을 적용하여 조직, 법률 및 규정 준수 요구 사항을 충족할 수 있다.

데이터 보호

전송 데이터 암호화

  • 데이터 보호에서 보안 모범 사례를 나타내는 예로 전송 및 저장 데이터 암호화가 있다.

  • AWS는 저장 및 전송 데이터를 암호화할 수 있는 수단을 다양하게 제공한다.

  • 규제 또는 규정 준수 요구 사항을 충족하는 기능을 제품 및 서비스에 구축한다.

  • Amazon S3에서 암호화를 활성화하려면 AWS KMS를 이용해 저장 데이터에 대한 통합 암호화 옵션을 활성화하면 된다.

  • 전송 데이터의 경우 HTTPS를 사용하여 CloudFront, Elastic Load Balancing 등의 서비스에서 처리하도록 암호화를 손쉽게 구성할 수 있다.

  • 이미지에서 AWS Certificate Manager(ACM)에 통합되는 CloudFront와 ELB를 이용해 많이 사용되는 웹 애플리케이션에서 종단 간 암호화를 구현하였다.

  • 또한 암호화 옵션은 Amazon S3, Amazon RDS, Amazon API Gateway등의 여러 서비스를 통해 제공된다.

  • 모든 AWS API 호출은 SDK를 통해 이루어지며, Lambda 함수 역시 암호화 기능을 제공한다.

데이터 수동 처리 최소화

  • 정상적인 운영 환경에서는 어떤 사용자든지 민감한 데이터와 시스템에 직접 액세스할 수 없다.
  • 예를 들어, 데이터 스토어에 직접 액세스하지 않고도 쿼리를 실행할 수 있도록 대시보드를 제공한다.
  • 인프라 관리의 경우에는 CI/CD 파이프라인에서 AWS CloudFormation을 이용해 생성 및 업데이트를 자동화한다.
  • CI/CD 파이프라인을 사용하지 않는 경우 필요한 제어 및 프로세스를 확인하여 일반 상황에서는 비활성화되는 긴급 액세스 메커니즘을 적절히 제공한다.

인시던트 대응

  • 인시던트 대응이란 보안 인시던트에 대응하여 보안 인시던트의 잠재적 영향을 완화하기 위한 프로세스 구성 방법을 의미한다.
  • AWS는 아래와 같은 모범 사례를 통해 보안 이벤트에 대한 대응을 지원한다.
    • 액세스 권한을 쉽게 얻을 수 있는 방법
      • AWS에서는 인시던트가 발생했을 때 대응 및 보안 팀이 적절한 방법으로 액세스할 수 있도록 손쉽게 구성할 수 있다.
    • 사전 배포된 적합한 도구
      • 적합한 도구를 사전에 배포하여 대응할 수 있도록 한다.
      • 예를 들어, AWS CloudFormation에서는 템플릿을 사용해 조사와 포렌식이 가능한 ‘크린룸’을 프로비저닝할 수 있다.
    • 정기적으로 게임 데이 수행
      • 정기적으로 게임 데이를 수행해 보안 이벤트를 시뮬레이션함으로써 프로세스 테스트를 통해 시간이 지나면서 개선할 수 있다.

템플릿 기반 클린룸

  • 인시던트 대응에서 보안 모범 사례의 예로 “신뢰할 수 있는 새로운 환경을 생성하여 조사 수행”이 있다.
  • 보안 실무자는 AWS CloudFormation을 사용해 신뢰할 수 있는 환경을 새롭게 구축할 수 있다.
  • 이 환경은 적합한 포렌식 도구가 사전 구성되어 있을 뿐만 아니라 다른 시스템 및 네트워크와 격리된다.
  • 이를 통해 필요한 도구를 수집하고 위협을 격리함으로써 팀이 ‘클린룸’을 운영하는 데 필요한 시간이 줄어든다.

  • 이미지에서는 기존 템플릿을 사용하기 때문에 처음 시작이 더욱 쉽다.
  • 이후 해당 템플릿을 변경하여 적합한 도구와 보안 및 네트워크 격리를 지원하는 환경을 구축한다.
  • 인시던트를 조사해야 하는 경우 Amazon EBS 스냅샷을 생성하여 조사 중인 시스템의 데이터와 상태를 캡처한다.
  • 생성된 스냅샷을 사용해 새로운 ‘클린룸’을 만들어서 필요한 도구로 빠르게 조사를 실시하여 데이터를 격리할 수 있다.

핵심 사항

  • 보안 원칙의 핵심 사항은 아래와 같다.
    • 위험 평가 및 완화 전략을 통해 비즈니스 가치를 실현하면서 정보, 시스템 및 자산을 보호한다.
    • 루트 계정 자격 증명을 보호한다.
    • AWS에서 가능한 한 저장 및 전송 데이터를 암호화한다.
    • 승인 및 인증을 받은 사용자만 리소스에 액세스할 수 있도록 보장한다.
    • 탐지 제어를 통해 보안 위반을 탐지 또는 식별한다.

참고 자료