aws-cloudformation - IAM Cloudformation 模板最佳实践?

标签 aws-cloudformation amazon-iam

我想知道将所有 IAM 角色和策略放入嵌套堆栈中的一个模板中以使它们更易于维护是否更有意义,或者良好的做法是否表明无论出于何种原因这都是相当有害的并将策略放入创建资源的特定模板。哪种方式更好。为了良好的秩序,我会使用一个模板,因为这个想法似乎不错。我将不胜感激在这件事上分享的经验。

感谢A

最佳答案

我们最近使用 cloudformation 模板化了整个 AWS 基础设施。而且,我会让 IAM 角色和策略更接近应用程序堆栈,而不是放在一个模板中。我会尽力解释我的理由。

我们为每个 TeamEnv 都有一个单独的 AWS 账户。

What is a TeamEnv?

如果我们有 3 支球队,例如A、B 和 C。 以及 3 个环境,例如开发、暂存和生产。

然后我们有 9 个 TeamEnv:A-Dev、A-Staging、A-Prod 等等,供其他团队使用。因此,我们总共有 9 个 AWS 账户。这样做是为了确定资源的责任和透明度。

而且,我们是这样做的。我们将堆栈分为以下几类:

  • 常见 AWS Cloudformation 堆栈

  • TeamEnv 特定的 AWS Cloudformation 堆栈

常见 AWS Cloudformation 堆栈: 这些是所有团队及其环境通用的堆栈:

  • IAM 子用户帐户堆栈 - 此堆栈创建具有管理员访问权限的 IAM 子帐户。

  • 通用 VPC 堆栈 - 此堆栈根据公司标准创建 VPC 及其组件。

  • VPC 对等堆栈 - 此堆栈用于对等 VPC。

  • VPC 对等角色堆栈 - 此堆栈创建对等所需的 VPC 角色。

团队特定堆栈:

  • ELB 堆栈 - 它依赖于通用 VPC 堆栈并从中导入导出的值,例如 VPCId

  • 服务特定堆栈 - 它依赖于通用 VPC 堆栈和ELB 堆栈,并导入各种导出值。我们为每个微服务都有一个堆栈,它包含使服务进入就绪状态所需的一切。包括s3存储桶、SQS、InstanceRole等。

这是我们管理 IAM 角色和策略的地方。管理和审计更容易。

但是,事后看来,我会为 IAM 策略保留一个单独的堆栈,这些策略在其他角色中常用和引用,以避免重复的内联策略。

关于aws-cloudformation - IAM Cloudformation 模板最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52184536/

相关文章:

java - 云形成 : What is a RegEx to match S3 bucket names that do not have periods (dots)

aws-cloudformation - 在云形成模板的数据管道对象列表中添加 EMR 配置时数据管道验证错误

amazon-web-services - AWS IAM 角色策略资源限制

amazon-web-services - 限制AWS中的实例类型和请求区域

amazon-web-services - AWS ECS Fargate 未创建任务 AmazonECSTaskExecutionRole 错误

amazon-web-services - 在AWS云形成模板中如何根据环境将策略附加到角色

json - 无法验证 CloudFormation 中的以下目标配置

terraform - 如何将 CloudFormation 模板转换为 terraform 代码

amazon-web-services - 在 Cloudformation 中创建策略,授予从单独的 AWS 账户访问 s3 存储桶的权限

amazon-iam - AWS CDK - 如何将访问 key secret 和 secret key ID 作为环境参数传递给容器