【发布时间】:2019-02-10 13:32:21
【问题描述】:
我想知道将所有 IAM 角色和策略放入嵌套堆栈中的一个模板中是否更有意义,以使它们更易于维护,或者如果好的做法是说无论出于何种原因这是相当有害的,并将策略放在创建资源的特定模板。哪种方式更好。为了良好的秩序,我会使用 ONE 模板,因为这个想法似乎没问题。我将不胜感激在这件事上的分享经验。
谢天谢地
【问题讨论】:
标签: amazon-cloudformation amazon-iam
我想知道将所有 IAM 角色和策略放入嵌套堆栈中的一个模板中是否更有意义,以使它们更易于维护,或者如果好的做法是说无论出于何种原因这是相当有害的,并将策略放在创建资源的特定模板。哪种方式更好。为了良好的秩序,我会使用 ONE 模板,因为这个想法似乎没问题。我将不胜感激在这件事上的分享经验。
谢天谢地
【问题讨论】:
标签: amazon-cloudformation amazon-iam
我们最近使用 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 堆栈 - 它依赖于 Generic VPC 堆栈并从中导入导出的值,例如 VPCId。
Service Specific Stack - 它依赖于 Generic VPC 堆栈和 ELB 堆栈 并导入各种导出的值。每个微服务都有一个堆栈,它包含使服务进入就绪状态所需的一切。包括s3 buckets、SQS、InstanceRole等。
这是我们管理 IAM 角色和政策的地方。更易于管理和审核。
但是,事后看来,我会为 IAM 策略保留一个单独的堆栈,这些策略在其他角色中常用和引用,以避免重复的内联策略。
【讨论】: