Amazon EC2의 인프라 보안
관리형 서비스인 Amazon Elastic Compute Cloud는 AWS 글로벌 네트워크 보안으로 보호됩니다. AWS 보안 서비스와 AWS의 인프라 보호 방법에 대한 자세한 내용은 AWS 클라우드 보안
AWS에서 게시한 API 호출을 사용하여 네트워크를 통해 Amazon EC2에 액세스합니다. 고객은 다음을 지원해야 합니다.
-
Transport Layer Security(TLS) TLS 1.2는 필수이며 TLS 1.3을 권장합니다.
-
DHE(Ephemeral Diffie-Hellman) 또는 ECDHE(Elliptic Curve Ephemeral Diffie-Hellman)와 같은 완전 전송 보안(PFS)이 포함된 암호 제품군 Java 7 이상의 최신 시스템은 대부분 이러한 모드를 지원합니다.
또한 요청은 액세스 키 ID 및 IAM 주체와 관련된 시크릿 액세스 키를 사용하여 서명해야 합니다. 또는 AWS Security Token Service(AWS STS)를 사용하여 임시 자격 증명을 생성하여 요청에 서명할 수 있습니다.
자세한 내용은 보안 부문 - AWS Well-Architected 프레임워크의 인프라 보호를 참조하세요.
네트워크 격리
Virtual Private Cloud(VPC)는 AWS 클라우드에서 논리적으로 격리된 고유한 영역의 가상 네트워크입니다. 별도의 VPC를 사용하여 워크로드별 또는 조직체별로 인프라를 격리합니다.
서브넷은 VPC의 IP 주소 범위입니다. 인스턴스를 시작할 때 VPC의 서브넷에서 인스턴스를 시작합니다. 서브넷을 사용하여 단일 VPC 내의 애플리케이션 티어(예: 웹, 애플리케이션 및 데이터베이스)를 격리합니다. 인터넷에서 직접 액세스하면 안 되는 경우 프라이빗 서브넷을 인스턴스에 사용합니다.
프라이빗 IP 주소를 사용하여 VPC에서 Amazon EC2 API를 호출하려면 AWS PrivateLink을(를) 사용합니다. 자세한 내용은 인터페이스 VPC 엔드포인트를 사용하여 Amazon EC2에 액세스 단원을 참조하십시오.
물리적 호스트에서 격리
동일한 물리적 호스트에 있는 다양한 EC2 인스턴스는 개별 물리적 호스트에 있는 것처럼 서로 격리됩니다. 하이퍼바이저는 CPU와 메모리를 격리하며, 인스턴스에는 원시 디스크 디바이스에 대한 액세스 대신 가상화된 디스크가 제공됩니다.
인스턴스를 중지하거나 종료하면 인스턴스에 할당된 메모리는 새 인스턴스에 할당되기 전에 하이퍼바이저에서 스크러빙(0으로 설정)되며 스토리지의 모든 블록은 재설정됩니다. 이 방법으로 데이터가 의도하지 않게 다른 인스턴스에 노출되지 않도록 보호합니다.
네트워크 MAC 주소는 AWS 네트워크 인프라에서 인스턴스에 동적으로 할당됩니다. IP 주소는 AWS 네트워크 인프라에서 인스턴스에 동적으로 할당되거나, 인증된 API 요청을 통해 EC2 관리자가 할당합니다. AWS 네트워크에서 인스턴스는 할당된 MAC 및 IP 주소에서만 트래픽을 전송할 수 있습니다. 그렇지 않으면 트래픽이 끊어집니다.
기본적으로 인스턴스는 특정하게 주소 지정되지 않은 트래픽을 수신할 수 없습니다. 인스턴스에서 NAT(Network Address Translation), 라우팅 또는 방화벽 서비스를 실행해야 하는 경우 네트워크 인터페이스에 대한 소스/대상 확인을 비활성화할 수 있습니다.
네트워크 트래픽 제어
EC2 인스턴스의 네트워크 트래픽을 제어하기 위해 다음 옵션을 고려해 보세요.
-
보안 그룹을 사용하여 인스턴스에 대한 액세스를 제한합니다. 필요한 최소한의 네트워크 트래픽을 허용하는 규칙을 구성합니다. 예를 들어 회사 네트워크 주소 범위의 트래픽만 허용하거나 HTTPS와 같은 특정 프로토콜에 대해서만 트래픽을 허용할 수 있습니다. Windows 인스턴스의 경우 Windows 관리 트래픽과 최소한의 아웃바운드 연결을 허용합니다.
-
보안 그룹을 Amazon EC2 인스턴스에 대한 네트워크 액세스를 제어하는 기본 메커니즘으로 활용합니다. 필요한 경우 네트워크 ACL을 거의 사용하지 않고 상태 비저장, 거친 네트워크 제어를 제공합니다. 보안 그룹은 상태 저장 패킷 필터링을 수행하고 다른 보안 그룹을 참조하는 규칙을 만들 수 있기 때문에 네트워크 ACL보다 다재다능합니다. 그러나 네트워크 ACL은 특정한 트래픽 하위 집합을 거부하거나 상위 수준의 서브넷 가드레일을 제공하는 보조적 제어 장치로 효과를 발휘할 수 있습니다. 또한 네트워크 ACL은 전체 서브넷에 적용되므로 인스턴스가 올바른 보안 그룹 없이 실수로 시작될 경우 이를 심층 방어 기능으로 사용할 수 있습니다.
-
[Windows 인스턴스] Windows 방화벽 설정을 그룹 정책 개체(GPO)로 중앙에서 관리하여 네트워크 제어를 더욱 강화합니다. 고객들은 종종 네트워크 트래픽을 더 잘 파악하고 보안 그룹 필터를 보완하기 위해 Windows 방화벽을 사용하며, 고급 규칙을 만들어 특정 애플리케이션이 네트워크에 액세스하지 못하도록 차단하거나 하위 집합 IP 주소에서 오는 트래픽을 필터링하기도 합니다. 예를 들어 Windows 방화벽은 특정 사용자 또는 애플리케이션만 EC2 메타데이터 서비스 IP 주소에 액세스할 수 있도록 제한할 수 있습니다. 또는 공용 서비스에서 보안 그룹을 사용하여 트래픽을 특정 포트로 제한하고 Windows 방화벽을 사용하여 명시적으로 차단된 IP 주소의 목록을 유지 관리할 수 있습니다.
-
인터넷에서 직접 액세스하면 안 되는 경우 프라이빗 서브넷을 인스턴스에 사용합니다. 프라이빗 서브넷에 있는 인스턴스에서 인터넷에 액세스하려면 Bastion Host 또는 NAT 게이트웨이를 사용합니다.
-
[Windows instances] SSL/TLS를 통한 RDP 캡슐화와 같은 보안 관리 프로토콜을 사용합니다. 원격 데스크톱 게이트웨이 빠른 시작은 SSL/TLS를 사용하도록 RDP를 구성하는 등 원격 데스크톱 게이트웨이 배포의 모범 사례를 제공합니다.
[Windows 인스턴스] Active Directory 또는 AWS Directory Service를 사용하여 Windows 인스턴스에 대한 사용자 및 그룹의 대화식 액세스를 중앙 집중식으로 엄격하게 제어 및 모니터링하고 로컬 사용자 권한을 피할 수 있습니다. 또한 도메인 관리자를 사용하지 않고 보다 세분화된 애플리케이션별 역할 기반 계정을 만들 수 있습니다. JEA(충분한 관리)를 사용하면 대화식 액세스 또는 관리자 액세스 없이도 Windows 인스턴스의 변경 사항을 관리할 수 있습니다. 또한 JEA에서는 인스턴스 관리에 필요한 Windows PowerShell 명령의 하위 집합에 대한 관리 액세스를 잠글 수 있습니다. 자세한 내용은 AWS 보안 모범 사례
백서의 “Amazon EC2에 대한 OS 수준 액세스 관리” 섹션을 참조하세요. [Windows 인스턴스] 시스템 관리자는 액세스 권한이 제한된 Windows 계정을 사용하여 일상적인 작업을 수행하고 특정한 구성 변경을 수행하는 데 필요한 경우에만 액세스 권한을 상승해야 합니다. 또한 절대적으로 필요한 경우에만 Windows 인스턴스에 직접 액세스합니다. 그 대신 EC2 실행 명령, SCCM(시스템 센터 구성 관리자), Windows PowerShell DSC 또는 SSM(Amazon EC2 Systems Manager)과 같은 중앙 구성 관리 시스템을 활용하여 Windows 서버에 변경 사항을 적용합니다.
필요한 최소한의 네트워크 경로로 Amazon VPC 서브넷 라우팅 테이블을 구성합니다. 예를 들어, 인터넷 게이트웨이로 가는 경로가 있는 서브넷에는 인터넷에 직접 액세스해야 하는 Amazon EC2 인스턴스만 배치하고, 가상 프라이빗 게이트웨이로 가는 경로가 있는 서브넷에는 내부 네트워크에 직접 액세스해야 하는 Amazon EC2 인스턴스만 배치합니다.
보안 그룹 또는 네트워크 인터페이스를 추가로 사용하여 일반 애플리케이션 트래픽과 별도로 Amazon EC2 인스턴스 관리 트래픽을 제어하고 감사하는 방법을 고려해 보십시오. 이렇게 하면 변경 제어를 위한 특별한 IAM 정책을 고객이 구현할 수 있으므로 보안 그룹 규칙 또는 자동화된 규칙 확인 스크립트의 변경 사항을 감사하기가 쉬워집니다. 여러 네트워크 인터페이스를 사용하면 호스트 기반 라우팅 정책을 생성하거나 네트워크 인터페이스의 할당된 서브넷에 따라 다른 VPC 서브넷 라우팅 규칙을 활용하는 기능 등 네트워크 트래픽을 제어할 수 있는 추가 옵션도 제공됩니다.
-
AWS Virtual Private Network 또는 AWS Direct Connect를 사용하여 원격 네트워크에서 VPC로 프라이빗 연결을 설정합니다. 자세한 내용은 네트워크-Amazon VPC 연결 옵션을 참조하세요.
-
VPC 흐름 로그를 사용하여 인스턴스에 도달하는 트래픽을 모니터링합니다.
-
GuardDuty Malware Protection을 사용하여 인스턴스에서 워크로드를 손상시키고 리소스를 악의적인 용도로 재사용하며 이터에 대한 무단으로 액세스할 수 있는 악성 소프트웨어를 나타내는 의심스러운 동작을 식별합니다.
-
GuardDuty Runtime Monitoring을 사용하여 인스턴스에 대한 잠재적 위협을 식별하고 이에 대응합니다. 자세한 내용은 How Runtime Monitoring works with Amazon EC2 instances를 참조하세요.
-
AWS Security Hub, Reachability Analyzer 또는 Network Access Analyzer를 사용하여 인스턴스에서 의도하지 않은 네트워크 액세스를 검사합니다.
-
EC2 Instance Connect를 사용하여 SSH 키를 공유하고 관리할 필요 없이 SSH(Secure Shell)를 통해 인스턴스에 연결합니다.
-
AWS Systems Manager Session Manager를 사용하면 인바운드 SSH 또는 RDP 포트를 열고 키 페어를 관리하는 대신 원격으로 인스턴스에 액세스할 수 있습니다.
-
AWS Systems Manager 실행 명령을 사용하여 인스턴스에 연결하는 대신 일반적인 관리 작업을 자동화할 수 있습니다.
[Windows 인스턴스] Windows OS 역할 및 Microsoft 비즈니스 애플리케이션은 대부분 IIS 내 IP 주소 범위 제한, Microsoft SQL Server의 TCP/IP 필터링 정책 및 Microsoft Exchange의 연결 필터 정책과 같은 향상된 기능을 제공합니다. 애플리케이션 계층 내 네트워크 제한 기능은 중요한 비즈니스 애플리케이션 서버에 대한 추가 방어 계층을 제공할 수 있습니다.
Amazon VPC는 게이트웨이, 프록시 서버, 네트워크 모니터링 옵션과 같은 추가 네트워크 보안 제어를 지원합니다. 자세한 내용은 Amazon VPC 사용 설명서의 네트워크 트래픽 제어를 참조하세요.