Я проектирую два новых модуля IA C (terraform). Каждый создает ключ KMS для защиты секрета. Другой создает службу ECS, и все политики, необходимые для ведения бизнеса.
Я очень привык создавать ресурсы в модулях, а затем экспортировать ARN определенных ресурсов и импортировать их в сервисные модули, которые затем добавьте эти ARN в политики для роли службы. Таким образом, позволяя сервису получить доступ к ресурсу. В этом шаблоне ресурс не зависит от службы, ресурс уже существует и является инфраструктурным до того, как служба будет использоваться для его использования.
Но всякий раз, когда я сталкиваюсь с типами ресурсов, для которых требуется ресурс политика - если модуль ресурса должен питаться всеми принципалами, которые он позволяет, у меня есть две вещи, каждая из которых зависит друг от друга, и я не уверен, как поступить.
Я думаю, что ответ должен делать с ролями. Если я сделаю роль в модуле KMS и разрешу роль в политике ключей KMS, я могу экспортировать роль ARN или даже экспортировать политику IAM для принятия роли. Затем я могу импортировать политику предположить-kms-access-role в модули, которым нужно его использовать, которые затем могут добавить эту политику ARN к своим служебным ролям.
За исключением того факта, что ролям IAM также требуется ресурс политики, так что я вернулся к тому, с чего начал с зависимостей в обоих направлениях. Я думаю об этом неправильно, или есть какой-то способ обойти это, я не вижу?