AKS 엔터프라이즈급 플랫폼 보안 거 버 넌 스 및 규정 준수

이 문서에서는 솔루션을 구현 하기 전에 고려해 야 하는 AKS (Azure Kubernetes Service) 보안 거 버 넌 스의 측면을 안내 합니다.

이러한 콘텐츠의 대부분은 고객이 다양 한 방식으로 구현 되므로 기술에 구애 받지 않습니다. 이 문서에서는 Azure 및 일부 오픈 소스 소프트웨어 (OSS)를 사용 하 여 솔루션을 구현 하는 방법을 중점적으로 설명 합니다.

클라우드 보안 제어 수명 주기

클라우드 기본 보안 및 거 버 넌 스에서 클라우드는 동적이 될 수 있지만 대부분의 기업은 비교적 안정적인 환경에 사용 됩니다. 기존 환경에는 id, 네트워킹, 컴퓨터 및 VM (가상 컴퓨터) OS 관리와 같은 기존 IT 기능에 맞는 구조화 된 조직 모델의 검색 및 방지 제어가 포함 됩니다. 기존 보안 및 규정 준수 팀은 전체 구조 및 인프라를 비교적 드물게 변경 하거나 보안 및 위험 목표를 달성 하기 위해 필요한 제어 및 모니터링에 직면 합니다.

클라우드 및 DevOps 모델을 채택 하 여 보안은 변화에 맞게 조정 되어야 하므로 비즈니스 및 진행에 대 한 제한 사항이 아닙니다. 보안 adaptation에는 올바른 역할 및 책임을 만드는 것과 같은 사람 프로세스, 스캔, 테스트 및 인프라와 같은 자동화 및 기술 도구가 코드로 포함 됩니다. 이러한 도구는 보안 요구 사항을 충족 하면서 혁신 및 빠른 배달 시간을 가능 하 게 하는 DevOps 파이프라인의 일부입니다.

하려는 유혹는 지금 수행 하는 작업을 시작 하는 것으로 시작 하는 것이 가장 중요 합니다. 키 요점은는 클라우드에서 온-프레미스로 수행 하는 작업을 정확 하 게 시도 하는 경우 실패 합니다. 클라우드 도입은 기술을 배우고 업데이트 하 고 조직의 보안 상태를 높일 수 있는 기회입니다. 프로덕션 환경에 대 한 개발 프로세스의 일부로 보안을 간소화 하 여 차단 대신 보안을 배치할 수 있습니다. 10-20 년 이전 도구와 프로세스를 사용 하는 경우 10-20 년 이전 보안 문제, 문제 및 불만을 상속 하거나 도입 합니다. 클라우드 도입은 새로 시작할 수 있는 기회입니다.

새로 시작은 클라우드에 대 한 이해를 시작 합니다.

  • 사용 가능한 클라우드 서비스, 제어 및 표시 유형
  • 클라우드 서비스 및 제어를 어떻게 작동 하나요?
  • 사용 가능한 보안 도구 및 거 버 넌 스 도구는 무엇 인가요?
  • 프로세스 및 시스템에서 보안 및 거 버 넌 스 도구를 어떻게 사용할 수 있으므로, 최신 DevOps 모델을 사용 하 여 lob (기간 업무)를 더 민첩 하 게 할 수 있나요?
  • 보안 및 규정 준수 요구 사항을 충족 하려면 어떻게 해야 하나요?

보안 제어를 설정 하 고 컨트롤 자체를 관리 하 고 운영 화 하는 프로세스 관점에서 수명 주기 프레임 워크를 시작 하는 것이 가장 쉬운 경우가 많습니다. 보안 제어를 설정 하기 위해 많은 고객이 NIST 800-53, ISO, CIS 벤치 마크 및 HIPAA/HITRUST와 같은 일반적인 프레임 워크 및 표준을 사용 합니다. 이러한 표준은 포괄적인 프레임 워크를 설정 하는 데 도움이 될 수 있으며, 보안 제어 및 프로세스를 설정, 문서화 및 감사 하는 데 도움이 되는 지침을 제공 합니다.

