Каталог EC2 AMI состоит из более чем 160 тысяч публичных AMI — смесь образов, созданных пользователями, опубликованных поставщиками и предоставленных AWS.
Как же убедиться, что AMI получен от проверенного поставщика или является официальным AMI, опубликованным AWS?
Как найти надежный AMI среди них, когда вы собираетесь запустить EC2 Instance?
В AWS типично, что что-то можно сделать или сделать несколькими способами — это здорово. Некоторые из них работают лучше других, некоторые способы являются официальными, а некоторые вы можете использовать просто для развлечения (проверьте это).
В этой статье я опишу пять способов получения официального и проверенного AMI для вашего следующего запуска EC2 Instance.
Использование мастера запуска EC2 и каталога AMI для получения официального AMI
При запуске экземпляра EC2 из консоли управления вы можете применить фильтр «Verified Provider» на вкладке Community AMIs, чтобы убедиться, что вы получите AMI от проверенного поставщика.
Метка «Проверенный поставщик» означает, что AMI принадлежит проверенной учетной записи Amazon.
В следующем примере я хочу убедиться, что Ubuntu 20.04 AMI получен из проверенного источника:
В прошлом вам приходилось сравнивать идентификатор владельца AMI с общедоступным списком проверенных идентификаторов владельцев для каждого региона.
Это не ракетостроение, но требует времени. Теперь это стало намного проще, благодаря метке «Проверенный поставщик».
Эта функция также отлично работает при создании шаблона запуска. Например, если вы хотите создать парк экземпляров macOS с автомасштабированием.
Мастер создания шаблона запуска плавно ведет вас от себя к каталогу AMI (где вы можете искать и выбирать AMI) и обратно.
Поиск проверенных AMI на странице AMI
Еще один интерфейс в консоли управления выполняет функцию браузера AMI. У него нет никакого причудливого названия, кроме «страница AMI», но вы, вероятно, уже знаете о нем: он выглядит как список AMI, и вы можете увидеть его, нажав на пункт меню «AMIs» в левой части меню страницы EC2.
Страница AMI позволяет вам использовать фильтры API для сужения поиска, и фильтр «Псевдоним владельца» — это тот фильтр, который вам нужен, чтобы убедиться, что AMI получен от надежного владельца.
Вот как это выглядит для моего поиска официального Amazon Linux 2 AMI:
AMI, предоставленные проверенными источниками, имеют amazon
(для AWS) или aws-marketplace
(для партнеров AWS) в качестве значения для фильтра псевдонима владельца.
Поиск AMI EC2 с помощью Terraform
Найти официальный AMI с помощью Terraform также просто — источник данных aws_ami выполняет эту работу.
Например, вот как можно найти тот же Amazon Linux 2 AMI, указав amazon
в качестве значения для аргумента owner
источника данных:
Сравните это с фильтрами на странице AMI — выглядит похоже, верно? Это связано с тем, как работает Terraform: он переводит ваш код в вызовы API и отправляет их на конечные точки AWS API.
Если вы совсем новичок в Terraform, советую прочитать эту статью, чтобы понять основные концепции: Terraform объясняется на английском языке
Найдите официальный AWS AMI с помощью Describe Images CLI
Иногда вам может понадобиться получить AMI из CLI, чтобы передать его в качестве аргумента ниже по конвейеру.
Это можно сделать с помощью команды ec2 describe-images в AWS CLI.
Фильтры API, о которых я упоминал ранее, работают и здесь — используйте их для сужения поиска.
Поиск доверенного AWS AMI с помощью SSM
Еще один способ, в котором задействован AWS CLI, — команда ssm get-parameter:
Она раскрывает одну полезную функцию диспетчера систем — публичные параметры.
Публичные параметры Systems Manager — это то, как AWS распространяет некоторые широко используемые артефакты, связанные с их сервисами.
Например, там можно найти официальные AMI для многих дистрибутивов: Amazon Linux, Windows, macOS, Bottlerocket, Ubuntu, Debian и FreeBSD.
Если вы хотите узнать больше, читайте на странице документации по поиску публичных параметров.
Все ли проверенные AMI хороши?
Значок «Проверенный поставщик» может быть получен третьей стороной только в том случае, если разработчик AMI зарегистрирован в качестве продавца на AWS Marketplace.
Стать продавцом там не так просто и требует выполнения некоторых условий, а сам процесс регистрации также подразумевает предоставление налоговой и банковской информации.
Кроме того, существуют определенные политики и процессы проверки, применяемые ко всем AMI, представленным на Marketplace.
Так что доверять сторонним продавцам со значком «Проверено» на определенном уровне можно. Однако всегда полезно проводить дополнительное сканирование и проверку программного обеспечения, которое вы используете. 🪲 😉

Сергей Василенко