如何从 JSON 文件在 Terraform 中声明 AWS IAM 承担角色策略?

Vzz*_*arr 3 amazon-web-services amazon-iam terraform terraform-provider-aws

我想使用 Terraform 为 AWS IAM 角色配置其承担角色策略。我已经将策略声明为 JSON 文件。

从文档中我了解到模块aws_iam_role是提供 IAM 角色的,但正如我从注释中读到的:

take_role_policy 与标准 IAM 策略非常相似但略有不同,并且不能使用 aws_iam_policy 资源。但是,它可以使用 aws_iam_policy_document 数据源。请参阅上面的示例了解其工作原理。

这意味着我根据aws_iam_policy_document语法严格遵守 IAM 策略声明(这本身要求我手动转换为另一种格式),但我不知道如何从 JSON 文件导入策略来创建 IAM 角色需要 - 背后的原因是该策略非常广泛,我希望它位于单独的 JSON 文件中。

任何人都可以建议如何使用 JSON 文件中声明的策略来声明 IAM 角色吗?

Vzz*_*arr 5

aws_iam_role文档页面中没有示例显示如何从 JSON 文件加载策略,但这对我有用:

resource "aws_iam_role" "my_role" {
  name               = "my_role"
  assume_role_policy = file("${path.module}/my/path/my_policy.json")
}
Run Code Online (Sandbox Code Playgroud)