【问题标题】:IAM Cloudformation template best practise?IAM Cloudformation 模板最佳实践?
【发布时间】:2019-02-10 13:32:21
【问题描述】:

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

谢天谢地

【问题讨论】:

    标签: amazon-cloudformation amazon-iam


    【解决方案1】:

    我们最近使用 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 策略保留一个单独的堆栈,这些策略在其他角色中常用和引用,以避免重复的内联策略。

    【讨论】:

    • 谢谢,很有见地,所以我至少会为这些政策开发一个堆栈,如果我有更多问题可以直接与您联系吗?
    猜你喜欢
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 2016-11-02
    • 2017-06-18
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    相关资源
    最近更新 更多