

# 모범 사례
<a name="sec-bp"></a>

**Topics**
+ [보안](sec-security.md)
+ [자격 증명 및 액세스 관리](sec-iam.md)
+ [탐지](sec-detection.md)
+ [인프라 보호](sec-infrastructure.md)
+ [데이터 보호](sec-dataprot.md)
+ [사고 대응](sec-incresp.md)

# 보안
<a name="sec-security"></a>

 워크로드를 안전하게 운영하려면 모든 보안 영역에 포괄적 모범 사례를 적용해야 합니다. 조직 및 워크로드 수준에서 운영 우수성에 정의된 요구 사항과 프로세스를 가져와 모든 영역에 적용합니다. 

 AWS 및 업계 권장 사항 및 위협 인텔리전스를 최신 상태로 유지하면 위협 모델 및 제어 목표를 발전시키는 데 도움이 됩니다. 보안 프로세스, 테스트 및 검증을 자동화함으로써 보안 작업을 확장할 수 있습니다. 

 다음은 보안 고려 사항에 중점을 둔 질문입니다. 보안 관련 질문 및 모범 사례 목록은 [부록](a-security.md)을 참조하십시오. 


| SEC 1:  워크로드를 안전하게 운영하려면 어떻게 해야 합니까? | 
| --- | 
| 워크로드를 안전하게 운영하려면 모든 보안 영역에 포괄적 모범 사례를 적용해야 합니다. 조직 및 워크로드 수준에서 운영 우수성에 정의된 요구 사항과 프로세스를 가져와 모든 영역에 적용합니다. AWS의 권장 사항, 업계 리소스 및 위협 인텔리전스를 최신 상태로 유지하면 위협 모델 및 제어 목표를 발전시키는 데 도움이 됩니다. 보안 프로세스, 테스트 및 검증을 자동화함으로써 보안 작업을 확장할 수 있습니다. | 

 AWS에서는 다양한 워크로드를 기능 및 규정 준수 또는 데이터 민감도 요구 사항에 따라 계정별로 분리하는 것이 좋습니다. 

# 자격 증명 및 액세스 관리
<a name="sec-iam"></a>

 자격 증명 및 액세스 관리는 정보 보안 프로그램의 핵심 요소로, 허가되고 인증된 사용자 및 구성 요소에 한해 허용되는 방식으로만 리소스에 액세스할 수 있도록 하는 것을 말합니다. 예를 들어 보안 주체(계정에서 작업을 수행할 수 있는 계정, 사용자, 역할 및 서비스)를 정의하고, 이러한 보안 주체에 맞게 정의된 정책을 구축하고, 강력한 자격 증명 관리를 구현합니다. 이러한 권한 관리 요소가 인증 및 권한 부여의 핵심 개념을 이룹니다. 

 AWS에서는 기본적으로 AWS 서비스 및 리소스에 대한 사용자 및 프로그램 액세스를 고객이 직접 제어할 수 있도록 하는 AWS Identity and Access Management(IAM) 서비스로 권한 관리를 지원합니다. 사용자, 그룹, 역할 또는 리소스에 대한 권한을 세부 정책으로 지정할 수 있습니다. 또한 복잡성, 재사용, 멀티 팩터 인증(MFA) 등 강력한 암호를 요구할 수 있는 기능도 있습니다. 기존의 디렉터리 서비스와 연동되도록 할 수도 있습니다. 시스템이 AWS에 액세스해야 하는 워크로드의 경우 IAM이 역할, 인스턴스 프로파일, 아이덴티티 페더레이션, 임시 보안 인증 정보를 통해 보안 액세스를 보장합니다. 

 다음은 보안 고려 사항에 중점을 둔 질문입니다. 


| SEC 2:  사람과 시스템에 대한 자격 증명은 어떻게 관리합니까? | 
| --- | 
|  안전한 AWS 워크로드 운영에 접근할 때 관리해야 하는 두 가지 유형의 자격 증명이 있습니다. 액세스 권한을 관리하고 부여하는 데 필요한 자격 증명의 유형을 이해하면 적절한 자격 증명이 적절한 조건에서 적절한 리소스에 액세스할 수 있도록 보장할 수 있습니다.  인적 자격 증명: 관리자, 개발자, 운영자 및 최종 사용자가 AWS 환경과 애플리케이션에 액세스하려면 자격 증명이 필요합니다. 이들은 조직의 구성원이거나 협업하는 외부 사용자로, 웹 브라우저, 클라이언트 애플리케이션 또는 대화형 명령줄 도구를 통해 AWS 리소스와 상호작용합니다.  시스템 자격 증명: 서비스 애플리케이션, 운영 도구 및 워크로드에서 AWS 서비스에 요청하려면(예: 데이터 읽기) 자격 증명이 필요합니다. 이러한 자격 증명에는 Amazon EC2 인스턴스 또는 AWS Lambda 함수와 같이 AWS 환경에서 실행되는 시스템이 포함됩니다. 액세스가 필요한 외부 당사자의 시스템 자격 증명을 관리할 수도 있습니다. 또한 AWS 환경에 액세스해야 하는 시스템이 AWS 외부에 있을 수도 있습니다.   | 


