# AWS Glacier: Delete vault Follow these steps to remove all archives from an AWS vault. After this is finished, you will be able to delete the vault itself through the browser console. ## Step 1 / Retrive inventory This will create a job that collects required information about the vault. ``` $ aws glacier initiate-job --job-parameters '{"Type": "inventory-retrieval"}' --account-id YOUR_ACCOUNT_ID --region YOUR_REGION --vault-name YOUR_VAULT_NAME ``` This can take hours or even days, depending on the size of the vault. Use the following command to check if it is ready: ``` aws glacier list-jobs --account-id YOUR_ACCOUNT_ID --region YOUR_REGION --vault-name YOUR_VAULT_NAME ``` Copy the `JobId` (including the quotes) for the next step. ## Step 2 / Get the ArchivesIds The following command will result in a file listing all archive IDs, required for `step 3`. ``` $ aws glacier get-job-output --account-id YOUR_ACCOUNT_ID --region YOUR_REGION --vault-name YOUR_VAULT_NAME --job-id YOUR_JOB_ID ./output.json ``` ## Step 3 / Delete archives Set the following parameters through environment variables: ``` export AWS_ACCOUNT_ID=YOUR_ACCOUNT_ID export AWS_REGION=YOUR_REGION export AWS_VAULT_NAME=cvast-YOUR_VAULT_NAME ``` Create a file with the following content and run it: ``` #!/bin/bash file='./output.json' if [[ -z ${AWS_ACCOUNT_ID} ]] || [[ -z ${AWS_ACCOUNT_ID} ]] || [[ -z ${AWS_ACCOUNT_ID} ]]; then echo "Please set the following environment variables: " echo "AWS_ACCOUNT_ID" echo "AWS_REGION" echo "AWS_VAULT_NAME" exit 1 fi archive_ids=$(jq .ArchiveList[].ArchiveId < $file) for archive_id in ${archive_ids}; do echo "Deleting Archive: ${archive_id}" aws glacier delete-archive --archive-id=${archive_id} --vault-name ${AWS_VAULT_NAME} --account-id ${AWS_ACCOUNT_ID} --region ${AWS_REGION} done echo "Finished deleting archives" ``` # Acknowledgement This tutorial is based on this one: https://gist.github.com/Remiii/507f500b5c4e801e4ddc