관리 및 운영 화 보안 제어를 위해 클라우드 및 DevOps를 포함 하는 보안 개발 수명 주기 프로세스를 비롯 한 다양 한 모델을 살펴볼 수 있습니다. 이러한 접근 방식 및 모델은 조직의 다른 자산과 같은 보안 제어를 처리 하 고 수명 주기 관리를 포함 합니다. 다음 다이어그램은 조직의 보안 제어 수명 주기 관리에 대 한 예를 보여 줍니다.

Azure 보안 제어 수명 주기 관리 설정을 보여 주는 다이어그램

Azure 보안 제어 아키텍처

모든 Azure 보안 컨트롤은 Azure Resource Manager API로 시작 하 여 기반으로 작성 됩니다. 다음 다이어그램에서는 Azure Policy 엔진이 원본에 관계 없이 정책을 적용 하는 방법을 보여 줍니다. 이 기능은 조직이 여러 위치에서 정책을 정의할 필요가 없다는 것을 의미 하기 때문에 중요 합니다.

Azure 보안 제어 아키텍처를 보여 주는 다이어그램

보안 제어 거 버 넌 스

보안 제어 프레임 워크의 주요 이점 중 하나는 거 버 넌 스 및 제어 감사를 통합 하는 것입니다. Azure Policy 외에도 Azure 보안 제어 거 버 넌 스에는 보안 점수 및 규정 준수 대시보드 기능을 포함 하는 Azure Security Center포함 되어 있습니다. 핵심은 모두 거 버 넌 스 관찰성에 대 한 규정 준수입니다. 다음 이미지는 샘플 준수 대시보드를 보여 줍니다.

Azure 보안 제어 거 버 넌 스를 보여 주는 다이어그램.

Azure 보안 제어 설정

이 섹션에서는 중요 한 Azure 특정 보안 제어 프레임 워크를 설정 하는 과정을 안내 합니다. 이 섹션에서는 조직 보안 제어를 이미 설정 했다고 가정 합니다. 이러한 보안 컨트롤을 정의 하는 것은이 문서에 대 한 범위를 벗어났습니다.

다음 섹션에서는 가상의 Contoso Financials 시나리오에 대 한 보안 요구 사항을 충족 하기 위해 다음 컨트롤을 구현 하는 방법을 설명 합니다.

  • 감사 보고를 위해 모든 클라우드 API 요청을 기록 합니다.
  • API 서버에 대 한 액세스를 보호 하기 위해 권한 있는 IP 범위를 사용 하도록 설정 합니다.
  • 허용 되는 위치를 사용 하 여 특정 지역 에서만 AKS 클러스터를 만들 수 있습니다.

이러한 컨트롤은 전체 Azure 배포에 포함 되는 보안 제어 및 Azure 정책의 하위 집합 일 뿐입니다. 프로세스를 이해 했으면이를 반복 하 여 조직에 필요한 다른 보안 컨트롤을 구현할 수 있습니다.

감사 보고를 위해 모든 클라우드 API 요청 기록

Azure 활동 로그 는 감사 로그를 포함 하 여 모든 Azure Resource Manager 상호 작용을 캡처합니다. 활동 로그에 특정 보존 기간만 있는 것이 문제입니다. 감사 보고에 대 한 로그를 유지 하려면 활동 로그에서 데이터를 Azure Monitor 로그와 같은 보다 영구적인 저장소 위치로 내보내야 합니다.

Azure 구독에 대 한 활동 로그 수집을 설정 하는 방법에 대 한 자습서는 Log Analytics 작업 영역으로 보내기를 참조 하세요.

다음 스크린샷은 Azure Log Analytics 작업 영역에서 Azure 활동 로그 캡처를 보여줍니다.

활동 로그 캡처를 보여 주는 스크린샷

Azure 보안 모니터링을 사용 하 여 권한 있는 IP 범위 확인

