편집

다음을 통해 공유


Azure 가상 머신 액세스를 위한 다중 계층 보호

Microsoft Entra ID
Azure Bastion
Azure 역할 기반 액세스 제어
Microsoft Defender for Cloud
Azure Key Vault

솔루션 아이디어

이 문서는 솔루션 아이디어 설명입니다. 클라우드 설계자는 이 지침을 사용하여 이 아키텍처의 일반적인 구현을 위한 주요 구성 요소를 시각화할 수 있습니다. 이 문서를 시작점으로 사용하여 워크로드의 특정 요구 사항에 맞는 잘 설계된 솔루션을 디자인할 수 있습니다.

이 솔루션은 Azure에서 VM(가상 머신)을 보호하기 위한 다층 전략을 제공하며, 관리 및 운영 목적으로 공격 노출 영역을 최소화하면서 접근성을 보장합니다.

Microsoft의 보안 권장 사항에 부합하는 이 솔루션은 기본적으로 보안, 보안 작업 및 보안 원칙을 준수하는 Microsoft Azure 및 Entra 서비스에서 제공하는 여러 보호 메커니즘을 통합합니다.

  • 설계 단계부터 보안 적용. 이 솔루션은 최소 권한의 원칙과 업무 분리 개념을 구현하여 가상 머신에 대한 비영구적 세분화된 액세스를 달성합니다. 이렇게 하면 합법적인 이유로만 가상 머신에 대한 권한 부여가 부여되어 무단 액세스의 위험이 줄어듭니다.

  • 기본적으로 보안 적용. 가상 머신에 대한 인바운드 트래픽이 잠겨 필요한 경우에만 연결을 허용합니다. 이 기본 보안 태세는 무차별 암호 대입 및 DDoS(분산 서비스 거부) 공격과 많이 사용되는 사이버 공격에 대한 노출을 최소화합니다.

  • 보안 작업. 지속적인 모니터링을 구현하고 현재 및 미래의 위협에 맞게 보안 제어를 개선하는 데 투자하는 것이 중요합니다. 클라우드용 Microsoft Defender, Azure Bastion, Azure RBAC(역할 기반 액세스 제어) 사용자 지정 역할의 JIT(Just-In-Time) VM 액세스 기능인 Microsoft Entra PIM(Privileged Identity Management)과 같은 다양한 Azure 서비스 및 기능을 사용합니다. 필요에 따라 엔트라 ID 또는 Active Direcory Domain Services와 통합되지 않은 경우 가상 머신 로컬 암호를 저장하기 위해 Azure 리소스 및 Azure Key Vault에 대한 액세스를 규제하기 위해 Microsoft Entra 조건부 액세스를 고려해야 합니다.

잠재적인 사용 사례

이 아키텍처의 전제 조건은 심층 방어입니다. 이 전략은 사용자에게 VM에 대한 액세스 권한을 부여하기 전에 여러 방어선이 있는 사용자에게 도전합니다. 목표는 다음을 보장하는 것입니다.

  • 각 사용자가 확인됩니다.
  • 각 사용자에게 합법적인 의도가 있습니다.
  • 통신이 안전합니다.
  • Azure의 VM에 대한 액세스는 필요한 경우에만 제공됩니다.

심층 방어 전략 및 이 문서의 솔루션은 다음과 같은 많은 시나리오에 적용됩니다.

  • 관리자는 다음과 같은 상황에서 Azure VM에 액세스해야 합니다.

    • 관리자는 문제를 해결하거나, 동작을 조사하거나, 중요한 업데이트를 적용해야 합니다.
    • 관리자는 RDP(원격 데스크톱 프로토콜)를 사용하여 Windows VM 또는 SSH(보안 셸)에 액세스하여 Linux VM에 액세스합니다.
    • 액세스에는 작업 수행에 필요한 최소 사용 권한의 수가 포함되어야 합니다.
    • 액세스는 제한된 시간 동안만 유효해야 합니다.
    • 액세스가 만료되면 시스템에서 악의적인 액세스 시도를 방지하기 위해 VM 액세스를 잠가야 합니다.
  • 직원에게 Azure에서 VM으로 호스트되는 원격 워크스테이션에 액세스 권한이 필요합니다. 다음 조건이 적용됩니다.

    • 직원이 근무 시간 동안에만 VM에 액세스해야 합니다.
    • 보안 시스템은 근무 시간 외 VM에 대한 불필요하고 악의적인 액세스 요청을 고려해야 합니다.
  • 사용자가 Azure VM 워크로드에 연결하려고 합니다. 시스템은 관리 및 규격 디바이스에서만 연결을 승인해야 합니다.

  • 시스템에서 엄청난 수의 무차별 암호 대입 공격을 경험했습니다.

    • 이러한 공격은 RDP 및 SSH 포트 3389 및 22에서 Azure VM을 대상으로 했습니다.
    • 공격은 자격 증명을 추측하려고 했습니다.
    • 이 솔루션은 3389 및 22와 같은 액세스 포트가 인터넷 또는 온-프레미스 환경에 노출되지 않도록 해야 합니다.

