微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Terraform从账户A获取AWS数据并在账户B中使用

如何解决Terraform从账户A获取AWS数据并在账户B中使用

我正在使用两组terraform脚本,它们在AWS上在账户A上创建应用程序基础架构,在账户B中创建代码管道,在账户B中创建代码管道的TF脚本将需要账户中的一些配置参数(ALB,ECS..etc)一个已经设置好的,如果所有内容都托管在同一个AWS账户上,我就熟悉如何获取数据,是否可以使用terraform从另一个账户检索一个账户的数据?是否有针对这种情况的文档?

解决方法

是的,有可能。由于问题相当笼统,我只能提供笼统的信息。

通常,对于跨帐户访问,使用跨帐户IAM角色。这是一个好习惯,不是必需的。有关角色的AWS文档信息:

基于这些,您必须在Account A中设置具有信任关系的可担当角色,以允许帐户B担任该角色。在帐户B中,用于Terraform的IAM用户需要具有IAM权限才能承担角色。

具有角色设置后,您将在Terraform中使用{strong> assume_role 的aws提供程序,例如来自docs

provider "aws" {

  alias  = "assumed_role_provider"

  assume_role {
    role_arn     = "arn:aws:iam::ACCOUNT_ID:role/ROLE_NAME"
    session_name = "SESSION_NAME"
    external_id  = "EXTERNAL_ID"
  }
}

然后要使用提供程序,可以将其别名用于资源或数据源,例如来自docs

resource "aws_instance" "foo" {
  provider = aws.assumed_role_provider

  # ...
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。