Я относительно новичок в интерфейсе AWS и очень новичок в LocalStack. Недавно я создал новый секрет в своем локальном экземпляре LocalStack, размещенном в Docker, через интерфейс командной строки (awslocal secretsmanager create-secret ....
).
(awslocal
является частью проекта localstack/awscli-local, описанного здесь).
После этого я понял, что мне нужно удалить этот секрет. Вот я и побежал awslocal secretsmanager delete-secret <secret_id>
. Я не осознавал, что это просто планирует асинхронное удаление секрета, а не мгновенно удаляет его из диспетчера секретов.
Небольшое исследование показало мне, что я могу исправить это, повторно запустив delete-secret
с флагом --force-delete-without recovery doesn't work
. Этот пост StackOverflow заверил меня, что это сработает, даже если мой секрет уже запланирован на удаление.
Однако это не сработало. Вместо этого я получил следующую ошибку:
An error occurred (InvalidRequestException) when calling the DeleteSecret operation: 400 Bad Request: {"__type": "InvalidRequestException", "message": "An error occurred (InvalidRequestException) when calling the DeleteSecret operation: You tried to perform the operation on a secret that's currently marked deleted."}
Моя версия awslocal
(в Windows 11) — aws-cli/2.2.47 Python/3.8.8 Windows/10 exe/ prompt/off
Почему это не работает?
Пожалуйста, ознакомьтесь с документацией AWS secretsmanager . Вам нужно будет восстановить секрет, прежде чем вы сможете изменить его снова.
Вот простой код PowerShell, который показывает весь цикл:
$secretName = "test"
# Create the secret
$secretArn = awslocal secretsmanager create-secret --name $secretName --query ARN --output text
Write-Host "Secret created with ARN: $secretArn"
# Delete the secret without the force-delete-without-recovery flag
Write-Host "Secret deleted without the force-delete-without-recovery flag"
awslocal secretsmanager delete-secret --secret-id $secretArn
# List the secrets
Write-Host "Secrets listed"
awslocal secretsmanager list-secrets
# Restore the secret
Write-Host "Secret restored:"
awslocal secretsmanager restore-secret --secret-id $secretArn
# delete the secret with the force-delete-without-recovery flag
Write-Host "Secret deleted with the force-delete-without-recovery flag"
awslocal secretsmanager delete-secret --secret-id $secretArn --force-delete-without-recovery
# List the secrets to confirm the deletion
awslocal secretsmanager list-secrets