DEV Community

Cover image for Delete All AWS Secrets created in Secrets Manager using Python3 + Boto3+Different Approaches

Delete All AWS Secrets created in Secrets Manager using Python3 + Boto3+Different Approaches

AWS Secrets Manager:
1.AWS Secrets Manager intentionally makes deleting a secret difficult.
2.Instead, Secrets Manager immediately makes the secrets inaccessible and scheduled for deletion after a recovery window of a minimum of seven days. Until the recovery window ends, you can recover a secret you previously deleted
3.There is no charge for secrets that you have marked for deletion.
4.You can't delete a primary secret if it is replicated to other Regions. First delete the replicas, then delete the primary secret.

Permissions:
To delete a secret, you must have secretsmanager:ListSecrets and secretsmanager:DeleteSecret permissions.


Approach1 : Deletion of Secrets from AWS Console

Step1: Create a secret: test-secret in AWS Secrets manager
Step2: Steps for deleting a secret through AWS Console

Image description

Step3: Window will prompt asking to select period for Disable secret and schedule deletion. By default 30 days is auto populated, we need choose 7 to 30 days.

Image description

Step4: Changing to 7 days and then click on Schedule deletion

Image description

Image description


Approach2 : Deletion of Secrets from AWS CLI

SNo Purpose Command
1 Delete a secret aws secretsmanager delete-secret --secret-id MyTestSecret --recovery-window-in-days 7
2 If you wanted to restore the deleted secret Secret id-MyTestSecret aws secretsmanager restore-secret --secret-id MyTestSecret
3 To delete a secret that is replicated to other regions, first remove its replicas with remove-regions-from-replication, and then call delete-secret aws secretsmanager remove-regions-from-replication --secret-id MyTestSecret --remove-replica-regions eu-west-3
4 Delete a secret immediately aws secretsmanager delete-secret --secret-id MyTestSecret --force-delete-without-recovery
5 Delete a replica secret aws secretsmanager remove-regions-from-replication --secret-id MyTestSecret --remove-replica-regions eu-west-3

Approach 3: Deletion of All AWS Secrets using AWS Lambda (Python3 +Boto3)

Lambda Permissions:

To delete a secret, you must have secretsmanager:ListSecrets and secretsmanager:DeleteSecret permissions.

import json
import boto3
from botocore.exceptions import ClientError

def lambda_handler(event, context):
    delete_all_secrets('eu-west-1')
    return {
        'statusCode': 200,


     'body': json.dumps('Hello from Lambda!')
    }

def delete_all_secrets(region_name):
    """
    Deletes all secrets from AWS Secrets Manager in the specified region.

    :param region_name: AWS region where the secrets are stored
    """
    client = boto3.client('secretsmanager', region_name=region_name)

    try:
        # List all secrets
        paginator = client.get_paginator('list_secrets')
        for page in paginator.paginate():
            for secret in page['SecretList']:
                secret_name = secret['Name']
                try:
                    # Delete each secret
                    client.delete_secret(
                        SecretId=secret_name,
                        ForceDeleteWithoutRecovery=True  # Set to True to skip recovery window
                    )
                    print(f"Secret '{secret_name}' deleted successfully.")
                except ClientError as e:
                    print(f"Error deleting secret '{secret_name}': {e}")
    except ClientError as e:
        print(f"Error listing secrets: {e}")
Enter fullscreen mode Exit fullscreen mode

Pricing :
1.Per Secret Per Month

  • $0.40 per secret per month.
  • A replica secret is considered a distinct secret and will also be billed at $0.40 per replica per month.
  • For secrets that are stored for less than a month, the price is prorated (based on the number of hours.)

Reference: https://aws.amazon.com/secrets-manager

Conclusion: Deleting AWS Secrets from AWS Secret manager in different approaches.

💬 If you enjoyed reading this blog post and found it informative, please take a moment to share your thoughts by leaving a review and liking it 😀 and follow me in dev.to , linkedin

Top comments (0)

OSZAR »