В нашем аккаунте AWS есть пользователи. Сейчас мы пытаемся использовать CI, используя Terraform, для управления старыми и новыми пользователями. Terraform требует полного контроля над сервисом - согласовано, но как я могу заставить его работать с тем, что существует? Проблема: я могу добавить группы, роли, политики для новых пользователей, созданных с помощью terraform, но я не могу добавить группы / политики / редактировать пользователей, которые были ранее созданы в учетной записи AWS.
Я на Terraformверсия 12.
Я попытался использовать ресурс данных и подсчитать, чтобы проверить его существование
#data "aws_iam_user" "upload_iam_user" {
# user_name = "${var.service_name}"
#}
#resource "aws_iam_user" "upload_iam_user" {
# count= "${data.aws_iam_user.upload_iam_user != "null" ? 0 : 1}"
# name = "${var.service_name}"
#}
Эти данные только проверяют, существуют ли они, но не выполняют создание, если онине существует и выдает ошибки, чтобы сказать, что пользователь не существует.
region = "${var.aws_region}"
shared_credentials_file = "~/.aws/credentials"
profile = "aws-users-account
}
resource "aws_iam_user" "upload_iam_user" {
name = "${var.service_name}"
}
resource "aws_iam_access_key" "upload_iam_access_key" {
user = "${aws_iam_user.upload_iam_user.name}"
}
resource "aws_iam_user_login_profile" "upload_iam_password" {
user = "${aws_iam_user.upload_iam_user.name}"
pgp_key = "${var.key}"
}
resource "aws_iam_user_group_membership" "upload_iam_group_add" {
user = "${aws_iam_user.upload_iam_user.name}"
groups = "${var.group_name}"
}
Приведенный выше код работает только для новых пользователей. Какую логику я могу использовать в первую очередь: проверьте, существует ли пользователь ввода, если он существует, затем добавьте список групп, который указан вторым: проверьте, существует ли пользователь входящего потока, если нет, создайте его и добавьте группы
ТИА