Принудительная пометка ресурсов terraform в AWS - PullRequest
0 голосов
/ 11 октября 2019

Мне было интересно, есть ли хороший способ обеспечить тегирование ресурсов AWS для всех разработчиков. Или, по крайней мере, предоставить предопределенный набор тегов, которые вставляются автоматически. Причина этого в том, что некоторые члены команды забывают пометить свои ресурсы или использовать другой набор тегов. Кроме того, если вы хотите изменить теги для будущих развертываний, вы должны изменить его везде. Итак, моя идея до сих пор состоит в том, чтобы создать карту, которая включает все теги, которые должны быть установлены по умолчанию (проект, версия, распределение затрат). Теперь каждый может использовать этот список по умолчанию и добавлять дополнительные теги, если это необходимо для их ресурсов. Но нет никакой гарантии, что все используют эту карту для маркировки по умолчанию. Я не знаю, как мне этого добиться, но, может быть, у кого-то есть хорошая идея сделать это ...

Ответы [ 2 ]

2 голосов
/ 11 октября 2019

Чтобы решить эту проблему, мы создали модуль tags, который каждый проект должен использовать при определении ресурсов. Модуль имеет параметры для product_name, service_name, а также параметр extra_tags. Затем он объединяет эти значения с внутренней картой и экспортирует окончательную карту, чтобы ее можно было использовать в рамках всего проекта.

В рамках нашей командной культуры каждая команда понимает, что тегирование важно для поддержания контроля и ответственности за ресурсыи стоит в AWS. Отсутствие тегов на ваших ресурсах является причиной для получения пиара с пометкой declined или needs work.

Мы используем AWS Config для отслеживания ресурсов, не имеющих тегов, и уведомляем нас, однако ваша лучшая линия защиты для сохранения тегов ресурсов - это культура и отзывы по запросу.

1 голос
/ 15 октября 2019

Вариант 1. В Terraform Enterprise вы можете использовать Sentinel для обеспечения соблюдения политик того, как должен выглядеть ресурс. См. Пример Hashicorp для принудительных тегов: https://github.com/hashicorp/terraform-guides/blob/master/governance/second-generation/aws/enforce-mandatory-tags.sentinel

Вариант 2. Если у вас нет Terraform Enterprise, создайте модули с параметрами, которые заполняют теги в модуле, и не рекомендуется использовать «простые» awsРесурсы.

Вариант 3: сделать проверку тегов частью вашего автоматизированного набора тестов (например, с помощью terratest) и позволить тестам не проходить, если у них нет соответствующих тегов.

...