안전하게 애플리케이션 배포

Last reviewed 2023-08-08 UTC

Google Cloud 아키텍처 프레임워크의 이 문서에서는 애플리케이션의 안전한 배포를 위한 권장사항을 제공합니다.

보안 애플리케이션을 배포하려면 설계, 개발, 테스트, 배포 단계 중에 적절한 보안 검사를 통해 잘 정의된 소프트웨어 개발 수명 주기가 있어야 합니다. 애플리케이션을 설계할 때 ID, 승인, 액세스 제어에 표준화된 프레임워크를 사용하는 레이어 시스템 아키텍처를 사용하는 것이 좋습니다.

보안 출시 자동화

자동화된 도구가 없으면 일관된 보안 요구사항을 충족하기 위해 복잡한 애플리케이션 환경을 배포, 업데이트, 패치하기가 어려울 수 있습니다. 따라서 이러한 문제를 해결할 수 있도록 이러한 태스크를 위해 CI/CD 파이프라인을 빌드하는 것이 좋습니다. 자동화된 파이프라인은 수동 오류를 삭제하고 표준화된 개발 피드백 루프를 제공하며 빠른 제품 반복을 지원합니다. 예를 들어 Cloud Build 비공개 풀을 사용하면 금융 및 의료를 포함하여 엄격한 규제가 있는 산업에 적합한 안정성이 뛰어난 관리형 CI/CD 파이프라인을 배포할 수 있습니다.

아티팩트가 생성될 때 자동화를 사용하여 보안 취약점을 스캔할 수 있습니다. 확인된 아티팩트만 배포되도록 다양한 환경(개발, 테스트, 프로덕션 등)에 대한 정책을 정의할 수도 있습니다.

승인된 프로세스에 따라 애플리케이션을 배포합니다.

공격자가 CI/CD 파이프라인을 손상시킬 경우 전체 스택이 영향을 받을 수 있습니다. 파이프라인을 보호하려면 코드를 프로덕션에 배포하기 전에 설정된 승인 프로세스를 적용해야 합니다.

Google Kubernetes Engine(GKE) 또는 GKE Enterprise를 사용하려는 경우 Binary Authorization을 사용하여 이러한 확인 및 균형을 설정할 수 있습니다. Binary Authorization은 구성 가능한 서명을 컨테이너 이미지에 연결합니다. 이러한 서명(증명이라고도 함)은 이미지를 검증하는 데 도움이 됩니다. 배포 시 Binary Authorization은 이러한 증명을 사용하여 프로세스가 이전에 완료되었는지 확인합니다. 예를 들어 Binary Authorization을 사용하여 다음을 수행할 수 있습니다.

  • 특정 빌드 시스템 또는 지속적 통합(CI) 파이프라인이 컨테이너 이미지를 만들었는지 확인합니다.
  • 컨테이너 이미지가 취약점 서명 정책을 준수하는지 확인합니다.
  • 컨테이너 이미지가 QA로의 개발과 같은 다음 배포 환경으로 승격하기 위한 기준을 통과하는지 확인합니다.

배포 전 알려진 취약점 스캔

컨테이너가 프로덕션에 배포되기 전에 컨테이너 이미지에 대한 취약점 스캔을 지속적으로 수행할 수 있는 자동화된 도구를 사용하는 것이 좋습니다.

Artifact Analysis를 사용하여 Artifact RegistryContainer Registry에 저장된 컨테이너의 취약점을 자동으로 스캔합니다. 이 프로세스에는 스캔 및 지속적 분석이라는 두 가지 태스크가 있습니다.

먼저 Artifact Registry 또는 Container Registry에 새 이미지가 업로드되면 Artifact Analysis가 해당 이미지를 스캔합니다. 스캔은 컨테이너의 시스템 패키지에 대한 정보를 추출합니다.

