使用另一个帐户的角色调用 Terraform 时,"calling entity" 是哪个?
Which is the "calling entity" when invoking Terraform with a role from another account?
我正在使用跨账户授权通过 Terraform 创建 AWS 资源。也就是说:
- 我有一个帐户“A”,其中有一个用户。
- 我还有一个帐户“B”,其中我的角色被授权在帐户“B”中部署资源。
- 我在“A”中的用户帐户被授权承担帐户“B”中的角色。
- 当我 运行 Terraform(使用“aws”提供商)时,我在 aws 凭据文件中有用户“A”的凭据。
- 我的 Terraform 配置具有这样的提供程序块:
provider "aws" {
assume_role {
role_arn = "<ARN of roleB>"
}
}
aws_caller_identity
数据源的文档说它公开了有关“调用实体”的详细信息,但我不清楚在我的情况下这应该是哪个“实体”:是 userA
或 roleB
?
虽然我一直找不到任何官方文档来指定它指的是哪个实体,但通过实验我确定在这种情况下“调用实体”是角色 session 在帐户“B”中(请注意,虽然这与角色相关,但实际上并不是角色本身)。
这个数据源公开的ARN看起来像
"arn:aws:sts::<account B ID>:assumed-role/<name of role B>/<session name>"
session name
可以在 assume_role
块中显式指定,但如果省略则它是一个半随机的 19 位数字(我不确定这是否数字由 Terraform 或 AWS 生成)。
我正在使用跨账户授权通过 Terraform 创建 AWS 资源。也就是说:
- 我有一个帐户“A”,其中有一个用户。
- 我还有一个帐户“B”,其中我的角色被授权在帐户“B”中部署资源。
- 我在“A”中的用户帐户被授权承担帐户“B”中的角色。
- 当我 运行 Terraform(使用“aws”提供商)时,我在 aws 凭据文件中有用户“A”的凭据。
- 我的 Terraform 配置具有这样的提供程序块:
provider "aws" {
assume_role {
role_arn = "<ARN of roleB>"
}
}
aws_caller_identity
数据源的文档说它公开了有关“调用实体”的详细信息,但我不清楚在我的情况下这应该是哪个“实体”:是 userA
或 roleB
?
虽然我一直找不到任何官方文档来指定它指的是哪个实体,但通过实验我确定在这种情况下“调用实体”是角色 session 在帐户“B”中(请注意,虽然这与角色相关,但实际上并不是角色本身)。
这个数据源公开的ARN看起来像
"arn:aws:sts::<account B ID>:assumed-role/<name of role B>/<session name>"
session name
可以在 assume_role
块中显式指定,但如果省略则它是一个半随机的 19 位数字(我不确定这是否数字由 Terraform 或 AWS 生成)。