Skip to main content

DeleteDBParameterGroup - AWS Rds Threat Event

Event Information​

  • The DeleteDBParameterGroup event in AWS for RDS refers to the action of deleting a parameter group for a database instance in the Amazon Relational Database Service (RDS).
  • A parameter group in RDS is a collection of database engine configuration parameters that can be applied to one or more database instances. It allows you to customize the behavior of your database engine.
  • When the DeleteDBParameterGroup event occurs, it means that the specified parameter group has been successfully deleted and can no longer be used to configure database instances.

Examples​

  • Unauthorized deletion of a critical database parameter group can lead to misconfiguration of the RDS instance, potentially exposing sensitive data or causing service disruptions.
  • Accidental deletion of a database parameter group without proper backup or version control can result in the loss of important configuration settings, affecting the performance and stability of the RDS instance.
  • Malicious deletion of a database parameter group can be used as a part of an attack vector to compromise the security of the RDS instance, allowing unauthorized access or data exfiltration.

Remediation​

Using Console​

  1. Enable automated backups:

    • Login to the AWS Management Console and navigate to the Amazon RDS service.
    • Select the RDS instance that needs to be remediated.
    • Click on the "Modify" button.
    • Scroll down to the "Backup" section and enable automated backups by selecting the desired backup retention period.
    • Click on the "Apply Immediately" button to save the changes.
  2. Enable Multi-AZ deployment:

    • Login to the AWS Management Console and navigate to the Amazon RDS service.
    • Select the RDS instance that needs to be remediated.
    • Click on the "Modify" button.
    • Scroll down to the "Deployment" section and enable Multi-AZ deployment by selecting the "Yes" option.
    • Click on the "Apply Immediately" button to save the changes.
  3. Enable encryption at rest:

    • Login to the AWS Management Console and navigate to the Amazon RDS service.
    • Select the RDS instance that needs to be remediated.
    • Click on the "Modify" button.
    • Scroll down to the "Storage" section and enable encryption at rest by selecting the desired encryption option.
    • Click on the "Apply Immediately" button to save the changes.

Note: These steps may vary slightly depending on the AWS Management Console version and layout. Always refer to the official AWS documentation for the most up-to-date instructions.

Using CLI​

  1. Enable automated backups: To remediate this, you can enable automated backups for your AWS RDS instances using the AWS CLI. The following command can be used:

    aws rds modify-db-instance --db-instance-identifier <instance-identifier> --backup-retention-period <retention-period>

    Replace <instance-identifier> with the identifier of your RDS instance and <retention-period> with the desired number of days to retain backups.

  2. Enable Multi-AZ deployment: To ensure high availability and fault tolerance for your AWS RDS instances, you can enable Multi-AZ deployment. This can be done using the following AWS CLI command:

    aws rds modify-db-instance --db-instance-identifier <instance-identifier> --multi-az

    Replace <instance-identifier> with the identifier of your RDS instance.

  3. Enable encryption at rest: To enhance the security of your AWS RDS instances, you can enable encryption at rest. The following AWS CLI command can be used:

    aws rds modify-db-instance --db-instance-identifier <instance-identifier> --storage-encrypted

    Replace <instance-identifier> with the identifier of your RDS instance.

Note: Ensure that you have the necessary permissions to execute these commands and replace the placeholders with the appropriate values specific to your environment.

Using Python​

To remediate the issues mentioned in the previous response for AWS RDS using Python, you can use the following approaches:

  1. Enable Multi-AZ Deployment:

    • Use the AWS SDK for Python (Boto3) to modify the RDS instance and enable Multi-AZ deployment.
    • Here's an example Python script to enable Multi-AZ deployment for an RDS instance:
    import boto3

    def enable_multi_az(instance_id):
    rds_client = boto3.client('rds')
    response = rds_client.modify_db_instance(
    DBInstanceIdentifier=instance_id,
    MultiAZ=True
    )
    print(response)

    # Usage
    enable_multi_az('your-rds-instance-id')
  2. Enable Automated Backups:

    • Use Boto3 to modify the RDS instance and enable automated backups.
    • Here's an example Python script to enable automated backups for an RDS instance:
    import boto3

    def enable_automated_backups(instance_id):
    rds_client = boto3.client('rds')
    response = rds_client.modify_db_instance(
    DBInstanceIdentifier=instance_id,
    BackupRetentionPeriod=7
    )
    print(response)

    # Usage
    enable_automated_backups('your-rds-instance-id')
  3. Enable Enhanced Monitoring:

    • Use Boto3 to modify the RDS instance and enable enhanced monitoring.
    • Here's an example Python script to enable enhanced monitoring for an RDS instance:
    import boto3

    def enable_enhanced_monitoring(instance_id):
    rds_client = boto3.client('rds')
    response = rds_client.modify_db_instance(
    DBInstanceIdentifier=instance_id,
    MonitoringInterval=60,
    MonitoringRoleArn='arn:aws:iam::123456789012:role/your-monitoring-role'
    )
    print(response)

    # Usage
    enable_enhanced_monitoring('your-rds-instance-id')

Please note that you need to replace 'your-rds-instance-id' with the actual identifier of your RDS instance, and modify other parameters as per your requirements.