Terraform-роль AWS IAM прикрепляет управляемую политику к роли, только если она еще не подключена

#amazon-web-services #terraform #amazon-iam #terraform-provider-aws #terraform0.12

#amazon-web-services #terraform #amazon-iam #terraform-provider-aws #terraform0.12

Вопрос:

Я прикрепляю несколько управляемых политик (существующих) к роли IAM (существующей). Я прикрепляю политики к роли с помощью aws_iam_role_policy_attachment.

 resource "aws_iam_role_policy_attachment" "role_logscreate" {
  role       = data.aws_iam_role.qrm_role_ASM_access.name
  policy_arn = "arn:aws:iam::${local.account_id}:policy/pB-CloudWatchLogsCreate"   
}
  

Я хочу добавить «условие защиты», которое привязывает политику, только если она еще не привязана к роли.
Возможно ли это в terraform.12?

Обновление @marcin: мы используем конвейер Teamcity для развертывания ресурсов terraform в 1 клик. большую часть времени мы удаляем «все ресурсы», и в этот раз мы также удаляем эти политики из роли. но иногда используется подход выбора вишни, и IAM не является его частью. таким образом, существует вероятность того, что в роли IAM все еще есть эти политики, и TC сложно обнаружить эти изменения. итак, я хочу добавить условие защиты в свой код Terraform. «Прикреплять только в том случае, если она еще не подключена к IAMRole». надеюсь, есть полный контекст и ясность, почему я хочу добавить эти условия защиты.

Комментарии:

1. Можете ли вы уточнить, чего вы хотите достичь? Если к вашей роли уже подключена данная политика, terraform не добавит ее во второй раз. Поэтому вам не нужно ничего проверять.

2. … и даже если состояние уже показывает политику как прикрепленную, AWS API выдаст ошибку при этом запросе и не попытается ее выполнить.

3. да, API AWS пропустит ошибку, и мой конвейер Teamcity завершится сбоем. Лучше иметь защитную проверку, а не оставлять ее на случай сбоя.