아키텍처

사용자가 Azure VM에 대한 임시 액세스 권한을 얻는 방법을 보여 주는 아키텍처 다이어그램.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. 인증 및 액세스 결정: 사용자는 Azure Portal, Azure REST API, Azure PowerShell 또는 Azure CLI에 액세스하기 위해 Microsoft Entra ID에 대해 인증을 받습니다. 인증에 성공하면 Microsoft Entra 조건부 액세스 정책이 적용됩니다. 해당 정책은 사용자가 특정 기준을 충족하는지 여부를 확인합니다. 예를 들어 관리되는 디바이스를 사용하거나 알려진 위치에서 로그인하는 것이 있습니다. 사용자가 조건을 충족하는 경우 조건부 액세스는 Azure Portal 또는 다른 인터페이스를 통해 사용자에게 Azure에 대한 액세스 권한을 부여합니다.

  2. ID 기반 Just-In-Time 액세스: Microsoft Entra PIM은 권한 부여 중에 사용자에게 적격 유형의 사용자 지정 역할을 할당합니다. 자격은 필요한 리소스로 제한되며 영구적인 역할이 아닌 시간 제한된 역할입니다. 지정된 시간 프레임 내에서 사용자는 Azure PIM 인터페이스를 통해 이 역할을 활성화하도록 요청합니다. 해당 요청은 승인 워크플로를 시작하거나 사용자에게 ID를 확인하기 위해 다단계 인증을 요청하는 등의 다른 작업을 트리거할 수 있습니다. 승인 워크플로에서 다른 사용자가 요청을 승인해야 합니다. 그렇지 않으면 사용자에게 사용자 지정 역할이 할당되지 않으며 다음 단계를 계속할 수 없습니다.

  3. 네트워크 기반 Just-In-Time 액세스: 인증 및 권한 부여 후에 사용자 지정 역할이 일시적으로 사용자의 ID에 연결됩니다. 그러면 사용자가 JIT VM 액세스를 요청합니다. 이 액세스는 RDP용 포트 3389 또는 SSH용 포트 22의 Azure Bastion 서브넷에서 연결을 엽니다. 연결은 VM NIC(네트워크 인터페이스 카드) 또는 VM NIC 서브넷에 직접 실행됩니다. Azure Bastion은 해당 연결을 사용하여 내부 RDP 세션을 엽니다. 세션은 Azure 가상 네트워크로 제한되며 공용 인터넷에 노출되지 않습니다.

  4. Azure VM에 연결: 사용자는 임시 토큰을 사용하여 Azure Bastion에 액세스합니다. 이 서비스를 통해 사용자는 Azure VM에 대한 간접 RDP 연결을 설정합니다. 연결은 제한된 시간 동안만 작동합니다. 암호가 Key Vault에 비밀로 저장되고 적절한 사용자 계정에 대한 액세스를 제한하도록 충분한 RBAC 권한이 구성된 경우 사용자는 Azure Key Vault에서 암호를 검색할 수 있습니다.

구성 요소