모든 항목을 만들기 전에 보안 모니터링 모범 사례 및 권장 사항에 대 한 클라우드 공급자를 찾으십시오. 클라우드 공급자는 조직의 요구에 맞는 모든 보안 컨트롤을 구현 하지는 않지만, 제공 된 컨트롤을 사용 하 여 reinventing를 방지 하 고 필요한 경우에만 사용자 지정 컨트롤을 만드는 것이 중요 합니다.

Azure에서 Azure Security Center 사용 하도록 설정 하 여 보안 모니터링 권장 사항을 볼 수 있습니다. Azure Security Center를 사용 하 여 AKS 클러스터에 권한 있는 IP 범위를 사용 하도록 설정 했는지 여부를 확인할 수도 있습니다.

Azure 구독에 Azure Security Center Standard를 사용 하도록 설정 하려면 빠른 시작: 설정 Azure Security Center을 참조 하세요.

다음 스크린샷은 표준 모니터링 Azure Security Center을 보여 줍니다.

Azure Security Center 표준 모니터링을 보여 주는 스크린샷

특정 지역 에서만 AKS 클러스터를 만들도록 Azure Policy 적용

또한 클라우드 공급자에서 정책 적용을 찾습니다. Azure에서 엔터프라이즈 제어 평면의 핵심 부분인 Azure Policy를 평가 합니다. Azure Policy를 사용 하 여 모든 작업을 수행할 수는 없지만, 제공 되는 기능을 사용 하 여 휠이 reinventing 않도록 하 고 필요한 경우에만 사용자 지정 컨트롤을 만드는 것이 중요 합니다.

Azure Policy를 사용 하 여 AKS 클러스터와 같은 Azure 리소스를 만들 수 있도록 허용 된 위치를 구현할 수 있습니다. 자세한 내용 및 지침은 자습서: 규정 준수를 적용 하는 정책 만들기 및 관리를 참조 하세요.

다음 스크린샷은 Azure Policy를 사용 하 여 허용 되는 영역 위치를 구현 하는 단계를 보여 줍니다.

  1. Azure Policy에서 허용 되 는 기본 제공 위치 정책을 선택 합니다.

    기본 제공 Azure 정책을 보여 주는 스크린샷

  2. 정책 정의를 확인 하 고 정책을 할당 합니다.

    허용 되는 위치 정책 정의를 보여 주는 스크린샷

  3. 정책을 구성 합니다.

    허용 되는 위치 구성 화면을 보여 주는 스크린샷

  4. 정책 매개 변수를 구성 합니다.

    허용 되는 위치 매개 변수 화면을 보여 주는 스크린샷

  5. 정책 할당을 확인 합니다.

    Azure Policy 할당을 보여 주는 스크린샷

리소스 만들기를 특정 지역으로 제한 하는 기능은 사용 가능한 여러 Azure 정책 중 하나일 뿐입니다.

비용 관리

비용 관리는 비용을 제어 하는 정책을 구현 하는 지속적인 프로세스입니다. Kubernetes 컨텍스트에서는 조직이 비용을 제어 하 고 최적화할 수 있는 여러 가지 방법이 있습니다. 여기에는 리소스 사용 및 소비를 관리 하 고 제어 하 고 기본 인프라를 사전에 모니터링 하 고 최적화 하는 기본 Kubernetes 도구가 포함 됩니다.

이 섹션에서는 Kubecost 를 사용 하 여 AKS 클러스터 비용을 관리 하는 방법을 보여 줍니다. 배포, 서비스, 레이블, pod 또는 네임 스페이스에 대 한 비용 할당 범위를 지정할 수 있습니다 .이를 통해 클러스터 사용자를 다시 충전 하거나 표시할 수 있는 유연성을 제공 합니다.

Kubecost 설치

몇 가지 Kubecost 설치 옵션이 있습니다. 자세한 내용은 Kubecost 설치를 참조 하세요.

Kubecost를 직접 설치 하려면 다음 명령을 사용 합니다.


# Create the Kubecost namespace

kubectl create namespace kubecost

# Install Kubecost into the AKS cluster

kubectl apply -f https://raw.githubusercontent.com/kubecost/cost-analyzer-helm-chart/master/kubecost.yaml --namespace kubecost

