amazon-web-services - 如何在 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识别的代码呢,有两个账号呢?
解决方案
据我了解您的问题,您有两个不同的 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
推荐阅读
- sql-server - 如何使用 SQL Query 获取系统型号(产品名称如:Proliant DL580 Gen9)?
- odoo - 在 Odoo 中部分付款的汇兑损益
- c - 用于从字符串中打印单词首字母的 C 程序
- javascript - JS - 我如何遍历其他对象数组中的数组
- xml - 无法解组 XML 文件
- c++ - bigraph 与 unordered_map 匹配
- ibm-midrange - 从 AS400 将数据库文件作为 excel 邮件
- jython - Jython ValueError:chr() arg 不在范围内 (256)
- python - 从存储在数据框列中的多个 url 中提取数据
- memory-management - 如何在内核中从一个物理页面复制到另一个物理页面