| SEC 3: 사람과 시스템에 대한 권한은 어떻게 관리합니까? | 
| --- | 
| AWS 및 워크로드에 액세스해야 하는 사람 및 시스템 자격 증명에 대한 액세스를 제어하는 권한을 관리합니다. 권한은 누가 어떤 조건에서 무엇에 액세스할 수 있는지를 제어합니다.  | 

 자격 증명은 어떠한 사용자 또는 시스템과도 공유할 수 없습니다. 사용자 액세스 권한은 암호 요구 사항 및 MFA 적용을 포함하는 모범 사례와 함께 최소한의 권한 접근 방식을 사용하여 부여해야 합니다. AWS 서비스에 대한 API 호출을 포함한 프로그래밍 방식의 액세스는 AWS Security Token Service에서 발행한 것과 같은 일시적이거나 권한이 제한된 보안 인증 정보를 사용하여 수행해야 합니다. 

 AWS는 Identity and Access Management를 사용하여 도울 수 있는 리소스를 제공합니다. 모범 사례를 알아보려면 다음에 대한 실습을 살펴보십시오. [자격 증명 및 인증 관리](https://wellarchitectedlabs.com/Security/Quest_Managing_Credentials_and_Authentication/README.html?ref=wellarchitected-wp), [인적 액세스 제어](https://wellarchitectedlabs.com/Security/Quest_Control_Human_Access/README.html?ref=wellarchitected-wp)및 [프로그래밍 방식 액세스 제어](https://wellarchitectedlabs.com/Security/Quest_Control_Programmatic_Access/README.html?ref=wellarchitected-wp)참조. 

# 탐지
<a name="sec-detection"></a>

 탐지 제어를 사용하여 잠재적 보안 위협 또는 인시던트를 식별할 수 있습니다. 이러한 제어는 일반적인 거버넌스 프레임워크의 핵심 부분으로, 품질 프로세스, 법률 또는 규정 준수 의무, 위협 식별 및 대응 과정을 지원하는 데 사용됩니다. 탐지 제어의 종류는 여러 가지입니다. 예를 들어, 자산 및 해당 세부 속성의 인벤토리를 만들어 두면 보다 효과적인 의사 결정(및 수명 주기 전반의 제어)이 이루어지고, 이를 운영의 기준으로 삼을 수 있습니다. 또한 내부 감사를 통해 정보 시스템과 관련된 제어 기능을 검사하여 실제 사례가 정책 및 요건에 맞는지, 정의된 조건에 따라 올바른 자동 알림이 설정되어 있는지 확인할 수 있습니다. 이러한 제어 기능은 조직 내에서 변칙적 활동 범위를 식별하고 파악하는 데 도움이 되는 중요한 대응 요소입니다. 

 AWS에서는 로그, 이벤트 및 모니터링(감사, 자동 분석, 경보 지원)을 처리하여 탐지 제어를 구현할 수 있습니다. CloudTrail 로그, AWS API 호출 및 CloudWatch는 경보와 함께 지표 모니터링을 제공하며, AWS Config은 구성 내역을 제공합니다. Amazon GuardDuty는 악성 또는 인증되지 않은 동작을 지속적으로 모니터링하여 AWS 계정 및 워크로드를 보호하도록 지원하는 관리형 위협 탐지 서비스입니다. 또한 서비스 수준 로그도 사용 가능한데, 예를 들어 Amazon Simple Storage Service(Amazon S3)를 사용하여 액세스 요청을 기록할 수 있습니다. 

 다음은 보안 고려 사항에 중점을 둔 질문입니다. 


| SEC 4:  보안 관련 이벤트를 어떻게 감지하나요? | 
| --- | 
| 이벤트는 로그와 지표에서 캡처하고 분석하는 방식으로 파악할 수 있습니다. 보안 이벤트 및 잠재적 위협에 대한 조치를 취하면 워크로드를 보호할 수 있습니다. | 

 Well-Architected 워크로드에서 로그 관리가 중요한 이유는 보안 또는 포렌식부터 규제 또는 법적 요구 사항에 이르기까지 다양합니다. 잠재적 보안 인시던트를 식별하려면 로그를 분석하고 이에 대응해야 합니다. AWS에서는 데이터 보존 기간을 지정하거나 데이터를 보존, 아카이빙 또는 최종적으로 삭제할 위치를 정의할 수 있어 로그 관리를 보다 쉽게 구현하는 기능을 제공합니다. 이렇게 하면 더 단순하고 경제적인 방식으로, 예측 가능하고 안정적으로 데이터를 처리할 수 있습니다. 

# 인프라 보호
<a name="sec-infrastructure"></a>

 모범 사례와 업계 규정 또는 규제 의무를 준수하기 위해서는 인프라 보호가 필요하며, 여기에는 심층 방어 및 MFA(멀티 팩터 인증) 등의 제어 방법이 포함됩니다. 지속적으로 클라우드 또는 온프레미스에서 작업을 성공적으로 수행하려면 반드시 이러한 방법을 사용해야 합니다. 

 AWS에서는 AWS 기본 지원 기술을 사용하거나 AWS Marketplace에서 제공되는 파트너 제품 및 서비스를 사용하여 상태 저장 및 상태 비저장 방식의 패킷 검사를 구현할 수 있습니다. Amazon Virtual Private Cloud(Amazon VPC)를 사용하여 안전하고 확장 가능한 프라이빗 환경을 만들고, 여기에서 게이트웨이, 라우팅 테이블, 퍼블릭 및 프라이빗 서브넷 같은 토폴로지를 정의해야 합니다. 

 다음은 보안 고려 사항에 중점을 둔 질문입니다. 


| SEC 5:  네트워크 리소스는 어떻게 보호합니까? | 
| --- | 
| 인터넷이든 프라이빗 네트워크이든 상관없이 어떤 형태든 네트워크 연결이 있는 워크로드에는 외부 및 내부 네트워크 기반 위협으로부터 보호하기 위한 다중 방어 계층이 필요합니다. | 


| SEC 6:  컴퓨팅 리소스를 어떻게 보호합니까? | 
| --- | 
| 워크로드의 컴퓨팅 리소스는 다계층 방어를 통해 내/외부 위협으로부터 보호해야 합니다. 컴퓨팅 리소스에는 EC2 인스턴스, 컨테이너, AWS Lambda 함수, 데이터베이스 서비스, IoT 디바이스 등이 포함됩니다. | 

 어떤 환경이든 여러 단계의 방어 계층을 두는 것이 좋습니다. 인프라 보호의 경우 클라우드 및 온프레미스 모델을 망라하여 효과를 발휘하는 다양한 인프라 보호 개념과 방법이 있습니다. 경계 보호를 적용하고, 수신 및 송신 지점을 모니터링하고, 종합적인 로깅과 모니터링, 알림을 이용하는 것은 모두 효과적인 정보 보안 계획의 핵심 요소입니다. 

 AWS 고객은 Amazon Elastic Compute Cloud(Amazon EC2), Amazon Elastic Container Service(Amazon ECS) 컨테이너 또는 AWS Elastic Beanstalk 인스턴스의 구성을 맞춤 조정하거나 강화할 수 있고, 변경 불가능한 Amazon Machine Image(AMI)를 통해 이러한 구성을 유지할 수 있습니다. 이렇게 하면 Auto Scaling에 의한 트리거 또는 수동 방식을 통해 이 AMI로 실행되는 모든 새 가상 서버(인스턴스)가 이 강화된 구성을 얻게 됩니다. 

# 데이터 보호
<a name="sec-dataprot"></a>

 시스템을 설계하려면 먼저 보안과 관련된 기본적인 관례부터 마련해야 합니다. 예를 들어 데이터 분류는 민감도에 따라 조직의 데이터를 구분하는 하나의 방법이고 암호화는 무단 액세스 사용자가 데이터를 해석하지 못하게 만들어 데이터를 보호하는 방법입니다. 이는 금전적 손해 방지 또는 규제 의무 준수 등 목표 달성을 뒷받침하는 중요한 도구이자 기법입니다. 

 AWS에서는 다음과 같은 방식으로 데이터 보호를 실현합니다. 
+  AWS 고객은 데이터에 대한 완전한 통제력을 유지합니다. 
+  AWS는 정기적인 키 교체 등 키 관리 및 데이터 암호화를 더 간편하게 처리하도록 지원합니다. AWS를 통해 작업을 편리하게 자동하거나 사용자가 직접 유지 관리할 수도 있습니다. 
+  파일 액세스, 변경 사항 등 중요한 콘텐츠가 수록된 상세 로그를 확인할 수 있습니다. 
+  AWS는 탁월한 복원력을 목표로 스토리지 시스템을 설계했습니다. 예를 들어 Amazon S3 Standard, S3 Standard–IA, S3 One Zone-IA 및 Amazon Glacier는 지정된 기간 동안 객체에 대해 99.999999999%의 내구성을 제공할 수 있도록 설계되었습니다. 이 내구성 수준은 연평균 0.000000001%의 객체 예측 손실에 해당합니다. 
+  광범위한 데이터 수명 주기 관리 프로세스에 포함될 수 있는 버전 관리는 우발적인 덮어쓰기나 삭제 및 그와 유사한 손해를 방지할 수 있습니다. 
+  AWS는 절대로 리전 간에 데이터를 이동하지 않습니다. 특정 리전에 저장된 콘텐츠는 사용자가 명시적으로 기능을 활성화하거나 그 기능을 제공하는 서비스를 이용하지 않는 한 해당 리전을 벗어나지 않습니다. 

 다음은 보안 고려 사항에 중점을 둔 질문입니다. 


| SEC 7:  데이터는 어떻게 분류합니까? | 
| --- | 
| 분류는 적절한 보호 및 보존 제어 수준을 결정하는 데 도움이 되도록 중요도와 민감도를 기준으로 데이터를 분류하는 방법을 제공합니다. | 


| SEC 8:  저장된 데이터는 어떻게 보호합니까? | 
| --- | 
| 무단 액세스 또는 취급 부주의의 위험을 줄이기 위해 여러 제어 기능을 구현하여 저장된 데이터를 보호합니다. | 


| SEC 9:  전송 중인 데이터는 어떻게 보호합니까? | 
| --- | 
| 무단 액세스 또는 손실의 위험을 줄이기 위해 여러 제어 기능을 구현하여 전송 중인 데이터를 보호합니다. | 

 AWS는 저장 데이터 및 전송 데이터를 암호화할 수 있는 여러 수단을 제공합니다. 데이터를 암호화하기 쉽도록 AWS 서비스에 각종 기능을 내장했습니다. 예를 들어, Amazon S3에 대해 SSE(서버 측 암호화)를 구현하여 데이터를 암호화된 형태로 저장하기 쉽게 만들었습니다. 또한 흔히 SSL termination 이라고 부르는 전체 HTTPS 암호화 및 복호화 프로세스를 Elastic Load Balancing(ELB)을 통해 처리하도록 설정할 수도 있습니다. 

# 사고 대응
<a name="sec-incresp"></a>

 고도의 예방 및 탐지 제어를 사용하더라도 조직은 잠재적 보안 인시던트에 대응하고 그 영향을 완화하기 위한 프로세스를 마련해야 합니다. 워크로드의 아키텍처가 인시던트 발생 시 보안 팀이 효과적으로 시스템을 격리 또는 억제하고 운영을 알려진 정상 상태로 복구하는 능력에 지대한 영향을 미칩니다. 보안 인시던트보다 앞서 도구 및 액세스를 마련하고 실전 연습을 통해 인시던트 대응을 정기적으로 연습한다면 아키텍처가 적기에 조사 및 복구를 수용할 수 있게 할 수 있습니다. 

 AWS에서는 다음과 같은 방식으로 효과적인 인시던트 대응을 지원합니다. 
+  파일 액세스, 변경 사항 등 중요한 콘텐츠가 수록된 상세 로그를 확인할 수 있습니다. 
+  이벤트는 자동으로 처리될 수 있으며, AWS API를 사용하여 대응을 자동화하는 도구를 트리거합니다. 
+  AWS CloudFormation을 사용하여 도구 및 "안전한 공간"을 사전 프로비저닝할 수 있습니다. 이를 통해 안전하고 격리된 환경에서 과학 수사를 진행할 수 있습니다. 

 다음은 보안 고려 사항에 중점을 둔 질문입니다. 


| SEC 10:  인시던트를 어떻게 예상하고 대응하며 어떻게 사후 복구합니까? | 
| --- | 
| 조직의 업무 중단을 최소화할 수 있도록 보안 인시던트를 제때 효고적으로 조사 및 대응하고 사후 복구하려면 철저한 준비가 필요합니다. | 

 보안 팀에게 신속하게 액세스를 부여할 수 있는 절차를 마련하고 인스턴스 격리와 포렌식을 위해 데이터 및 상태 캡처를 자동화합니다. 