首页 > 解决方案 > 如何在 Terraform 中分配帐户

问题描述

我想尝试在 terraform 中开发我的 lambda 函数。由于该功能是跨账户成本概览,我如何在 terraform 中假设多个账户?

所以这是我的代码片段main.tf


#ROLE FOR ACCOUNT A COST REPORT
resource "aws_iam_role" "role_costoverview" {
  name                  = "role_costoverview"
  description           = "default cross report role"
  assume_role_policy    = "${file("policy_account_a.json")}"
}


#ROLE FOR ACCOUNT B COST REPORT                      
resource "aws_iam_role" "role_costoverview" {
  name                  = "role_costoverview"
  description           = "assume_role cross report role"
  assume_role_policy    = "${file("policy_account_b.json")}"
}

那么怎么写Terraform识别的代码呢,有两个账号呢?

标签: amazon-web-servicesterraform

解决方案


据我了解您的问题,您有两个不同的 AWS 账户,对吗?我也使用不同的 AWS 账户,每次我都必须为所需账户设置环境变量。所以,我有一个script.sh带有帐户详细信息的小脚本 ( ):

export AWS_REGION="region-where-I-want-to-apply"
export AWS_ACCESS_KEY_ID="XXXXXXXXXXXXXX"
export AWS_SECRET_ACCESS_KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXX"
export TF_VAR_region="${AWS_REGION}"
export TF_VAR_public_key='ssh-rsa AAAAB3NzXXXXXXXXXXXXXXXXXXXXXXXXX XXX-ssh-key'

export TF_VAR_access_key=$AWS_ACCESS_KEY_ID
export TF_VAR_secret_key=$AWS_SECRET_ACCESS_KEY

AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 来自一个账户,对于另一个账户,您可以创建另一个文件。source在切换到另一个帐户之前, 我只需要这个脚本。$source /script/path/script.sh


推荐阅读