Sign in
agent:

Modify AWS RDS Instance to be Private

There was a problem that the LLM was not able to address. Please rephrase your prompt and try again.

This task modifies AWS RDS instances to be private and is aimed at enhancing the security of your database instances. Some RDS instances may be configured to be publicly accessible over the internet, exposing them to potential security vulnerabilities. Making an AWS RDS instance private means adjusting its accessibility settings so that it is no longer reachable from the open internet. This modification helps to shield your data from unauthorized access, providing an additional layer of security to your databases. It's a crucial measure for organizations that handle sensitive information, ensuring that their data storage complies with best security practices and regulatory standards.

import boto3 from botocore.exceptions import BotoCoreError, ClientError def modify_rds_to_private(db_instance_info_list): try: for db_info in db_instance_info_list: region = db_info['region'] identifier = db_info['instance'] client = boto3.client('rds', region_name=region) try: # Retrieve the DB instance information instance_info = client.describe_db_instances(DBInstanceIdentifier=identifier) instance = instance_info['DBInstances'][0] instance_status = instance['DBInstanceStatus'] publicly_accessible = instance['PubliclyAccessible'] # Check if the instance is already private if not publicly_accessible: print(f"Instance {identifier} in region {region} is already private. Skipping modification.") continue # Check if the instance is in the 'available' state if instance_status != 'available': print(f"Instance {identifier} in region {region} is not in 'available' state. Currently in '{instance_status}' state. Skipping modification.") continue # Skip to the next iteration for other instances # If instance is available and public, proceed with modification client.modify_db_instance( DBInstanceIdentifier=identifier, PubliclyAccessible=False ) print(f"Modified {identifier} in region {region} to be private.") except ClientError as e: print(f"Client error with instance {identifier} in region {region}: {e}") except BotoCoreError as e: print(f"BotoCoreError with instance {identifier} in region {region}: {e}") except Exception as e: print(f"Unexpected error with instance {identifier} in region {region}: {e}") except Exception as e: print(f"Unexpected error: {e}") # Example input list of dictionaries. Replace this with your actual data. # db_instance_info_list = [{'region': 'us-east-1', 'instance': 'database-1'},{'region': 'us-west-1', 'instance': 'database-1'}] # Example data # public_instances passed down from parent task db_instance_info_list = public_instances if db_instance_info_list: modify_rds_to_private(db_instance_info_list) else: print("No RDS Instances provided for modification.")
copied