액세스 제어 및 아티팩트 보호

이 페이지에서는 아티팩트를 보호하는 데 도움이 되는 Google Cloud 서비스 및 기능에 대해 설명합니다.

저장 데이터 암호화

기본적으로 Google Cloud는 Google에서 관리하는 암호화 키를 사용하여 자동으로 저장 데이터를 암호화합니다. 데이터를 보호하는 키와 관련된 특정 규정 준수 또는 규제 요구사항이 있으면 고객 관리 암호화 키(CMEK)로 암호화된 저장소를 만들면 됩니다.

액세스 제어

기본적으로 모든 저장소는 비공개입니다. 최소 권한의 보안 원칙을 따르고 사용자 및 서비스 계정에 필요한 최소한의 권한만 부여합니다.

데이터 유출 방지

데이터 무단 반출을 방지하기 위해 VPC 서비스 제어를 사용하여 네트워크 보안 경계에 Artifact Registry 및 기타 Google Cloud 서비스를 배치할 수 있습니다.

취약점 스캔

Artifact Analysis공개적으로 모니터링된 패키지의 컨테이너 이미지에서 보안 취약점을 검사할 수 있습니다.

사용할 수 있는 옵션은 다음과 같습니다.

자동 취약점 스캔
이 기능을 사용 설정하면 컨테이너 이미지에서 패키지 취약점을 식별합니다. 이미지가 Artifact Registry에 업로드될 때 검사되며 데이터는 이미지를 내보낸지 최대 30일 동안 새로운 취약점을 찾기 위해 지속적으로 모니터링됩니다.
On-Demand Scanning API
사용 설정하면 로컬 이미지나 Artifact Registry에 저장된 이미지를 수동으로 검사할 수 있습니다. 이 기능을 사용하면 빌드 파이프라인 초기에 취약점을 감지하고 해결할 수 있습니다. 예를 들어 이미지가 빌드되면 Cloud Build를 사용하여 이미지를 검사한 후 검사에서 지정된 심각도 수준의 취약점을 감지하면 Artifact Registry로 업로드를 차단할 수 있습니다. 자동 취약점 스캔도 사용 설정한 경우 Artifact Analysis가 레지스트리에 업로드한 이미지도 검사합니다.

배포 정책

Binary Authorization을 사용하면 지원되는 Google Cloud 환경 중 하나에 컨테이너 이미지를 배포하려고 시도할 때 서비스가 적용하는 정책을 구성할 수 있습니다.

예를 들어 취약점 스캔 정책 준수에 대한 서명을 한 이미지인 경우에만 배포를 허용하도록 Binary Authorization을 구성할 수 있습니다.

사용하지 않는 이미지 삭제

사용하지 않는 컨테이너 이미지를 삭제하여 스토리지 비용을 줄이고 이전 소프트웨어 사용의 위험을 완화합니다. gcr-cleaner를 포함하여 이 작업에 도움이 되는 많은 도구를 사용할 수 있습니다. gcr-cleaner 도구는 공식 Google 제품이 아닙니다.

개발 초기부터 보안 문제 반영

정보 보안 목표를 일상 업무에 통합하면 소프트웨어 배포 성능을 높이고 더 안전한 시스템을 구축할 수 있습니다. 보안 문제를 비롯한 문제가 소프트웨어 개발 수명 주기의 초반에 처리되기 때문에(즉, 일정 다이어그램에서 왼쪽 방향으로 진행) 이 아이디어를 원점 회귀(shift idea)라고 부르기도 합니다. 개발 초기부터 보안 문제 반영은 DORA State of DevOps 연구 프로그램에서 확인된 DevOps 기능 중 하나입니다.

자세히 알아보기:

공개 저장소의 고려사항

다음과 같은 경우 신중한 고려를 요합니다.

  • 공개 소스의 아티팩트 사용
  • 자체 Artifact Registry 저장소를 공개로 설정

공개 소스의 아티팩트 사용

GitHub, Docker Hub, PyPI 또는npm 공개 레지스트리와 같은 공개 아티팩트 소스에서는 빌드 및 배포에 사용할 수 있는 도구나 종속 항목을 제공합니다.

