GCP - Compute Instances

Support HackTricks

Basic Information

Google Cloud Compute Instances는 구글의 클라우드 인프라에서 사용자 정의 가능한 가상 머신으로, 다양한 애플리케이션을 위한 확장 가능하고 온디맨드 컴퓨팅 파워를 제공합니다. 이들은 글로벌 배포, 지속적인 저장소, 유연한 OS 선택, 강력한 네트워킹 및 보안 통합과 같은 기능을 제공하여 웹사이트 호스팅, 데이터 처리 및 클라우드에서 애플리케이션을 효율적으로 실행하는 데 다재다능한 선택이 됩니다.

Confidential VM

Confidential VM은 메모리 암호화 및 안전한 암호화 가상화를 포함한 최신 세대의 AMD EPYC 프로세서가 제공하는 하드웨어 기반 보안 기능을 사용합니다. 이러한 기능은 VM이 처리하고 저장된 데이터를 호스트 운영 체제 및 하이퍼바이저로부터 보호할 수 있게 합니다.

Confidential VM을 실행하려면 기계의 유형, 네트워크 인터페이스, 부팅 디스크 이미지와 같은 것들을 변경해야 할 수 있습니다.

Disk & Disk Encryption

사용할 디스크를 선택하거나 새로 생성할 수 있습니다. 새로 선택하면 다음을 수행할 수 있습니다:

  • 디스크의 크기 선택

  • OS 선택

  • 인스턴스가 삭제될 때 디스크를 삭제할지 여부 표시

  • 암호화: 기본적으로 Google 관리 키가 사용되지만, KMS에서 키를 선택하거나 사용할 원시 키를 지정할 수 있습니다.

Deploy Container

가상 머신 내에 컨테이너를 배포할 수 있습니다. 사용할 이미지를 구성하고, 내부에서 실행할 명령, 인수, 볼륨을 마운트하고, 환경 변수(민감한 정보?)를 설정하며, 이 컨테이너에 대해 특권으로 실행, stdin 및 가상 TTY와 같은 여러 옵션을 구성할 수 있습니다.

Service Account

기본적으로 Compute Engine 기본 서비스 계정이 사용됩니다. 이 SA의 이메일은 다음과 같습니다: <proj-num>-compute@developer.gserviceaccount.com 이 서비스 계정은 **전체 프로젝트에 대한 편집자 역할(높은 권한)**을 가지고 있습니다.

그리고 기본 액세스 범위는 다음과 같습니다:

  • https://www.googleapis.com/auth/devstorage.read_only -- 버킷에 대한 읽기 액세스 :)

  • https://www.googleapis.com/auth/logging.write

  • https://www.googleapis.com/auth/monitoring.write

  • https://www.googleapis.com/auth/servicecontrol

  • https://www.googleapis.com/auth/service.management.readonly

  • https://www.googleapis.com/auth/trace.append

그러나 클릭으로 cloud-platform을 부여하거나 사용자 정의 범위를 지정할 수 있습니다.

Firewall

HTTP 및 HTTPS 트래픽을 허용할 수 있습니다.

Networking

  • IP Forwarding: 인스턴스 생성 시 IP 포워딩을 활성화할 수 있습니다.

  • Hostname: 인스턴스에 영구 호스트 이름을 부여할 수 있습니다.

  • Interface: 네트워크 인터페이스를 추가할 수 있습니다.

Extra Security

이러한 옵션은 VM의 보안을 증가시키며 권장됩니다:

  • Secure boot: Secure boot는 부팅 수준 및 커널 수준의 맬웨어 및 루트킷으로부터 VM 인스턴스를 보호하는 데 도움을 줍니다.

  • Enable vTPM: 가상 신뢰 플랫폼 모듈(vTPM)은 게스트 VM의 부팅 전 및 부팅 무결성을 검증하고 키 생성 및 보호를 제공합니다.

  • Integrity supervision: 무결성 모니터링을 통해 Stackdriver 보고서를 사용하여 보호된 VM 인스턴스의 런타임 부팅 무결성을 모니터링하고 검증할 수 있습니다. vTPM이 활성화되어 있어야 합니다.

VM Access

VM에 대한 액세스를 활성화하는 일반적인 방법은 특정 SSH 공개 키가 VM에 액세스할 수 있도록 허용하는 것입니다. 그러나 IAM을 사용하여 os-config 서비스를 통해 VM에 대한 액세스를 활성화할 수도 있습니다. 또한 이 서비스를 사용하여 VM에 액세스하기 위해 2FA를 활성화할 수 있습니다. 이 서비스활성화되면, SSH 키를 통한 액세스가 비활성화됩니다.

Metadata

자동화(AWS의 userdata)를 정의할 수 있으며, 이는 기계가 켜지거나 재시작될 때마다 실행될 셸 명령입니다.

또한 메타데이터 엔드포인트에서 접근할 수 있는 추가 메타데이터 키-값 쌍추가할 수 있습니다. 이 정보는 일반적으로 환경 변수 및 시작/종료 스크립트에 사용됩니다. 이는 열거 섹션의 명령에서 describe 메서드를 사용하여 얻을 수 있지만, 인스턴스 내부에서 메타데이터 엔드포인트에 접근하여도 검색할 수 있습니다.

# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

또한, 연결된 서비스 계정에 대한 인증 토큰인스턴스, 네트워크 및 프로젝트에 대한 일반 정보메타데이터 엔드포인트에서 사용할 수 있습니다. 자세한 내용은 다음을 확인하세요:

암호화

기본적으로 Google 관리 암호화 키가 사용되지만, 고객 관리 암호화 키(CMEK)를 구성할 수 있습니다. 사용된 CMEK가 취소될 때의 처리 방법도 구성할 수 있습니다: VM을 종료하거나 아무것도 하지 않기.

HackTricks 지원하기

Last updated