Как я могу присоединить несколько ранее существующих управляемых ролей AWS к политике? - PullRequest
2 голосов
/ 28 марта 2019

Я хочу связать существующие политики в AWS с ролью, я использую инструмент terraform

Я хочу связать эти политики, этот код с инструментом облачной информации aws:

   AWSCodeCommitFullAccess
   AWSCodeBuildAdminAccess
   AWSCodeDeployFullAccess
   AWSCodePipelineFullAccess
   AWSElasticBeanstalkFullAccess

попробуй с прикрепленным

data "aws_iam_policy" "attach-policy" {
  arn = ["arn:aws:iam::aws:policy/AWSCodeCommitFullAccess", "arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess", "arn:aws:iam::aws:policy/AWSCodeDeployFullAccess", "arn:aws:iam::aws:policy/AWSCodePipelineFullAccess"]
}

resource "aws_iam_role_policy_attachment" "tc-role-policy-attach" {
  role = "${aws_iam_role.toolchain-role.name}"

  policy_arn = "${data.aws_iam_policy.attach-policy.arn}"
}

1 Ответ

1 голос
/ 29 марта 2019

Вы идете в правильном направлении с ресурсом terraform aws_iam_role_policy_attachment , но с некоторой корректировкой.

Управляемые политики AWS ' ARN существуют в системе.Например, если вам нужно присоединить первую управляемую политику к роли IAM,

resource "aws_iam_role_policy_attachment" "test-policy-AWSCodeCommitFullAccess" {
  policy_arn = "arn:aws:iam::aws:policy/AWSCodeCommitFullAccess"
  role       = "${aws_iam_role.toolchain-role.name}"
}

Вы можете добавить другие управляемые политики одну за другой.

Если вы хотите сделать это вместе, вы можетепопробуйте ниже код

variable "managed_policies" {
  default = ["arn:aws:iam::aws:policy/AWSCodeCommitFullAccess",
    "arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess",
    "arn:aws:iam::aws:policy/AWSCodeDeployFullAccess",
    "arn:aws:iam::aws:policy/AWSCodePipelineFullAccess",
  ]
}

resource "aws_iam_role_policy_attachment" "tc-role-policy-attach" {
  count      = "${length(var.managed_policies)}"
  policy_arn = "${element(var.managed_policies, count.index)}"
  role       = "${aws_iam_role.toolchain-role.name}"
}
...