Closed3
Secret Manager を強制的に削除する

以前、core/test/sample-rds-cluster
という Secret Manager を作成していたが、削除していてもまだ残っているため、同一名で作成しようとすると怒られる。
※削除予約期間としてデフォルト30日間の設定されており、まだその期間内であったため。
復元可能ではあるものの、terraformで管理しており、stateファイルからは削除してしまっているので、手っ取り早い方法として強制的に削除して、再度 apply する流れで進める。
│ Error: creating Secrets Manager Secret (core/test/sample-rds-cluster): operation error Secrets Manager: CreateSecret, https response error StatusCode: 400, RequestID: 00b4afcd-f47d-4cad-a1ed-4cc923737cf7, InvalidRequestException: You can't create this secret because a secret with this name is already scheduled for deletion.
│
│ with aws_secretsmanager_secret.core_db,
│ on secrets.tf line 1, in resource "aws_secretsmanager_secret" "core_db":
│ 1: resource "aws_secretsmanager_secret" "core_db" {
│
╵

aws cli で実行する際、 --force-delete-without-recovery
を付与して実行する。
$ aws secretsmanager delete-secret --secret-id core/test/sample-rds-cluster --force-delete-without-recovery | jq .

以下のように定義することで、aws-cliによる削除対応不要で、即時削除が可能。
なお、仮にできたとしても本番運用では設定しない方が良いはず。
resource "aws_secretsmanager_secret" "shop_core_db" {
name = local.shop_core_db_secret_id
description = "shop core database secret"
recovery_window_in_days = 0 # この設定を追加
tags = {
Name = "${var.env}-${var.db_types.shop.name}"
Description = var.db_types.shop.description
}
}
このスクラップは2ヶ月前にクローズされました