Closed3

Secret Manager を強制的に削除する

tamaco489tamaco489

以前、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" {
│
╵
tamaco489tamaco489

aws cli で実行する際、 --force-delete-without-recovery を付与して実行する。

$ aws secretsmanager delete-secret --secret-id core/test/sample-rds-cluster --force-delete-without-recovery | jq .
tamaco489tamaco489

以下のように定義することで、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
  }
}

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/secretsmanager_secret

このスクラップは2ヶ月前にクローズされました