다음을 통해 공유


빠른 시작: 테스트 머신을 사용하여 Linux에 대한 Azure 보안 기준 감사

준수 보고서 화면 코드 조각

이 가이드에서는 Azure Policy를 사용하여 Linux용 Azure 보안 기준에 대해 테스트 VM(Virtual Machine)을 감사합니다.

특히 다음을 수행합니다.

  1. 리소스 그룹 만들기
  2. 빈 리소스 그룹에 감사 정책 할당
  3. 리소스 그룹에 VM 만들고 감사 결과를 확인합니다.

필수 구성 요소

이 문서의 단계를 시도하기 전에:

  1. 리소스 그룹, 정책 할당 및 가상 머신을 만들려면 Azure 계정이 필요합니다. Azure 계정이 없는 경우 평가판만들 있습니다.

  2. Azure 환경에 액세스할 방법을 선택합니다(예:

    1. 쉬움: Azure Cloud Shell https://shell.azure.com
    2. OR: Azure CLI가 설치되고 로그인된 사용자 고유의 워크스테이션 및 셸 환경 사용
    3. 또는: Azure Portal 사용 https://portal.azure.com
  3. 원하는 Azure 테스트 환경에 로그인했는지 확인합니다.

    • Azure CLI
    • Azure Portal

    az account show 사용하여 현재 컨텍스트를 볼 수 있습니다. 로그인하거나 컨텍스트를 변경하려면 az account login사용합니다.


1단계: 리소스 그룹 만들기

이 문서에서 예제 위치로 "미국 동부"(eastus)를 사용하는 것은 임의입니다. 사용 가능한 모든 Azure 위치를 선택할 수 있습니다.

  • Azure CLI
  • Azure Portal
az group create --name my-demo-rg --location eastus

2단계: 빈 테스트 리소스 그룹에 정책 할당

  • Azure CLI
  • Azure Portal
# Note this example is from a bash shell. Other shells may require different handling of special characters and variables
RG_ID=$(az group show --resource-group my-demo-rg --query id --output tsv)
az policy assignment create --policy "fc9b3da7-8347-4380-8e70-0a0361d8dedd" --display-name "Linux machines should meet requirements for the Azure compute security baseline" --scope "$RG_ID"

3단계: 테스트 VM 만들기 및 머신 구성을 위한 준비

  • Azure CLI
  • Azure Portal
  1. 시스템 할당 ID를 사용하여 Linux VM 만들기

    az vm create --name my-demo-vm-01 --resource-group my-demo-rg --image Ubuntu2204 --assign-identity [system] --size Standard_B2s
    

    "아직 액세스 권한이 부여되지 않았습니다..."유사한 경고를 수신하는 것이 정상입니다. Azure Machine Configuration을 사용하려면 특정 리소스 액세스가 아닌 관리 ID를 컴퓨터 있어야 합니다.

  2. Azure VM 확장으로 Machine Configuration 에이전트 설치

    az vm extension set --resource-group my-demo-rg --vm-name my-demo-vm-01 --name ConfigurationForLinux --publisher Microsoft.GuestConfiguration --enable-auto-upgrade
    

이 가이드에서는 관리 ID 및 Machine Configuration 확장 단계를 수동으로 수행하여 대기 시간을 줄이고 컨텍스트 변경을 줄였습니다. 대규모로 이러한 요구 사항은 가상 머신에서 게스트 구성 정책 사용하도록 설정하기 위한 배포 필수 구성 요소 기본 제공 정책 이니셔티브를 사용하여 충족할 수 있습니다.

4단계: 계속하기 전에 휴식을 취하세요

이제 몇 가지 단계가 자동으로 수행됩니다. 이러한 각 단계는 몇 분 정도 걸릴 수 있습니다. 따라서 계속하기 전에 15분 이상 기다려 주세요.

5단계: 결과 관찰

다음 예제에서는 가져오는 방법을 보여 줍니다.

  1. 규정 준수 상태별 컴퓨터 수(프로덕션 규모에서 유용하며 수천 대의 머신이 있을 수 있는 경우)
  2. 각각에 대한 준수 상태가 있는 컴퓨터 목록
  3. 준수 상태 및 증명(이유이라고도 함)이 있는 기준 규칙의 자세한 목록

다음과 같은 빨간색 비준수 결과가 표시됩니다. 감사 전용 사용 사례는 기존 시스템과 Azure 보안 기준 간의 차이를 검색하는 것입니다.

  • Azure CLI
  • Azure Portal

다음 Azure CLI 예제는 bash 환경에서 제공됩니다. 다른 셸 환경을 사용하려면 줄 끝 동작, 따옴표 규칙, 문자 이스케이프 등에 대한 예제를 조정해야 할 수 있습니다.

  1. 준수 상태별 컴퓨터 수:

    QUERY='
    // Returns one record per observed compliance status bucket, with machine counts for each
    guestconfigurationresources
    | where name contains "AzureLinuxBaseline"
    | extend ["> ComplianceStatus"] = tostring(properties.complianceStatus)
    | summarize MachineCount = count() by ["> ComplianceStatus"]'
    az graph query --graph-query "$QUERY" --query data --output yamlc
    
  2. 각각에 대한 준수 상태가 있는 컴퓨터 목록:

    QUERY='
    // returns one record per machine, with status
    guestconfigurationresources
    | where name contains "AzureLinuxBaseline"
    | project ["> Machine"] = split(properties.targetResourceId,"/")[-1],
      ComplianceStatus = properties.complianceStatus,
      LastComplianceCheck = properties.lastComplianceStatusChecked'
    az graph query --graph-query "$QUERY" --query data --output yamlc
    
  3. 준수 상태 및 증명 정보(이유라고도 함)가 있는 기준 규칙의 자세한 목록은 다음과 같습니다.

    QUERY='
    // Returns one record per baseline rule (around 200 per machine) with status for each
    GuestConfigurationResources
    | where name contains "AzureLinuxBaseline"
    | project Report = properties.latestAssignmentReport,
      Machine = split(properties.targetResourceId,"/")[-1],
      LastComplianceCheck=properties.lastComplianceStatusChecked
    | mv-expand Report.resources
    | project ["> Machine"] = Machine,
      ["> Rule"] = Report_resources.resourceId,
      RuleComplianceStatus = Report_resources.complianceStatus,
      RuleComplianceReason = Report_resources.reasons[0].phrase,
      LastComplianceCheck'
    
    az graph query --graph-query "$QUERY" --query data --output yamlc
    

전반적인 작업 흐름을 제공하기 위해 비디오가 포함되어 있습니다. 쿼리에 대한 자세한 내용은 이 문서의 텍스트를 참고하세요.

선택 사항: 크기 조정을 경험하기 위해 더 많은 테스트 머신 추가

이 문서에서는 정책이 처음에 비어 있던 리소스 그룹에 할당된 다음 하나의 VM을 얻었습니다. 이는 시스템이 종단 간 작동한다는 것을 보여주지만 기계 목록 등을 사용하여 대규모 작업에 대한 감각을 제공하지는 않습니다.

수동으로 또는 자동화를 통해 리소스 그룹에 더 많은 테스트 머신을 추가하는 것이 좋습니다. 이러한 컴퓨터는 Azure VM 또는 Arc 지원 컴퓨터일 수 있습니다. 이러한 머신이 규정 준수(또는 실패)로 전환되는 것을 볼 때 대규모로 Azure 보안 기준을 운용하는 데 더 예리한 감각을 얻을 수 있습니다.

리소스 정리

지속적인 요금을 방지하려면 이 문서에 사용된 리소스 그룹을 삭제하는 것이 좋습니다. 예를 들어 Azure CLI 명령은 az group delete --name "my-demo-rg".