Продукт – это набор облачных ресурсов AWS, которые вы хотите предоставить для развертывания на AWS. Продукт может включать один или несколько ресурсов AWS (таких как инстансы EC2, тома хранения данных, базы данных, конфигурации мониторинга и сетевые компоненты) или пакеты продуктов из Торговой площадки AWS. Продукт может являться отдельным вычислительным инстансом с AWS Linux, полностью настроенным многоуровневым интернет‑приложением, запущенным в изолированной среде, или комбинацией этих вариантов. Каталог сервисов AWS позволяет создавать продукты несколькими способами, в частности с помощью шаблонов AWS CloudFormation или конфигураций Terraform. Эти шаблоны и конфигурации определяют необходимые для продукта ресурсы AWS, отношения между ресурсами и параметры, которые может включить конечный пользователь, запустив продукт для конфигурации групп безопасности, создания пар ключей и выполнения других настроек.
Продукты Каталога сервисов AWS – это либо продукты типа AWS CloudFormation, либо продукты типа Terraform с открытым исходным кодом, либо облачные продукты Terraform. Каждый продукт типа AWS CloudFormation запускается как стек AWS CloudFormation, который представляет собой набор ресурсов, выделенных для данного инстанса продукта. Для продуктов типа Terraform с открытым исходным кодом и облачных продуктов Terraform базовые ресурсы хранятся и маркируются в группах ресурсов AWS. Стеки AWS CloudFormation и группы ресурсов AWS облегчают управление жизненным циклом продукта, позволяя выделять, обновлять и удалять инстанс продукта как отдельную единицу, а также назначать ему теги.
Портфель – это набор продуктов и информация об их конфигурации. Портфели упрощают управление конфигурацией продуктов и позволяют установить, кто и каким образом может использовать те или иные продукты. С помощью AWS Service Catalog можно создать собственные портфели для каждого типа пользователей в организации и выборочно предоставить доступ к соответствующим портфелям. При добавлении новой версии продукта в портфель она автоматически становится доступна всем текущим пользователям данного портфеля. Можно также предоставить доступ к портфелям другим аккаунтам AWS и разрешить администраторам этих аккаунтов распространять ваши портфели с дополнительными ограничениями. Например, для разработчиков можно определить портфель сред разработки, такой как стек LAMP с утвержденными версиями ПО, которое может использоваться для разработки и тестирования ПО. Можно также определить портфель для маркетинговых подразделений, включающий веб-сайты маркетинговых кампаний и приложения для анализа рынка. Портфель может содержать продукты разных типов, включая продукты типа AWS CloudFormation, продукты типа Terraform с открытым исходным кодом и облачные продукты Terraform.
Сервис AWS Service Catalog дает возможность управлять разными версиями продуктов в каталоге. Это позволяет добавлять новые версии шаблонов или связанные ресурсы на основе обновлений ПО или изменений конфигурации. При создании новой версии продукта обновление автоматически становится доступно всем пользователям, имеющим доступ к этому продукту, при этом выбор версии продукта остается за пользователем. При желании пользователи могут легко и быстро обновить запущенные инстансы продукта до новой версии.
При наличии доступа к портфелю пользователь может просматривать содержимое портфеля и запускать входящие в него продукты. Чтобы определить, кто может просматривать и изменять продукты и портфели, применяются разрешения сервиса Управление идентификацией и доступом AWS (IAM). Разрешения IAM можно назначать пользователям, группам и ролям IAM. Когда пользователь запускает продукт с назначенной ролью IAM, Каталог сервисов AWS использует эту роль для запуска облачных ресурсов продукта. Назначая роль IAM каждому продукту, вы можете избежать предоставления пользователям разрешений на выполнение неодобренных операций и позволяете им выделять ресурсы с помощью каталога.
Ограничения сокращают количество способов развертывания определенных ресурсов AWS для продукта. Их можно применять для ограничения использования продуктов с целью управления или контроля затрат. Существует два типа ограничений: ограничения шаблона и ограничения запуска. Ограничения шаблона ограничивают параметры конфигурации, доступные пользователю при запуске продукта (например, типы инстансов EC2 или диапазоны IP‑адресов). Ограничения шаблона позволяют повторно использовать типовые шаблоны инфраструктуры как кода (IaC) для продуктов и накладывать ограничения на шаблоны для отдельного продукта или портфеля. Ограничения запуска позволяют указать роль для продукта в портфеле. Эта роль используется для выделения ресурсов при запуске. Таким образом можно ограничить разрешения пользователя, не затрагивая возможность выделения продуктов из каталога. Например, пользователям из сферы маркетинга можно разрешить создавать веб-сайты маркетинговых кампаний, но ограничить им доступ к выделению баз данных. Ограничения запуска поддерживаются для продуктов типа Terraform с открытым исходным кодом и облачных продуктов Terraform. Ограничения шаблонов для продуктов типа Terraform с открытым исходным кодом и облачных продуктов Terraform пока недоступны.
Действия для сервиса позволяют конечным пользователям выполнять операционные задачи и утвержденные команды, устранять неполадки или запрашивать разрешения в AWS Service Catalog для ваших выделенных продуктов без необходимости предоставлять конечным пользователям полный доступ к сервисам AWS. Для определения действий для сервиса используются документы AWS Systems Manager. Документы Менеджера систем AWS предоставляют доступ к заранее определенным действиям на основе рекомендаций AWS, таким как остановка и перезапуск Amazon EC2. Кроме того, вы можете определять настраиваемые действия. Сервисные действия пока недоступны для продуктов типа Terraform с открытым исходным кодом и облачных продуктов Terraform.
Чтобы определить приложения в Service Catalog AppRegistry, разработчикам необходимо указать имя, описание, связи с метаданными приложения и связи со стеками CloudFormation. Связанные группы атрибутов представляют собой метаданные, созданные и управляемые вашей организацией для приложения. Связанные стеки CloudFormation представляют собой ресурсы AWS, связанные с приложением. Такие ресурсы могут быть инфраструктурой, необходимой в единственной среде, или включать в себя репозитории кода и конвейеры, которые поддерживают приложение во всех средах. С приложениями можно связать существующие или новые стеки CloudFormation. Стеки могут быть связаны с приложениями непосредственно в шаблоне, автоматизируя связь приложений во время выделения.
Ваша организация создает атрибуты, которые фиксируют важные для нее метаданные приложения, и управляет такими атрибутами. Атрибуты приложения поддерживают открытую схему JSON, что обеспечивает гибкость, необходимую для фиксации сложности таксономии корпоративных метаданных. Атрибуты приложения могут включать в себя такие элементы, как классификация безопасности приложения, тип собственности организации, тип приложения, центр затрат и сведения о поддержке. Разработчики связывают соответствующие атрибуты с приложениями. Обновление атрибутов автоматически отражается во всех связанных приложениях.