переопределить удаленный ресурс aws_secretsmanager_secret с помощью terraform

#terraform #terraform-provider-aws

#terraform #terraform-provider-aws

Вопрос:

У меня есть некоторый секрет, который создается с использованием terraform, из-за какой-то ошибки, которую я прокомментировал и применил tf, поэтому исходный код помечен для удаления, но теперь, если я включу его и применю, он говорит, что ресурс помечен для удаления.

 resource "aws_secretsmanager_secret" "rotation-example" {
  name                = "mysecret"
description       ="sccretatexample"
   recovery_windows_in_days = 7
}
  

Я не могу изменить имя и создать другой ресурс, а также у меня нет доступа к консоли aws / cli. пожалуйста, подскажите мне, как создать заново или можно использовать старый, переопределив

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

1. Привет, если вы прокомментировали ресурс и применили tf, он не будет помечать ресурс для удаления, но уничтожит ресурс. Или вы просто выполняете apply, но не дали «да» для выполнения? Но в более позднем случае, если вы раскомментировали / включили ресурс и выполнили его, он не покажет, что ресурс помечен для удаления. Один из случаев, когда кто-то что-то изменил в ресурсе вручную с консоли, и именно поэтому теперь Terraform хочет удалить и воссоздать его. Пожалуйста, поправьте меня, если в моем понимании что-то не так.

2. Я прокомментировал resouce в terraform и применил, похоже, что секретные менеджеры могут быть удалены, только если дни сохранения установлены на ноль во время создания, но в моем случае я установил значение 7 дней…

Ответ №1:

На данный момент нет доступных функций для извлечения удаленного секрета с помощью terraform. Проверьте эту открытую проблему — https://github.com/terraform-providers/terraform-provider-aws/issues/10259

Но вы можете сделать это с помощью некоторой ручной работы, но либо вам потребуется помощь администратора AWS, либо ключ доступа AWS должен иметь разрешение ниже.

 To restore a secret and the metadata in the console, you must have these permissions:

secretsmanager:ListSecrets – Use to navigate to the secret you want to restore.

secretsmanager:RestoreSecret – Use to delete any versions still associated with the secret. 
  

если ключ доступа AWS имеет вышеуказанное разрешение, используйте приведенный ниже cmd для восстановления пароля.

 aws secretsmanager restore-secret --secret-id mysecret 
  

следуйте этому документу AWS, чтобы восстановить секрет.
https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_delete-restore-secret.html

после восстановления secret вы можете использовать «импорт terraform», как показано ниже, чтобы обновить файл состояния с существующими секретными данными.

 terraform import aws_secretsmanager_secret.rotation-example mysecret
  

Кроме того, если вы хотите часто создавать и удалять secret, используйте ниже.

 recovery_windows_in_days = 0