그러면 Artifact Analysis가 이미지를 업로드할 때 취약점을 찾습니다. 초기 스캔 후 Artifact Analysis는 Artifact Registry 및 Container Registry에서 스캔한 이미지의 메타데이터를 지속적으로 모니터링하여 새로운 취약점이 있는지 확인합니다. Artifact Analysis는 취약점 소스에서 새로운 업데이트된 취약점 정보를 수신하면 다음을 수행합니다.

  • 스캔한 이미지의 메타데이터를 업데이트하여 최신 상태로 유지합니다.
  • 새 메모에 대한 새 취약점 어커런스를 만듭니다.
  • 더 이상 유효하지 않은 취약점 어커런스를 삭제합니다.

애플리케이션 코드에 알려진 취약점이 있는지 모니터링합니다.

애플리케이션 코드를 지속적으로 모니터링하여 OWASP 상위 10개와 같은 알려진 취약점이 있는지 확인할 수 있는 자동화된 도구를 사용하는 것이 좋습니다. OWASP 상위 10개 완화 기술을 지원하는 Google Cloud 제품 및 기능에 대한 설명은 Google Cloud의 OWASP 상위 10개 완화 옵션을 참조하세요.

Web Security Scanner를 사용하여 App Engine, Compute Engine, Google Kubernetes Engine 웹 애플리케이션의 보안 취약점을 파악할 수 있습니다. 스캐너는 애플리케이션을 크롤링하여 시작 URL 범위 내에 있는 모든 링크를 확인하고 최대한 많은 사용자 입력과 이벤트 핸들러 실행을 시도합니다. 교차 사이트 스크립팅(XSS), 플래시 삽입, 혼합 콘텐츠(HTTPS 내 HTTP), 구버전 및 취약 라이브러리 등의 일반적인 취약점을 자동으로 스캔하고 감지할 수 있습니다. Web Security Scanner는 이러한 유형의 취약점을 조기에 식별할 수 있으므로 거짓양성률이 낮습니다.

경계 간에 데이터 이동 제어

경계 간에 데이터 이동을 제어하려면 Google 관리형 서비스의 리소스 주위에 보안 경계를 구성할 수 있습니다. VPC 서비스 제어를 사용하여 CI/CD 파이프라인의 모든 구성요소와 서비스(예: Container Registry, Artifact Registry, Artifact Analysis, Binary Authorization)를 보안 경계 내에 배치합니다.

VPC 서비스 제어는 Google 관리형 서비스에서 데이터를 무단으로 복사하거나 전송하는 위험(데이터 무단 반출)을 완화하는 기능을 개선합니다. VPC 서비스 제어를 사용하여 Google 관리형 서비스의 리소스 주위에 보안 경계를 구성하고 경계 범위 간의 데이터 이동을 제어합니다. 서비스 경계가 시행되면 경계 외부에서 보호되는 서비스에 대한 요청과 같이 경계 정책을 위반하는 요청은 거부됩니다. 시행 경계로 서비스가 보호되는 경우 VPC 서비스 제어는 다음을 확인합니다.

  • 서비스는 경계 외부로 데이터를 전송할 수 없습니다. 보호된 서비스는 경계 내에서 정상적으로 작동하지만 경계 외부로 리소스와 데이터를 전송할 수 없습니다. 이러한 제한은 경계의 프로젝트에 액세스할 수 있는 악의적인 내부자가 데이터를 유출하는 것을 방지하는 데 도움이 됩니다.
  • 경계 외부에서 보호된 서비스로 보내는 요청은 경계에 할당된 액세스 수준의 기준을 충족하는 경우에만 적용됩니다.
  • 경계 브리지를 사용하여 다른 경계의 프로젝트에서 이 서비스에 액세스할 수 있습니다.

컨테이너 이미지 암호화

Google Cloud에서는 고객 관리 암호화 키(CMEK)를 사용하여 컨테이너 이미지를 암호화할 수 있습니다. CMEK 키는 Cloud Key Management Service(Cloud KMS)에서 관리됩니다. CMEK를 사용할 때 키를 사용 중지하거나 폐기하여 암호화된 컨테이너 이미지에 대한 액세스를 일시적으로 또는 영구적으로 사용 중지할 수 있습니다.

다음 단계

다음 리소스를 통해 공급망 및 애플리케이션 보안을 보호하는 방법을 자세히 알아보세요.