"""
Title: Cloud Security Policy Enforcer
Author: Gerard King
Date: 2023-09-02
Use Case: Enforce security policies for cloud resources
Target Audience: Security teams, Cloud administrators
Website: www.gerardking.dev
Description:
This script enforces security policies for cloud resources on AWS using Boto3.
Designed for security teams and cloud administrators to ensure compliance with security best practices.
Usage:
1. Install 'boto3' library using 'pip install boto3'.
2. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables.
3. Customize 'resource_id', 'policy_rules', and 'enforcement_action'.
4. Run the script using 'python security_policy_enforcer.py'.
"""
import boto3
import os
def enforce_security_policy():
aws_access_key = os.getenv('AWS_ACCESS_KEY_ID')
aws_secret_key = os.getenv('AWS_SECRET_ACCESS_KEY')
if not aws_access_key or not aws_secret_key:
raise ValueError("AWS credentials not configured. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables.")
config = boto3.client('config', region_name='us-east-1', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key)
resource_id = 'i-1234567890' # Replace with actual resource ID
policy_rules = ['security-group-public-egress', 'instance-no-public-ip']
enforcement_action = 'DELETE'
response = config.put_evaluations(
Evaluations=[{
'ComplianceResourceType': 'AWS::EC2::Instance',
'ComplianceResourceId': resource_id,
'ComplianceType': 'NON_COMPLIANT',
'Annotation': f"Non-compliant due to policy violations: {', '.join(policy_rules)}",
'OrderingTimestamp': '2023-09-02T00:00:00Z'
}]
)
print(f"Enforced security policy on {resource_id}. Action: {enforcement_action}")
if __name__ == "__main__":
try:
enforce_security_policy()
except Exception as e:
print("An error occurred:", str(e))