如何解决Terraform从账户A获取AWS数据并在账户B中使用
我正在使用两组terraform脚本,它们在AWS上在账户A上创建应用程序基础架构,在账户B中创建代码管道,在账户B中创建代码管道的TF脚本将需要账户中的一些配置参数(ALB,ECS..etc)一个已经设置好的,如果所有内容都托管在同一个AWS账户上,我就熟悉如何获取数据,是否可以使用terraform从另一个账户检索一个账户的数据?是否有针对这种情况的文档?
解决方法
是的,有可能。由于问题相当笼统,我只能提供笼统的信息。
通常,对于跨帐户访问,使用跨帐户IAM角色。这是一个好习惯,不是必需的。有关角色的AWS文档信息:
-
Providing Access to an IAM User in Another AWS Account That You Own
-
Tutorial: Delegate Access Across AWS Accounts Using IAM Roles
基于这些,您必须在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 举报,一经查实,本站将立刻删除。