同じ名前の新しいシークレットを作成するために、Secrets Manager のシークレットを直ちに削除する方法を教えてください。

所要時間1分
0

AWS Secrets Manager のシークレットを削除しました。その後、同じ名前を使用してシークレットを再作成しようとしました。しかし、次のようなエラーが表示されました。 「You can't create this secret because a secret with this name is already scheduled for deletion」 (この名前のシークレットは既に削除が予定されているため、このシークレットを作成できません)

簡単な説明

シークレットを削除しても、Secrets Manager はシークレットを直ちに削除しません。Secrets Manager は、復旧期間が 7 日以上経過した後、シークレットを削除するようにスケジュールします。つまり、リカバリウィンドウが終了するまで、AWS マネジメントコンソールで同じ名前を使用してシークレットを再作成することはできません。AWS Command Line Interface (AWS CLI) を使用して、復旧期間を設けずにシークレットを完全に削除できます。詳細については、「シークレットの削除」を参照してください。

解決方法

ForceDeleteWithoutRecovery パラメータを指定して DeleteSecret API コールを実行し、シークレットを完全に削除します。

注意:

AWS Secrets Manager コンソールを使用して、削除された Secrets Manager のシークレット ID を取得する

注: 削除されたシークレットの ID がわかっている場合は、このステップを省略できます。

  1. Secrets Manager コンソールを開きます。
  2. ナビゲーションペインで、[Secrets] (シークレット)を選択します。
  3. [settings] (設定)アイコンを選択し、[Preferences] (詳細設定) で [Show secrets scheduled for deletion] (削除予定のシークレットを表示) を選択します。
  4. [Visible columns] (表示する列) で、[Deleted on] (削除日) 切り替えスイッチをオンにし、[Save] (保存) を選択します。
  5. [Secrets] (シークレット) ペインで、[Secret name] (シークレット名) フィールドと [Deleted on] (削除日) フィールドにメモして、削除されたシークレット ID を検索します。
  6. [Secret name] (シークレット名) で、シークレットを選択します。
  7. [Secrets detail] (シークレットの詳細) で、[Secret name] (シークレット名) をコピーします。

AWS CLI を使用してシークレットを完全に削除する

この例では、your-secret-name を Secrets Manager のシークレット ID または ARN に置き換え、your-regionAWS リージョンに置き換えます。

aws secretsmanager delete-secret --secret-id your-secret-name --force-delete-without-recovery --region your-region

DescribeSecret API コールを実行して、シークレットが完全に削除されていることを確認します。

注意: 削除は非同期プロセスです。少し時間がかかることがあります。

aws secretsmanager describe-secret --secret-id your-secret-name --region your-region

以下のようなエラーが表示されます。

An error occurred (ResourceNotFoundException) when calling the DescribeSecret operation: Secrets Manager can't find the specified secret.

このエラーは、シークレットが正常に削除されたことを意味します。


関連情報

delete-secret