이 솔루션은 다음과 같은 구성 요소를 사용합니다.

  • Azure Virtual Machines는 IaaS(Infrastructure-as-a-Service) 제품입니다. Virtual Machines를 사용하여 확장 가능한 주문형 컴퓨팅 리소스를 배포할 수 있습니다. 이 솔루션을 사용하는 프로덕션 환경에서는 Azure VM에 워크로드를 배포합니다. 그런 다음, VM 및 Azure 자산에 대한 불필요한 노출을 제거합니다.

  • Microsoft Entra ID는 Azure 및 기타 클라우드 앱에 대한 액세스를 제어하는 클라우드 기반 ID 서비스입니다.

  • PIM은 중요한 리소스에 대한 액세스를 관리, 제어 및 모니터링하는 Microsoft Entra서비스입니다. 이 솔루션에서 이 서비스는 다음과 같습니다.

    • 표준 및 사용자 지정 권한 있는 역할에 대한 영구 관리자 액세스를 제한합니다.
    • 사용자 지정 역할에 대한 Just-In-Time ID 기반 액세스를 제공합니다.
  • JIT VM 액세스는 VM에 대한 Just-In-Time 네트워크 기반 액세스를 제공하는 클라우드용 Defender의 기능입니다. 이 기능은 VM 네트워크 인터페이스 또는 VM 네트워크 인터페이스가 포함된 서브넷을 보호하는 Azure 네트워크 보안 그룹에 거부 규칙을 추가합니다. 이 규칙은 VM에 대한 불필요한 통신을 차단하여 VM의 공격 표면을 최소화합니다. 사용자가 VM에 대한 액세스를 요청하면 서비스는 네트워크 보안 그룹에 임시 허용 규칙을 추가합니다. 허용 규칙의 우선 순위가 거부 규칙보다 높기 때문에 사용자는 VM에 연결할 수 있습니다. Azure Bastion은 VM에 연결하는 데 가장 적합합니다. 그러나 사용자는 직접 RDP 또는 SSH 세션을 사용할 수도 있습니다.

  • Azure RBAC는 Azure 리소스에 대한 액세스를 세밀하게 관리할 수 있는 권한 부여 시스템입니다.

  • Azure RBAC 사용자 지정 역할은 Azure RBAC 기본 제공 역할을 확장하는 방법을 제공합니다. 이를 사용하여 조직의 요구 사항을 충족하는 수준에서 권한을 할당할 수 있습니다. 이러한 역할은 PoLP를 지원합니다. 사용자의 용도에 필요한 권한만 부여합니다. 이 솔루션의 VM에 액세스하기 위해 사용자는 다음을 위한 권한을 받습니다.

    • Azure Bastion 사용.
    • 클라우드용 Defender에서 JIT VM 액세스 요청.
    • VM을 읽거나 나열.
  • Microsoft Entra 조건부 액세스 는 Microsoft Entra ID가 리소스에 대한 액세스를 제어하는 데 사용하는 도구입니다. 조건부 액세스 정책은 제로 트러스트 보안 모델을 지원합니다. 이 솔루션에서 정책은 인증된 사용자만 Azure 리소스에 액세스할 수 있도록 합니다.

  • Azure Bastion은 네트워크의 VM에 안전하고 원활한 RDP 및 SSH 연결을 제공합니다. 이 솔루션에서 Azure Bastion은 Microsoft Edge 또는 HTTPS용 다른 인터넷 브라우저를 사용하는 사용자 또는 포트 443의 보안 트래픽을 연결합니다. Azure Bastion은 VM에 대한 RDP 연결을 설정합니다. RDP 및 SSH 포트는 인터넷 또는 사용자의 원본에 노출되지 않습니다.

    Azure Bastion은 이 솔루션에서 선택 사항입니다. 사용자는 RDP 프로토콜을 사용하여 Azure VM에 직접 연결할 수 있습니다. Azure 가상 네트워크에서 Azure Bastion을 구성하는 경우 AzureBastionSubnet이라는 별도의 서브넷을 설정합니다. 그런 다음 네트워크 보안 그룹을 해당 서브넷과 연결합니다. 해당 그룹에서 사용자의 온-프레미스 IP CIDR(클래스 없는 도메인 간 라우팅) 블록과 같은 HTTPS 트래픽에 대한 원본을 지정합니다. 이 구성을 사용하면 사용자의 온-프레미스 환경에서 제공되지 않는 연결이 차단됩니다.

  • Azure Key Vault는 VM 사용자의 암호를 비밀로 저장하는 보안 메커니즘을 제공합니다. VM에 액세스하는 사용자 계정만 검색할 수 있도록 비밀 RBAC를 구성할 수 있습니다. Azure Key Vault는 Azure Portal의 가상 머신 블레이드에서 Azure Bastion 사용자 인터페이스와 통합되기 때문에 키 자격 증명 모음에서 암호 값을 검색하는 작업은 Azure API(예: Azure CLI 사용) 또는 Azure Portal에서 수행할 수 있습니다.

    참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

  • Husam Hilal | 선임 클라우드 솔루션 설계자

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계