How to avoid duplicate IAM roles when deploying stackset to multiple regions

0

Scenario:

I'm deploying a cloudformation template to automate action in response to a Cloudwatch event rule. The template creates:

  1. IAM Role - Lambda Execution
  2. Lambda Function - Remediation
  3. Events Rule - Trigger Lambda
  4. Lambda Permission - Events can Invoke Lambda

Problem:

When deploying this solution to multiple regions via stackset it results in duplicate IAM roles being created. This seems unnecessary.

Question:

How, if possible, might I go about creating the IAM role once per account and having each region's lambda use that single role within the same stackset?

AWS
Jon
preguntada hace 4 años1248 visualizaciones
1 Respuesta
0
Respuesta aceptada

My approach has been: tie the role to the "thing" that consumes/needs it, centralizing might seem good but can be dangerous because of a larger impact.

If you're using StackSets, why not set one region as your "main" one and create a condition on the IAM role that only creates it within that region. This way you can still use a single StackSet but only have one IAM role.

Otherwise, you could setup roles within another stack, turn on termination protection and export it's ARN. Something like `FunctionalityX-Lambda-RoleArn".

Personally I try avoid custom resources where they aren't required, especially if you see potentially a lot of updates/changes.

AWS
EXPERTO
Raphael
respondido hace 4 años
profile picture
EXPERTO
revisado hace un mes

No has iniciado sesión. Iniciar sesión para publicar una respuesta.

Una buena respuesta responde claramente a la pregunta, proporciona comentarios constructivos y fomenta el crecimiento profesional en la persona que hace la pregunta.

Pautas para responder preguntas