【问题标题】:Using two different roles to build resources in one terraform code使用两种不同的角色在一个 terraform 代码中构建资源
【发布时间】:2019-03-02 00:23:36
【问题描述】:

是否可以在两个不同的帐户中创建两个安全组,并在一个代码文件中使用 Terraform 在另一个帐户的出口规则中引用其中一个?

例如,如果我们有两个 VPC A 和 B,我想在每个 VPC 中创建两个安全组,并在 B 的安全组的出口引用安全组 A。

我面临的主要问题是我有两个不同的部署者角色,我不确定如何在单个 terraform TF 文件中使用。

PS:VPC 是对等的。

提前致谢。

【问题讨论】:

    标签: amazon-web-services terraform aws-security-group aws-vpc


    【解决方案1】:

    是的,这可以使用多个提供者定义和alias 属性并在定义资源时引用它们:

    provider "aws" {
      region = "eu-west-1"
    }
    
    provider "aws" {
      region  = "us-east-1"
      profile = "other-account"
      alias = "other"
    }
    
    resource "aws_vpc" "this" {
      provider = "aws.other"
      // ..
    }
    

    【讨论】:

    • 虽然方法大致相同,但如果此答案显示如何使用多个 AWS 帐户 而不是区域会更好。使用个人资料或担任角色(同时显示两者都很好)与区域选择有点不同。
    • 啊,谢谢你的提示,让我想起了很多我忘记调整的解决方案。
    • 非常确定您仍然需要非默认 AWS 提供商上的 alias 参数。而且提供者配置文档的链接也很酷。
    • 这种方法非常方便让 aws_caller_identity 解析为原始 IAM 用户而不是假定角色,以便我可以使用实际创建资源的用户标记资源。
    猜你喜欢
    • 2021-02-19
    • 2021-06-14
    • 2021-11-04
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 2020-12-17
    相关资源
    最近更新 更多