GCP - Cloud Run Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cloud Run은 Google의 확장 가능한 인프라 위에서 컨테이너를 직접 실행할 수 있는 서버리스 관리 컴퓨팅 플랫폼입니다.
컨테이너를 실행할 수 있으며, Go, Node.js, Python, Java, .NET Core 또는 Ruby를 사용하는 경우, 컨테이너를 자동으로 빌드하는 소스 기반 배포 옵션을 사용할 수 있습니다.
Google은 Cloud Run이 Google Cloud의 다른 서비스와 잘 작동하도록 구축했습니다. 따라서 전체 기능을 갖춘 애플리케이션을 구축할 수 있습니다.
Cloud Run에서 코드는 _서비스_로 지속적으로 실행되거나 _작업_으로 실행될 수 있습니다. 서비스와 작업 모두 동일한 환경에서 실행되며 Google Cloud의 다른 서비스와 동일한 통합을 사용할 수 있습니다.
Cloud Run 서비스. 웹 요청이나 이벤트에 응답하는 코드를 실행하는 데 사용됩니다.
Cloud Run 작업. 작업을 수행하고 작업이 완료되면 종료되는 코드를 실행하는 데 사용됩니다.
Google Cloud Run은 환경 변수를 검색할 수 있는 또 다른 서버리스 서비스입니다. Cloud Run은 기본적으로 컨테이너 내부의 포트 8080에서 실행되는 작은 웹 서버를 생성하여 HTTP GET 요청을 기다립니다. 요청이 수신되면 작업이 실행되고 작업 로그가 HTTP 응답을 통해 출력됩니다.
기본적으로, 웹 서버에 대한 접근은 공개되지만, 내부 트래픽(VPC...)으로 제한할 수도 있습니다. 또한, 웹 서버에 연락하기 위한 인증은 모두 허용하거나 IAM을 통한 인증 요구로 설정할 수 있습니다.
기본적으로 암호화는 Google 관리 키를 사용하지만, KMS의 CMEK(고객 관리 암호화 키)를 선택할 수도 있습니다.
기본적으로, 사용되는 서비스 계정은 Compute Engine 기본 계정으로, 프로젝트에 대해 편집자 접근 권한을 가지며 cloud-platform
범위를 가집니다.
실행을 위해 평문 환경 변수를 정의할 수 있으며, 클라우드 비밀을 마운트하거나 환경 변수에 클라우드 비밀을 추가할 수 있습니다.
Cloud SQL과의 연결을 추가하고 파일 시스템을 마운트할 수도 있습니다.
배포된 서비스의 URL은 **https://<svc-name>-<random>.a.run.app
**와 유사합니다.
Run 서비스는 1개 이상의 버전 또는 수정본을 가질 수 있으며, 여러 수정본 간에 트래픽을 분할할 수 있습니다.
Cloud Run 작업은 완료될 때까지 실행되고 요청을 제공하지 않는 컨테이너에 더 적합합니다. 작업은 요청을 제공하거나 포트를 수신할 수 있는 기능이 없습니다. 이는 Cloud Run 서비스와 달리 작업은 웹 서버를 포함하지 않아야 함을 의미합니다. 대신, 작업 컨테이너는 완료되면 종료되어야 합니다.
다음 페이지에서 클라우드 런 권한을 악용하여 권한을 상승시키는 방법을 확인할 수 있습니다:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)