그러나 공개 아티팩트 사용에 영향을 주는 제약조건이 조직에 있을 수 있습니다. 예를 들면 다음과 같습니다.

  • 소프트웨어 공급망의 콘텐츠를 제어하려 합니다.
  • 외부 저장소에 의존하고 싶지 않습니다.
  • 프로덕션 환경의 취약점을 엄격하게 제어하려 합니다.
  • 모든 이미지에 동일한 기본 운영체제가 필요합니다.

소프트웨어 공급망을 보호하는 다음과 같은 접근 방식을 고려하세요.

  • 아티팩트가 일관된 알려진 콘텐츠를 갖도록 자동 빌드를 설정합니다. Cloud Build 빌드 트리거 또는 기타 지속적 통합 도구를 사용하면 됩니다.
  • 표준화된 기본 이미지를 사용하세요. Google은 사용 가능한 몇 가지 기본 이미지를 제공합니다.
  • 아티팩트의 취약점을 해결합니다. On-Demand Scanning API를 사용하면 컨테이너 이미지를 Artifact Registry에 저장하기 전에 취약점을 검사할 수 있습니다. Artifact Analysis로도 Artifact Registry로 푸시한 컨테이너를 검사할 수 있습니다.
  • 이미지 배포에 내부 표준을 적용합니다. Binary Authorization지원되는 Google Cloud 환경에 대한 컨테이너 이미지 배포의 시행을 제공합니다.

공개 이미지 고려사항 자세히 알아보기

공개 Artifact Registry 저장소

Artifact Registry 리더 역할을 allUsers ID에 부여하여 Artifact Registry 저장소를 공개할 수 있습니다.

모든 사용자에게 Google Cloud 계정이 있는 경우 대신 allAuthenticatedUsers ID를 사용하여 인증된 사용자로 액세스를 제한할 수 있습니다.

Artifact Registry 저장소를 공개하기 전에 다음 가이드라인을 고려하세요.

  • 저장소에 저장한 모든 아티팩트를 공개적으로 공유할 수 있고 사용자 인증 정보, 개인 정보, 기밀 데이터를 노출하지 않는지 확인합니다.
  • 사용자가 아티팩트를 다운로드할 때 네트워크 데이터 전송 요금이 청구됩니다. 인터넷 다운로드 트래픽이 많을 것으로 예상되는 경우 관련 비용을 고려하세요.
  • 기본적으로 프로젝트의 사용자당 할당량은 무제한입니다. 악용을 방지하려면 프로젝트 내에서 사용자당 할당량에 한도를 설정합니다.

웹 애플리케이션 안내

  • OWASP 상위 10개에서는 OSWAP(Open Web Application Security Project)에 따라 주요 웹 애플리케이션 보안 위험을 나열합니다.

컨테이너 안내

  • 컨테이너 빌드를 위한 권장사항에는 컨테이너 빌드를 위한 권장사항이 포함됩니다.

    이미지 빌드에 대한 Docker 권장사항도 읽어볼 수 있습니다.

  • 컨테이너 작업을 위한 권장사항에는 일반적으로 Google Kubernetes Engine 및 컨테이너에서 애플리케이션을 보다 쉽게 실행할 수 있는 보안, 모니터링, 로깅 권장사항이 포함됩니다.

  • 인터넷 보안 센터(CIS)에는 Docker 컨테이너의 보안을 평가하는 Docker Benchmark가 있습니다.

    Docker는 Docker Bench for Security라는 오픈소스 스크립트를 제공합니다. 이 스크립트를 사용하면 CIS Docker Benchmark를 기준으로 실행 중인 Docker 컨테이너의 유효성을 검사할 수 있습니다.

    Docker Bench For Security는 CIS Docker Benchmark의 여러 항목을 확인하는 데 도움이 되지만 모든 항목을 스크립트로 확인할 수 있는 것은 아닙니다. 예를 들어 스크립트는 컨테이너의 호스트가 강화되었는지, 컨테이너 이미지에 개인 정보가 포함되어 있는지 확인할 수 없습니다. 벤치마크의 모든 항목을 검토하고 추가 확인이 필요한 사항을 파악하세요.

다음 단계

종속 항목 관리 자세히 알아보기