Рубрики
Uncategorized

Автоматизация обзора ресурсов AWS и развертываний с действиями GitHub

Использование CICD для просмотра, Lint, Daid и развертывания ресурсов к вашей учетной записи AWS. Помечено AWS, CICD, Github, действиями.

Развертывание ресурсов AWS с действиями GitHub может помочь сэкономить вам много времени и убедиться, что вы развертываете качественные шаблоны. Помимо качества, вы можете быть уверены, что вы поддерживаете свою инфраструктуру-как код (IAC) в соответствии с тем, что на самом деле на самом деле развернут в ваших условиях.

Существует время и место, чтобы не использовать CICD для развертывания ресурсов AWS, но большую часть времени вы можете запустить ваши трубопроводы или рабочие процессы, чтобы доставлять ваши ресурсы непосредственно в свою учетную запись AWS, зная, что то, что развернуто, это именно то, что представлено в вашем мастере ветвь.

Не нужна 30 000 футов. Посмотреть? Прыгайте прямо на код здесь:

https://github.com/rosswickman/aws-automation-workflows

Настройка

Тебе понадобится:

  • Клон или вилка репо, связанного выше
  • S3 Bucket для хранения шаблонов CFN и TF. Возможно ваше состояние TF. (Рекомендуется, но не требуется)
  • IAM пользователь с разрешениями, чтобы доставить шаблоны на S3
  • IAM пользователь с разрешениями на развертывание ресурсов

ПРИМЕЧАНИЕ: Вы можете сделать это одним пользователем IAM, но я рекомендую минимизировать радиус взрыва с наименьшими привилегией, где это возможно. В идеальной производственной ситуации вы должны настроить бегун действий GitHub в вашей среде с необходимыми разрешениями.

Конфигурация

Разверните три стека в Требования/ каталог общего репо. Рабочие процессы настраиваются для региона US-West-2, поэтому развертывайте там.

Настройте секреты репозитория, получив ключи доступа IAM из менеджера AWS Secrets в вашей учетной записи.

Создайте филиал «функции» или «Обновить» в вашем проекте, который вы клонировали сверху или созданные самостоятельно.

Если вы клонировали/раздавили проект, чтобы начать, вы увидите, что есть облачность и а террафор каталог в проекте. Каждый каталог имеет соответствующий шаблон, который развертывает группу безопасности в вашей настроенной учетной записи AWS. Мы использовали группу безопасности, потому что они ничего не стоят. Вам нужно будет обновить идентификатор VPC (с US-WEST-2) в каждом шаблоне для ресурса, чтобы правильно развернуть в своей учетной записи, но это все, что вам нужно сделать.

Процесс

Перед развертыванием чего-либо до (конкретно) производства шаблоны должны быть рассмотрены для вопросов безопасности и качества безопасности. Для этого мы используем инструменты, такие как Superlinter, CFN-NAG, CFN-Lint и Checkov.

Каждый инструмент представлен рабочим процессом, который завершает соответствующий процесс. Эти рабочие процессы могут быть организованы по своему вкусу. Однако, поскольку они настроены в этом проекте, этот процесс будет работать после того, как вы нажимаете какие-либо изменения в вашу функциональную ветку.

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

Чтобы подготовить ресурсы для доставки и развертывания, вам нужно будет создать запрос на тягу. Запрос на тягу будет запустить план террафора и показать вам, что произойдет, если шаблон террафора развернут.

Доставка происходит при объединении главной ветви. Вы можете настроить развертывание ресурсов, чтобы быть автоматическим или ручным триггером. В некоторых случаях ручное развертывание имеет большое значение. Я позволю тебе быть судьей того, что должен быть ручным триггером.

Финальный продукт

Как только ваш запрос на тягу был объединен в главную ветку, шаблоны были доставлены в ведро S3, которое вы настроили с использованием инструкций в проекте GIT. Если вы покинули только рабочие процессы, развертывание облака и террафора развертывает необходимое ручное действие для запуска.

После успешно завершена и завершена, вы должны увидеть две новые группы безопасности, прикрепленные к вашему VPC. Один развернул через шаблон облака и другого с террафом.

Там у вас есть. Вы только что настроили рабочий процесс CICD/D для доставки шаблонов ресурсов AWS, управляемые исходными устройствами непосредственно на вашу учетную запись.

В будущих постах я покажу, как развернуть AWS Organization Stacksets, а также развертывание Stacksets к многорудной конфигурации, полученной из одного репо.

Я знаю, что есть много разных способов настроить этот процесс, эта демонстрация использует один репозиторий для шаблонов CFN, так и для TF. Это может не всегда быть желаемым решением. Если вы аналогично развертываете ресурсы, я хотел бы знать, что вы делаете по-другому или, если у вас есть какие-либо рекомендации о том, что я должен делать по-другому.

Оригинал: «https://dev.to/aws-builders/automate-aws-resource-review-and-deployments-with-github-actions-3chj»