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
已提问 4 年前1242 查看次数
1 回答
0
已接受的回答

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
专家
Raphael
已回答 4 年前
profile picture
专家
已审核 1 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则