GCP - Compute Instances

Підтримайте HackTricks

Основна інформація

Google Cloud Compute Instances — це налаштовувані віртуальні машини на хмарній інфраструктурі Google, що пропонують масштабовану та на вимогу обчислювальну потужність для широкого спектру застосувань. Вони надають такі функції, як глобальне розгортання, постійне зберігання, гнучкий вибір ОС та сильні мережеві та безпекові інтеграції, що робить їх універсальним вибором для хостингу вебсайтів, обробки даних та ефективного запуску додатків у хмарі.

Confidential VM

Confidential VMs використовують апаратні функції безпеки, що пропонуються останнім поколінням процесорів AMD EPYC, які включають шифрування пам'яті та безпечну зашифровану віртуалізацію. Ці функції дозволяють VM захищати дані, що обробляються та зберігаються в ній, навіть від операційної системи хоста та гіпервізора.

Для запуску Confidential VM може знадобитися змінити такі речі, як тип машини, мережевий інтерфейс, образ завантажувального диска.

Диск та шифрування диска

Можливо вибрати диск для використання або створити новий. Якщо ви вибираєте новий, ви можете:

  • Вибрати розмір диска

  • Вибрати ОС

  • Вказати, чи хочете ви видалити диск при видаленні інстанції

  • Шифрування: За замовчуванням буде використано ключ, керований Google, але ви також можете вибрати ключ з KMS або вказати сирий ключ для використання.

Розгортання контейнера

Можливо розгорнути контейнер всередині віртуальної машини. Можливо налаштувати образ для використання, встановити команду для виконання всередині, аргументи, змонтувати том та змінні середовища (чутлива інформація?) і налаштувати кілька опцій для цього контейнера, таких як виконання з привілеями, stdin та псевдо TTY.

Обліковий запис служби

За замовчуванням буде використано обліковий запис служби 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 одним кліком або вказати власні області.

Брандмауер

Можливо дозволити HTTP та HTTPS трафік.

Мережа

  • IP Forwarding: Можливо увімкнути IP forwarding при створенні інстанції.

  • Hostname: Можливо надати інстанції постійне ім'я хоста.

  • Інтерфейс: Можливо додати мережевий інтерфейс.

Додаткова безпека

Ці опції підвищать безпеку VM і рекомендуються:

  • Secure boot: Secure boot допомагає захистити ваші VM інстанції від шкідливого ПЗ на рівні завантаження та ядра, а також від руткітів.

  • Enable vTPM: Віртуальний модуль довіреної платформи (vTPM) перевіряє цілісність завантаження вашої гостьової VM до та під час завантаження, а також пропонує генерацію та захист ключів.

  • Integrity supervision: Моніторинг цілісності дозволяє вам контролювати та перевіряти цілісність завантаження ваших захищених VM інстанцій за допомогою звітів Stackdriver. Потрібно увімкнути vTPM.

Доступ до VM

Звичайний спосіб надати доступ до VM — це дозволити певні SSH публічні ключі для доступу до VM. Однак, також можливо увімкнути доступ до VM через os-config сервіс, використовуючи IAM. Крім того, можливо увімкнути 2FA для доступу до VM за допомогою цього сервісу. Коли цей сервіс увімкнено, доступ через SSH ключі вимкнено.

Метадані

Можливо визначити автоматизацію (userdata в AWS), яка є shell командами, що будуть виконуватися кожного разу, коли машина вмикається або перезавантажується.

Також можливо додати додаткові метадані у вигляді ключ-значення, які будуть доступні з метаданого кінцевого пункту. Ця інформація зазвичай використовується для змінних середовища та скриптів запуску/зупинки. Це можна отримати за допомогою 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"

Moreover, auth token for the attached service account and general info about the instance, network and project is also going to be available from the metadata endpoint. For more info check:

Encryption

За замовчуванням використовується ключ шифрування, керований Google, але можна налаштувати ключ шифрування, керований клієнтом (CMEK). Ви також можете налаштувати, що робити, коли використаний CMEK відкликано: нічого або вимкнути VM.

Support HackTricks

Last updated