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 がわかっている場合は、このステップを省略できます。
- Secrets Manager コンソールを開きます。
- ナビゲーションペインで、[Secrets] (シークレット)を選択します。
- [settings] (設定)アイコンを選択し、[Preferences] (詳細設定) で [Show secrets scheduled for deletion] (削除予定のシークレットを表示) を選択します。
- [Visible columns] (表示する列) で、[Deleted on] (削除日) 切り替えスイッチをオンにし、[Save] (保存) を選択します。
- [Secrets] (シークレット) ペインで、[Secret name] (シークレット名) フィールドと [Deleted on] (削除日) フィールドにメモして、削除されたシークレット ID を検索します。
- [Secret name] (シークレット名) で、シークレットを選択します。
- [Secrets detail] (シークレットの詳細) で、[Secret name] (シークレット名) をコピーします。
AWS CLI を使用してシークレットを完全に削除する
この例では、your-secret-name を Secrets Manager のシークレット ID または ARN に置き換え、your-region を AWS リージョンに置き換えます。
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