#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