Перейти к содержимому

Обзор

Метаданные — это служебная и пользовательская информация, которая описывает основные характеристики виртуальных машин (ВМ), представленная в формате «ключ-значение». К метаданным относятся, например, идентификатор ВМ, имя хоста, внешний IP-адрес и т.п.

Изнутри каждой ВМ доступен специализированный сервис, с помощью которого получить метаданные в формате Google Compute Engine.

Чтобы получить метаданные ВМ, подключитесь к ней по SSH и выполните GET-запрос на IP-адрес 169.254.169.254:

bash
curl http://169.254.169.254/computeMetadata/v1/instance/?recursive=true -H "Metadata-Flavor:Google" | jq

В результате выполнения запроса вы получите метаданные в формате JSON. Для отображения метаданных в удобном для чтения виде в примере используется утилита jq.

Запрашивать метаданные изнутри ВМ могут все авторизованные пользователи. Ограничить доступ к метаданным для отдельных пользователей или групп пользователей нельзя.

Получение метаданных ВМ с помощью токена сервисного аккаунта

Заголовок раздела «Получение метаданных ВМ с помощью токена сервисного аккаунта»

Для работы с метаданными удобно использовать сервисный аккаунт, привязанный к ВМ. После привязки сервисного аккаунта его токен поступает в метаданные ВМ, а также автоматически обновляется раз в 12 часов. Вы можете выполнять запросы к API облака, используя этот токен. Это позволяет избежать хранения ключей или токенов на диске ВМ и упрощает автоматизацию процессов в облаке.

Примечание

К виртуальной машине можно привязать только один сервисный аккаунт.

Вы также можете заменить привязанный сервисный аккаунт, или отвязать его от ВМ. После отвязки сервисного аккаунта его токен не будет доступен в метаданных ВМ. При этом полученный ранее токен будет действителен, пока не истечет срок его действия.

Привязка сервисного аккаунта и автоматизация получения токена позволит вам реализовать сценарии:

  • Интеграция с Object Storage. Приложение получает доступ к Object Storage для чтения конфигураций, загрузки файлов или создания резервных копий без встраивания токенов в исходный код или образы.
  • Построение процессов CI/CD. Build-сервер собирает Docker-образы и загружает их в Artifact Registry через docker push без выполнения docker login, а Production-серверы скачивают образы через docker pull.
  • Управление секретами через Certificate Manager. Приложение читает пароли к базам данных, токены и сертификаты из Certificate Manager без их хранения в исходном коде или переменных окружения. Приложение обращается к API с автоматической ротацией и версионированием через сервисный аккаунт.
  • Автоматическое масштабирование и управление жизненным циклом. Виртуальные машины автоматически регистрируются в Load Balancer, подключают дополнительные диски и выполняют Graceful Shutdown при масштабировании вниз через сервисный аккаунт с правами на управление сетевыми и вычислительными ресурсами.

Дополнительно, привязка сервисного аккаунта к ВМ упростит процесс инициализации MWS CLI.

Подробнее о привязке сервисного аккаунта и работе с его токеном читайте в практическом руководстве.

Ключ
Описание
Пример значения
idУникальный идентификатор ВМprojects/my-project/virtualMachines/my-vm
nameИмя ВМmy-vm
zoneЗона доступности ВМru-central1-a
hostnameИмя хостаmy-vm.my-project.c.mws
disksСписок индексов дисков, подключенных к ВМ0/
disks/<индекс диска>/device-nameИмя диска в рамках ВМmy-disk
disks/<индекс диска>/device-name/indexИндекс диска0
disks/<индекс диска>/device-name/typeТип дискаnbs-pl2
disks/<индекс диска>/device-name/modeРежим работы диска: только чтение (READ_ONLY) или чтение-запись (READ_WRITE)READ_WRITE
network-interfacesИндекс сетевого интерфейса0
network-interfaces/0/access-configs/0/external-ipВнешний IP-адрес ВМ203.0.113.10
network-interfaces/0/access-configs/0/typeСпособ назначения внешнего IP-адресаONE_TO_ONE_NAT
network-interfaces/0/access-configs/0/macMAC-адрес сетевого интерфейса00:00:5E:12:34:56
network-interfaces/0/access-configs/0/networkИмя сети, в которой функционирует ВМmy-network
attributesДополнительные атрибуты, назначаемые пользователемenvironment:test
attributes/user-dataСкрипты, используемые для настройки ВМ при первом запуске#cloud-config\nusers: \n - name: user\n groups: sudo\n shell: /bin/bash\n sudo: 'ALL=(ALL) NOPASSWD:ALL'\n ssh_authorized_keys:\n - ssh-ed25519 <SSH-ключ>

Также получить список ключей метаданных, доступных изнутри ВМ, можно с помощью запроса:

bash
curl http://169.254.169.254/computeMetadata/v1/instance/ -H "Metadata-Flavor:Google"