GCP - Artifact Registry Enum
기본 정보
Google Cloud Artifact Registry는 소프트웨어 아티팩트를 관리, 저장 및 보안하는 데 사용되는 완전히 관리되는 서비스입니다. 이는 주로 Docker 이미지, Maven, npm 패키지 및 기타 유형의 아티팩트와 같은 빌드 종속성을 저장하는 저장소입니다. 이는 소프트웨어 개발 프로세스 중에 생성된 아티팩트를 저장하고 버전 관리하는 데 CI/CD 파이프라인에서 일반적으로 사용됩니다.
Artifact Registry의 주요 기능은 다음과 같습니다:
통합 저장소: 여러 유형의 아티팩트를 지원하여 Docker 이미지, 언어 패키지(Java의 Maven, Node.js의 npm 등) 및 기타 유형의 아티팩트에 대한 단일 저장소를 갖도록 하여 모든 아티팩트에 대한 일관된 액세스 제어 및 통합된 보기를 제공합니다.
완전 관리형: 관리형 서비스로서 사용자의 부담을 줄이기 위해 기본 인프라, 확장 및 보안을 처리합니다.
세밀한 액세스 제어: Google Cloud의 Identity and Access Management (IAM)과 통합되어 리포지토리에서 아티팩트에 액세스하거나 업로드하거나 다운로드할 수 있는 사용자를 정의할 수 있습니다.
지리적 복제: 여러 지역에 걸쳐 아티팩트를 복제하여 다운로드 속도를 향상시키고 가용성을 보장합니다.
Google Cloud 서비스와의 통합: Cloud Build, Kubernetes Engine 및 Compute Engine과 같은 다른 GCP 서비스와 원활하게 작동하여 Google Cloud 생태계 내에서 이미 작업 중인 팀에게 편리한 선택지가 됩니다.
보안: 취약성 스캐닝 및 컨테이너 분석과 같은 기능을 제공하여 저장된 아티팩트가 안전하고 알려진 보안 문제가 없는지 확인합니다.
형식 및 모드
새 리포지토리를 만들 때 리포지토리의 형식/유형을 Docker, Maven, npm, Python 등 여러 가지 중에서 선택할 수 있으며 일반적으로 다음 세 가지 중 하나일 수 있습니다:
표준 리포지토리: GCP에 직접 자체 아티팩트(예: Docker 이미지, Maven 패키지)를 저장하는 기본 모드입니다. Google Cloud 생태계 내에서 안전하고 확장 가능하며 통합이 잘 됩니다.
원격 리포지토리 (사용 가능한 경우): 외부, 공개 리포지토리에서 아티팩트를 캐싱하는 프록시 역할을 합니다. 상위 의존성이 변경되는 문제를 방지하고 자주 액세스되는 아티팩트를 캐싱하여 대기 시간을 줄입니다.
가상 리포지토리 (사용 가능한 경우): 단일 엔드포인트를 통해 여러 (표준 또는 원격) 리포지토리에 통합된 인터페이스를 제공하여 여러 리포지토리에 분산된 아티팩트에 대한 클라이언트 측 구성 및 액세스 관리를 단순화합니다.
가상 리포지토리의 경우 리포지토리를 선택하고 우선순위를 지정해야 합니다(우선순위가 가장 높은 리포지토리가 사용됨).
원격의 우선순위가 표준보다 높으면, 원격(예: PyPi)의 패키지가 사용됩니다. 이는 의존성 혼란으로 이어질 수 있습니다.
Docker의 원격 버전에서는 Docker Hub에 액세스하기 위해 사용자 이름과 토큰을 제공할 수 있습니다. 토큰은 Secret Manager에 저장됩니다.
암호화
기본적으로 Google 관리형 키가 사용되지만 고객 관리형 키(CMEK)를 지정할 수 있습니다.
정리 정책
아티팩트 삭제: 정리 정책 기준에 따라 아티팩트가 삭제됩니다.
드라이런: (기본값) 아티팩트가 삭제되지 않습니다. 정리 정책이 평가되고 테스트 삭제 이벤트가 Cloud Audit Logging으로 전송됩니다.
취약성 스캐닝
컨테이너 이미지 내의 취약성을 확인하는 취약성 스캐너를 활성화할 수 있습니다.
열거
권한 상승
GCP - Artifact Registry Privesc인증되지 않은 액세스
GCP - Artifact Registry Unauthenticated Enum사후 공격
GCP - Artifact Registry Post Exploitation지속성
GCP - Artifact Registry PersistenceLast updated