GCP - Compute Instances

Support HackTricks

Basic Information

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

Confidential VM

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

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

Disk & Disk Encryption

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

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

  • Вибрати ОС

  • Вказати, чи хочете ви видалити диск, коли екземпляр буде видалено

  • Шифрування: За замовчуванням буде використано ключ, керований 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: Моніторинг цілісності дозволяє вам контролювати та перевіряти цілісність завантаження ваших захищених VM за допомогою звітів Stackdriver. Вимагає увімкнення vTPM.

VM Access

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

Metadata

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

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

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

Last updated