투구 2를 사용 하 여 Kubecost을 설치 하려면 다음 명령을 사용 합니다.

helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm install kubecost/cost-analyzer --namespace kubecost --name kubecost --set kubecostToken="YWxnaWJib25AbWljcm9zb2Z0LmNvbQ==xm343yadf98"

투구 3을 사용 하 여 Kubecost을 설치 하려면 다음 명령을 사용 합니다.

kubectl create namespace kubecost
helm repo add kubecost https://kubecost.github.io/cost-analyzer/
helm install kubecost kubecost/cost-analyzer --namespace kubecost --set kubecostToken="YWxnaWJib25AbWljcm9zb2Z0LmNvbQ==xm343yadf98"

몇 분 후에 Kubecost이 실행 되 고 있는지 확인 합니다.

kubectl get pods -n kubecost

# Connect to the Kubecost dashboard UI

kubectl port-forward -n kubecost svc/kubecost-cost-analyzer 9090:9090

이제 브라우저를 열고를 가리켜 http://127.0.0.1:9090 KUBECOST UI를 열 수 있습니다. Kubecost UI에서 비용 할당 정보를 볼 클러스터를 선택 합니다.

Kubecost는 리소스를 다음 범주로 구분 합니다.

  • 월간 클러스터 비용
  • 네임 스페이스 비용
  • 배포 리소스 비용
  • 비용 효율성

클러스터를 선택 하 여 다음 대시보드와 같은 개요를 확인 합니다.

Kubecost 대시보드를 보여 주는 스크린샷

왼쪽에 있는 할당 을 선택 하 여 리소스에 대 한 네임 스페이스 비용을 자세히 알아보세요. 할당 은 CPU, 메모리, 영구 볼륨 및 네트워크에 대 한 비용을 보여 줍니다. Kubecost는 Azure 가격에서 데이터를 가져오지만 리소스에 대 한 사용자 지정 비용을 설정할 수도 있습니다.

Kubecost 할당 화면을 보여 주는 스크린샷

왼쪽에서 비용 절감 을 선택 하 여 미달 사용 리소스에 대 한 비용 절감을 자세히 살펴볼 수 있습니다. 절감 은 미달 사용 노드 및 pod 및 중단 된 리소스에 대 한 정보를 제공 하 고 클러스터 내에서 과도 하 게 프로 비전 되는 리소스 요청을 식별 합니다. 다음 스크린샷은 예제 비용 절감 개요를 보여줍니다.

Kubecost 절약 화면을 보여 주는 스크린샷

Kubecost에서 제공 하는 다양 한 보기 및 기능을 탐색 하는 데 약간의 시간이 걸립니다.

설계 고려 사항

AKS에는 Azure Active Directory, Azure Storage, Azure Virtual Network와 같은 다른 Azure 서비스에 대 한 몇 가지 인터페이스가 있습니다 .이는 계획 단계에서 특별 한 주의가 필요 합니다. 또한 AKS는 인프라의 나머지 부분에서와 동일한 보안, 거 버 넌 스 및 규정 준수 메커니즘과 제어를 적용 해야 하는 추가 복잡성을 추가 합니다.

AKS 보안 거 버 넌 스 및 규정 준수를 위한 몇 가지 다른 디자인 고려 사항은 다음과 같습니다.

  • 클러스터의 제어 평면을 인터넷 (기본값) 또는 개인 클러스터로 특정 가상 네트워크 내 에서만 액세스할 수 있는지 여부를 결정 합니다.

  • 기본 제공 AppArmor Linux 보안 모듈을 사용 하 여 컨테이너에서 수행할 수 있는 작업 (예: 파일 시스템 탑재, 읽기, 쓰기, 실행 또는 시스템 기능)을 제한 합니다.

  • 컨테이너에서 수행할 수 있는 프로세스 호출을 제한 하려면 프로세스 수준에서 보안 컴퓨팅 (seccomp) 사용을 평가 합니다.

  • 위협 감지를 위해 Azure Defender For Kubernetes를 사용 하는 것이 좋습니다.

디자인 권장 사항