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

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

저장 데이터 암호화

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

액세스 제어

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

아티팩트 다운로드 제한

다운로드 규칙으로 아티팩트 다운로드를 제한할 수 있습니다. 다운로드 규칙을 사용하면 저장소 및 패키지에서 아티팩트 다운로드를 허용하거나 거부할 수 있습니다. 또한 특정 태그 또는 버전에 규칙이 적용되도록 조건을 설정할 수 있습니다.

프로젝트의 각 저장소에 대해 저장소 수준의 다운로드 규칙 1개와 패키지당 다운로드 규칙 1개가 있을 수 있습니다. 클라이언트가 다운로드를 시도하면 Artifact Registry는 먼저 아티팩트 패키지에 대한 다운로드 규칙을 확인합니다. 규칙이 존재하지 않거나 규칙의 조건이 아티팩트에 적용되지 않으면 Artifact Registry는 저장소에 대한 규칙을 확인합니다.

예를 들어 모든 다운로드를 거부하는 저장소 규칙을 만든 다음 패키지에서의 다운로드를 허용하는 패키지 규칙을 만들 수 있습니다. 패키지 수준 규칙이 우선 적용되며 해당 패키지에 속한 아티팩트만 저장소에서 다운로드할 수 있습니다.

다운로드 규칙은 모든 저장소 모드와 다음 저장소 형식에서 사용할 수 있습니다.

  • Docker
  • Go
  • Maven
  • npm
  • Python

데이터 무단 방출 방지

데이터 무단 반출을 방지하기 위해서는 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 제품이 아닙니다.

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

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

자세히 알아보기:

  • 보안을 왼쪽으로 이동 기능에 대해 자세히 알아보세요.
  • 보안을 왼쪽으로 이동 백서 읽어보기(소프트웨어 개발 수명 주기(SDLC)의 신뢰도를 높이기 위한 책임, 관행, 프로세스, 도구, 기법을 설명하고 보안 위험 문제를 완화)

공개 저장소의 고려사항

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

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

공개 소스의 아티팩트 사용

아티팩트에 대한 다음 공개 소스는 사용 가능한 도구 도는 번들 및 배포의 종속 항목을 제공합니다.

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

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

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

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

공개 Artifact Registry 저장소

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

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

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

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

웹 애플리케이션 안내

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

컨테이너 안내

  • Docker 권장사항에는 이미지 빌드에 대한 권장사항이 포함되어 있습니다.
  • 인터넷 보안 센터(CIS)에는 Docker 컨테이너의 보안을 평가하는 Docker Benchmark가 있습니다.

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

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

다음 단계

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