【发布时间】:2019-11-17 20:54:50
【问题描述】:
我不知道如何使用 Terraform for AWS 配置角色策略。
第一件事:
$ terraform version
Terraform v0.12.0
+ provider.aws v2.18.0
现在我需要创建一个服务角色,据我了解,首先我需要使用aws_iam_role 创建角色并使用aws_iam_role_policy_attachment 附加 CodeDeploy 的 AWSCodeDeployRole 策略。
resource "aws_iam_role" "codedeploy_service_role" {
name = "CodeDeployServiceRole"
}
resource "aws_iam_role_policy_attachment" "codedeploy_service_role_policy_attach" {
role = "${aws_iam_role.codedeploy_service_role.name}"
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole"
}
但它不起作用,因为 aws_iam_role 资源没有必填字段“assume_role_policy”。而“assume_role_policy”字段只接受 JSON 格式的策略字段。我不明白为什么在角色初始化期间不设置策略就无法创建角色。
【问题讨论】:
-
AssumeRole 策略文档是强制性的。这是 AWS 设计的。您可以随时修改它。这与附加到角色的策略不同。 AssumeRole 策略用于指示哪个服务或帐户可以担任此角色。
标签: amazon-web-services terraform amazon-iam