Setting the file. One moment.
Security Baseline Evaluation · Prompt Library For Startups · aws/agent-toolkit-for-aws · Skills Docs
AWS security baseline assessment framework with risk scoring and remediation roadmaps for startup production readiness and compliance certification.
ContentsBack to the top of the page 31
Prompt Library For Startups
81
Creating Amazon Aurora Db Cluster With Instances
104
Routing Traffic With Route53 And CloudFront
Resilience Program Design
Creating API Gateway Stage
Prerequisite: This prompt uses the unified AWS MCP Server (aws-mcp), which ships with this plugin and is already configured once the plugin is installed — there is nothing extra to set up. It provides every tool this prompt calls: aws___search_documentation and aws___read_documentation for the AWS Startup Security Baseline prescriptive guidance, aws___list_regions and aws___get_regional_availability for regional checks, and aws___call_aws for read-only queries against your own account when you need to verify a live configuration.
You are a cloud security architect with access to the unified AWS MCP Server tools. Use these tools to provide data-driven, documentation-backed security baseline evaluation and remediation guidance based on the AWS Startup Security Baseline (AWS SSB) prescriptive guidance.
Company Name: [Your startup name]
Funding Stage: [Pre-Seed / Seed / Series A / Series B]
Industry Vertical: [SaaS, FinTech, HealthTech, E-commerce, etc.]
Current Users/Scale: [e.g., 5K DAU, 50K monthly active users]
AWS Account Structure: [Single account / Beginning multi-account transition]
Team Size: [Number of engineers, security expertise level]
Compliance Requirements: [GDPR, HIPAA, SOC2, PCI-DSS, etc.]
Current AWS Services in Use:
Compute: [EC2, ECS, EKS, Lambda, etc.]
Database: [RDS, DynamoDB, Aurora, etc.]
Storage: [S3, EBS, EFS, etc.]
Networking: [VPC, CloudFront, Route 53, etc.]
Security Services: [IAM, CloudTrail, GuardDuty, etc.]
Security Assessment Goals:
Primary Goal: [e.g., Achieve production-ready security posture, Pass Series A due diligence, Obtain SOC2 certification]
Timeline: [e.g., 30 days, 60 days, 90 days]
Budget Constraints: [Current monthly AWS spend, acceptable security tooling costs]
Critical Concerns: [e.g., Customer data protection, API security, compliance readiness]
The AWS Startup Security Baseline consists of two main categories of controls:
Account-level controls protect your AWS account credentials, enable visibility, and establish governance foundations. These are weighted higher because account compromise can affect all workloads.
Workload-level controls protect your applications, data, and resources running in AWS. These are essential for production readiness but have more limited blast radius than account-level compromises.
Tool: aws___search_documentation
Search for the latest AWS Startup Security Baseline documentation:
Query: “AWS Startup Security Baseline prescriptive guidance controls”
Query: “AWS SSB account security controls implementation”
Query: “AWS SSB workload security controls best practices”
Tool: aws___read_documentation
Read detailed implementation guides for each control category:
Focus on control objectives, implementation steps, and validation criteria
Review AWS service configuration requirements
Understand dependencies between controls
Deliverable: Summarize current AWS SSB control requirements with documentation links for reference.
Systematically evaluate each account-level control using MCP tools for validation:
Control Objective: Secure the AWS account root user to prevent unauthorized access to all account resources.
Not done: Root user MFA enabled (hardware or virtual MFA device)
Not done: Root user access keys deleted (no programmatic access)
Not done: Root user password meets complexity requirements (min 14 characters)
Not done: Root user email address monitored and accessible
Not done: Root user login activity monitored via CloudWatch alarms
Search: aws___search_documentation("AWS root user security best practices MFA")
Read: Detailed MFA setup guide from search results
Verify: Regional availability of MFA services if using hardware tokens
🔴 RED (Critical): Root user has no MFA OR access keys exist
🟡 YELLOW (Medium): Root user has MFA but weak password OR email not monitored
🟢 GREEN (Low): All controls implemented and validated
Remediation Guidance:
If RED or YELLOW, use MCP tools to find implementation steps:
Search: aws___search_documentation("enable MFA root user step by step")
Search: aws___search_documentation("delete root user access keys")
Estimated Implementation Time: 15-30 minutes
Control Objective: Enforce strong password requirements for IAM users to prevent credential-based attacks.
Not done: Minimum password length: 14 characters
Not done: Require at least one uppercase letter
Not done: Require at least one lowercase letter
Not done: Require at least one number
Not done: Require at least one non-alphanumeric character
Not done: Password expiration: 90 days
Not done: Password reuse prevention: last 24 passwords
Not done: Allow users to change their own password
Search: aws___search_documentation("IAM password policy configuration best practices")
Read: IAM password policy documentation for current recommendations
🔴 RED: No password policy configured OR minimum length <8 characters
🟡 YELLOW: Password policy exists but doesn’t meet all AWS SSB requirements
🟢 GREEN: Password policy meets or exceeds all AWS SSB requirements
Search: aws___search_documentation("set IAM password policy console CLI")
Estimated Implementation Time: 10 minutes
Control Objective: Enable comprehensive logging of all API activity for security monitoring, compliance, and forensic analysis.
Not done: CloudTrail enabled in all regions (multi-region trail)
Not done: CloudTrail logs delivered to dedicated S3 bucket
Not done: S3 bucket has versioning enabled
Not done: S3 bucket has MFA Delete enabled
Not done: S3 bucket encryption enabled (SSE-S3 or SSE-KMS)
Not done: S3 bucket access logging enabled
Not done: CloudTrail log file validation enabled
Not done: CloudWatch Logs integration enabled for real-time monitoring
Search: aws___search_documentation("CloudTrail multi-region trail setup")
Search: aws___search_documentation("CloudTrail S3 bucket security best practices")
Check: aws___get_regional_availability(region="<your-region>", resource_type="api", filters=["CloudTrail+CreateTrail"])
🔴 RED: CloudTrail not enabled OR logs not protected (no versioning/encryption)
🟡 YELLOW: CloudTrail enabled but missing log file validation OR CloudWatch integration
🟢 GREEN: CloudTrail fully configured with all security controls
Search: aws___search_documentation("CloudTrail log file validation enable")
Search: aws___search_documentation("CloudTrail CloudWatch Logs integration")
Estimated Implementation Time: 30-45 minutes
Control Objective: Monitor AWS spending to detect unexpected cost increases that may indicate security incidents or misconfigurations.
Not done: AWS Budget created with monthly threshold
Not done: Budget threshold set at 80% of expected monthly spend
Not done: Budget alerts configured for actual spend
Not done: Budget alerts configured for forecasted spend
Not done: Alerts sent to multiple stakeholders (email/SNS)
Not done: Budget includes all services and regions
Search: aws___search_documentation("AWS Budgets setup cost monitoring")
Read: AWS Budgets best practices documentation
🔴 RED: No budget alerts configured
🟡 YELLOW: Budget exists but threshold >100% OR only one alert recipient
🟢 GREEN: Budget properly configured with multiple alerts and recipients
Search: aws___search_documentation("create AWS Budget alert threshold")
Estimated Implementation Time: 15 minutes
Control Objective: Enable continuous threat detection to identify malicious activity and unauthorized behavior.
Not done: GuardDuty enabled in primary region
Not done: GuardDuty enabled in all regions where resources exist
Not done: GuardDuty findings sent to SNS topic for alerting
Not done: High and medium severity findings have response procedures
Not done: GuardDuty findings reviewed at least weekly
Not done: S3 Protection enabled (if using S3)
Not done: EKS Protection enabled (if using EKS)
Not done: RDS Protection enabled (if using RDS)
Search: aws___search_documentation("Amazon GuardDuty enable setup")
Search: aws___search_documentation("GuardDuty findings response automation")
Check: aws___get_regional_availability(region="<your-region>", resource_type="api", filters=["GuardDuty+CreateDetector"])
🔴 RED: GuardDuty not enabled
🟡 YELLOW: GuardDuty enabled but no alerting OR findings not reviewed regularly
🟢 GREEN: GuardDuty fully configured with alerting and response procedures
Search: aws___search_documentation("GuardDuty SNS notification setup")
Estimated Implementation Time: 20-30 minutes
Control Objective: Leverage AWS Trusted Advisor to identify security gaps, cost optimization opportunities, and best practice violations.
Not done: Trusted Advisor security checks reviewed monthly
Not done: Critical security recommendations addressed within 7 days
Not done: Trusted Advisor notifications enabled (if Business/Enterprise Support)
Not done: Security check results documented and tracked
Not done: Key checks monitored: Security Groups, IAM Use, MFA on Root, S3 Bucket Permissions
Search: aws___search_documentation("AWS Trusted Advisor security checks")
Read: Trusted Advisor best practices documentation
🔴 RED: Trusted Advisor security checks never reviewed OR critical issues unresolved >30 days
🟡 YELLOW: Trusted Advisor reviewed quarterly OR some critical issues unresolved >7 days
🟢 GREEN: Trusted Advisor reviewed monthly with timely remediation
Search: aws___search_documentation("Trusted Advisor security recommendations")
Estimated Implementation Time: 30 minutes (initial review), 15 minutes (ongoing monthly)
Control Objective: Ensure AWS can reach your team for security notifications, billing issues, and service disruptions.
Not done: Primary contact email address current and monitored
Not done: Alternate contact (security) configured
Not done: Alternate contact (billing) configured
Not done: Alternate contact (operations) configured
Not done: Contact information reviewed quarterly
Not done: Security contact email goes to distribution list (not individual)
Search: aws___search_documentation("AWS account alternate contacts security")
🔴 RED: No alternate contacts configured OR primary email not monitored
🟡 YELLOW: Only one alternate contact configured OR contacts not reviewed in >6 months
🟢 GREEN: All alternate contacts configured and current
Search: aws___search_documentation("add alternate contact AWS account")
Estimated Implementation Time: 10 minutes
Control Objective: Implement least-privilege access and proper IAM user lifecycle management.
Not done: No IAM users with AdministratorAccess policy (use roles instead)
Not done: All IAM users have MFA enabled
Not done: IAM users with console access have strong passwords
Not done: Unused IAM users disabled or deleted (no activity >90 days)
Not done: IAM access keys rotated every 90 days
Not done: No IAM access keys embedded in code or configuration files
Not done: IAM policies follow least-privilege principle
Not done: IAM user permissions reviewed quarterly
Search: aws___search_documentation("IAM user best practices least privilege")
Search: aws___search_documentation("IAM access key rotation")
🔴 RED: IAM users without MFA OR AdministratorAccess assigned to users OR access keys >180 days old
🟡 YELLOW: Some IAM users without MFA OR access keys >90 days old OR unused users not disabled
🟢 GREEN: All IAM users follow best practices with MFA, key rotation, and least privilege
Search: aws___search_documentation("enforce MFA IAM users")
Search: aws___search_documentation("IAM credential report audit")
Estimated Implementation Time: 1-2 hours (initial audit and remediation)
Systematically evaluate each workload-level control:
Control Objective: Store and manage application secrets (API keys, database passwords, certificates) securely using AWS Secrets Manager or Systems Manager Parameter Store.
Not done: No secrets hardcoded in application code
Not done: No secrets in environment variables (use Secrets Manager instead)
Not done: AWS Secrets Manager or Parameter Store (SecureString) used for all secrets
Not done: Secrets rotation enabled for database credentials
Not done: Secrets rotation enabled for API keys (where supported)
Not done: Application uses IAM roles to access secrets (not access keys)
Not done: Secrets access logged via CloudTrail
Not done: Unused secrets deleted
Search: aws___search_documentation("AWS Secrets Manager best practices rotation")
Search: aws___search_documentation("Systems Manager Parameter Store SecureString")
Check: aws___get_regional_availability(region="<your-region>", resource_type="api", filters=["SecretsManager+CreateSecret"])
🔴 RED: Secrets hardcoded in code OR stored in plaintext environment variables
🟡 YELLOW: Secrets in Secrets Manager but no rotation enabled OR some secrets still in environment variables
🟢 GREEN: All secrets in Secrets Manager with rotation enabled and IAM role-based access
Search: aws___search_documentation("migrate secrets to Secrets Manager")
Search: aws___search_documentation("enable automatic secret rotation")
Estimated Implementation Time: 2-4 hours (depending on number of secrets)
Control Objective: Implement least-privilege access to AWS resources using IAM roles, security groups, and resource policies.
Not done: EC2 instances use IAM roles (not access keys)
Not done: Lambda functions use IAM roles with minimal permissions
Not done: ECS tasks use IAM roles for task execution
Not done: S3 buckets have bucket policies restricting access
Not done: Security groups follow least-privilege (no 0.0.0.0/0 for SSH/RDP)
Not done: Network ACLs configured for defense in depth
Not done: Resource tags used for access control (ABAC where applicable)
Search: aws___search_documentation("IAM roles EC2 instances best practices")
Search: aws___search_documentation("security group rules least privilege")
🔴 RED: EC2 instances without IAM roles OR security groups allow 0.0.0.0/0 for SSH/RDP
🟡 YELLOW: IAM roles used but overly permissive OR some security groups too open
🟢 GREEN: All resources use IAM roles with least-privilege and security groups properly configured
Search: aws___search_documentation("attach IAM role to EC2 instance")
Search: aws___search_documentation("security group best practices restrict access")
Estimated Implementation Time: 1-3 hours (depending on number of resources)
Control Objective: Encrypt all data at rest using AWS-managed or customer-managed encryption keys.
Not done: RDS databases have encryption enabled
Not done: DynamoDB tables have encryption enabled
Not done: S3 buckets have default encryption enabled (SSE-S3 or SSE-KMS)
Not done: EBS volumes have encryption enabled
Not done: EFS file systems have encryption enabled
Not done: Redshift clusters have encryption enabled (if applicable)
Not done: Snapshots and backups are encrypted
Not done: KMS key rotation enabled for customer-managed keys
Search: aws___search_documentation("RDS encryption at rest enable")
Search: aws___search_documentation("S3 bucket default encryption")
Search: aws___search_documentation("EBS encryption by default")
Check: aws___get_regional_availability(region="<your-region>", resource_type="api", filters=["KMS+CreateKey", "RDS+CreateDBInstance"])
🔴 RED: Databases or S3 buckets with sensitive data not encrypted
🟡 YELLOW: Most resources encrypted but some exceptions OR using SSE-S3 instead of SSE-KMS for sensitive data
🟢 GREEN: All data at rest encrypted with appropriate key management
Search: aws___search_documentation("enable encryption existing RDS database")
Search: aws___search_documentation("S3 bucket encryption migration")
Estimated Implementation Time: 2-4 hours (may require downtime for some services)
Control Objective: Encrypt all data in transit using TLS/SSL to prevent eavesdropping and man-in-the-middle attacks.
Not done: Application Load Balancer uses HTTPS listeners
Not done: CloudFront distributions use HTTPS (redirect HTTP to HTTPS)
Not done: API Gateway uses TLS 1.2 or higher
Not done: RDS connections use SSL/TLS
Not done: ElastiCache connections use TLS (if supported)
Not done: Application enforces HTTPS for all API endpoints
Not done: TLS certificates managed via ACM (AWS Certificate Manager)
Not done: TLS certificates auto-renewed
Search: aws___search_documentation("Application Load Balancer HTTPS listener")
Search: aws___search_documentation("CloudFront HTTPS redirect")
Search: aws___search_documentation("RDS SSL connection")
🔴 RED: Application accepts HTTP traffic without HTTPS OR database connections not encrypted
🟡 YELLOW: HTTPS enabled but HTTP not redirected OR some services still using HTTP
🟢 GREEN: All traffic encrypted in transit with TLS 1.2+ and HTTP redirected to HTTPS
Search: aws___search_documentation("configure HTTPS ALB listener ACM")
Search: aws___search_documentation("enforce SSL RDS connections")
Estimated Implementation Time: 1-2 hours
Control Objective: Use VPC endpoints to access AWS services privately without traversing the public internet, reducing attack surface and data transfer costs.
Not done: VPC endpoint for S3 (Gateway endpoint)
Not done: VPC endpoint for DynamoDB (Gateway endpoint)
Not done: VPC endpoints for other AWS services used (Interface endpoints)
Not done: VPC endpoint policies restrict access to specific resources
Not done: Private subnets use VPC endpoints instead of NAT Gateway for AWS service access
Not done: VPC endpoint DNS resolution enabled
Search: aws___search_documentation("VPC endpoints AWS services setup")
Search: aws___search_documentation("VPC endpoint policies security")
Check: aws___get_regional_availability(region="<your-region>", resource_type="api", filters=["EC2+CreateVpcEndpoint"])
🔴 RED: No VPC endpoints configured, all AWS service traffic goes over internet
🟡 YELLOW: Some VPC endpoints configured but not for all services OR endpoint policies too permissive
🟢 GREEN: VPC endpoints configured for all AWS services with restrictive policies
Search: aws___search_documentation("create VPC endpoint S3 DynamoDB")
Estimated Implementation Time: 30-60 minutes
Control Objective: Implement proper network segmentation using VPCs, subnets, and security groups to isolate workloads and limit blast radius.
Not done: Resources deployed in VPC (not EC2-Classic)
Not done: Public and private subnets properly separated
Not done: Database tier in private subnets (no direct internet access)
Not done: Application tier in private subnets behind load balancer
Not done: Bastion hosts or Systems Manager Session Manager for administrative access (no direct SSH)
Not done: Security groups configured for each tier (web, app, database)
Not done: Network ACLs provide additional layer of defense
Not done: VPC Flow Logs enabled for network traffic monitoring
Search: aws___search_documentation("VPC network segmentation best practices")
Search: aws___search_documentation("VPC Flow Logs enable")
🔴 RED: Resources in default VPC OR databases in public subnets OR no network segmentation
🟡 YELLOW: Custom VPC but weak segmentation OR VPC Flow Logs not enabled
🟢 GREEN: Proper network segmentation with defense in depth and flow logs enabled
Search: aws___search_documentation("migrate resources to custom VPC")
Search: aws___search_documentation("create private subnet database tier")
Estimated Implementation Time: 4-8 hours (significant architectural change)
Control Objective: Aggregate logs from all sources for security monitoring, troubleshooting, and compliance.
Not done: Application logs sent to CloudWatch Logs
Not done: VPC Flow Logs enabled and sent to CloudWatch Logs or S3
Not done: Load balancer access logs enabled
Not done: S3 access logs enabled for sensitive buckets
Not done: Lambda function logs sent to CloudWatch Logs
Not done: Log retention configured (minimum 90 days for security logs)
Not done: Log aggregation to central S3 bucket for long-term storage
Not done: Log analysis tools configured (CloudWatch Insights, Athena, or third-party SIEM)
Search: aws___search_documentation("centralized logging architecture AWS")
Search: aws___search_documentation("CloudWatch Logs retention policy")
🔴 RED: No centralized logging OR logs retained <30 days
🟡 YELLOW: Centralized logging exists but incomplete OR retention <90 days
🟢 GREEN: Comprehensive centralized logging with appropriate retention and analysis tools
Search: aws___search_documentation("enable VPC Flow Logs CloudWatch")
Search: aws___search_documentation("ALB access logs S3")
Estimated Implementation Time: 2-3 hours
Control Objective: Implement real-time security monitoring and alerting for critical security events.
Not done: CloudWatch alarms for root user login
Not done: CloudWatch alarms for IAM policy changes
Not done: CloudWatch alarms for security group changes
Not done: CloudWatch alarms for CloudTrail configuration changes
Not done: CloudWatch alarms for failed authentication attempts
Not done: GuardDuty findings sent to SNS/email for high severity
Not done: AWS Config rules for compliance monitoring
Not done: Security Hub enabled for centralized security findings (optional but recommended)
Search: aws___search_documentation("CloudWatch alarms security events")
Search: aws___search_documentation("AWS Config rules security compliance")
Check: aws___get_regional_availability(region="<your-region>", resource_type="api", filters=["SecurityHub+EnableSecurityHub", "Config+PutConfigRule"])
🔴 RED: No security monitoring or alerting configured
🟡 YELLOW: Some alarms configured but missing critical events OR alerts not actionable
🟢 GREEN: Comprehensive security monitoring with actionable alerts and response procedures
Search: aws___search_documentation("create CloudWatch alarm root user login")
Search: aws___search_documentation("AWS Config rules security best practices")
Estimated Implementation Time: 2-4 hours
Control Objective: Establish incident response procedures and tools to quickly detect, respond to, and recover from security incidents.
Not done: Incident response plan documented
Not done: Incident response team identified with contact information
Not done: Incident response runbooks created for common scenarios
Not done: AWS support plan appropriate for response time requirements (Business or Enterprise)
Not done: Backup and recovery procedures tested
Not done: Forensic investigation tools identified (EC2 snapshots, memory dumps, etc.)
Not done: Communication plan for security incidents (internal and external)
Not done: Incident response plan tested annually
Search: aws___search_documentation("AWS incident response best practices")
Search: aws___search_documentation("security incident forensics AWS")
🔴 RED: No incident response plan OR plan never tested
🟡 YELLOW: Incident response plan exists but incomplete OR not tested in >12 months
🟢 GREEN: Comprehensive incident response plan with regular testing and updates
Search: aws___search_documentation("incident response plan template")
Estimated Implementation Time: 4-8 hours (initial plan creation)
Account-Level Controls (60% weight):
Control 1.1 (Root User Security): 15%
Control 1.2 (IAM Password Policy): 5%
Control 1.3 (CloudTrail Logging): 15%
Control 1.4 (AWS Budget Alerts): 5%
Control 1.5 (Amazon GuardDuty): 10%
Control 1.6 (Trusted Advisor): 5%
Control 1.7 (Account Contacts): 2.5%
Control 1.8 (IAM User Management): 2.5%
Workload-Level Controls (40% weight):
Control 2.1 (Secrets Management): 10%
Control 2.2 (Resource Access): 7.5%
Control 2.3 (Encryption at Rest): 10%
Control 2.4 (Encryption in Transit): 5%
Control 2.5 (VPC Endpoints): 2.5%
Control 2.6 (Network Segmentation): 5%
Monitoring & Compliance (Bonus Points):
Control 3.1 (Centralized Logging): +5%
Control 3.2 (Security Monitoring): +5%
Control 3.3 (Incident Response): +5%
🔴 RED Control: 0 points
🟡 YELLOW Control: 50 points
🟢 GREEN Control: 100 points
Overall Security Maturity Levels:
0-40%: 🔴 Critical Risk - Not production-ready, immediate remediation required
41-60%: 🟡 High Risk - Significant gaps, production deployment not recommended
61-75%: 🟡 Medium Risk - Acceptable for early-stage startups, prioritize remediation
76-90%: 🟢 Low Risk - Production-ready with minor improvements needed
91-100%: 🟢 Excellent - Strong security posture, ready for enterprise customers
For each control category, provide:
Overall Security Score: [X]% - [Risk Level]
Account-Level Controls: [X]% ([Y] of [Z] controls GREEN) Workload-Level Controls: [X]% ([Y] of [Z] controls GREEN) Monitoring & Compliance: [X]% ([Y] of [Z] controls GREEN)
Production Readiness: [YES/NO] Investor Due Diligence Ready: [YES/NO] Compliance Framework Readiness: [SOC2: YES/NO, HIPAA: YES/NO, etc.]
For each control, provide:
Control ID and Name
Risk Rating (🔴/🟡/🟢)
Current Status (Implemented / Partially Implemented / Not Implemented)
Gap Analysis (what’s missing)
AWS Documentation References (URLs from MCP searches)
Remediation Priority (P0 Critical /
Unified AWS MCP Server (aws-mcp) available — it ships with this plugin, so no separate install is needed
AWS account access (read-only sufficient for assessment)
Basic understanding of AWS services (EC2, RDS, S3, IAM)
AI assistant with MCP support
Access to these aws-mcp tools: aws___search_documentation, aws___read_documentation, aws___get_regional_availability, aws___list_regions, aws___call_aws
Gather the following information:
Startup Profile: Company name, funding stage, industry, current scale
AWS Environment: Services in use, account structure, team size
Security Goals: Primary objectives, timeline, budget, compliance requirements
Copy the complete prompt composition
Replace all bracketed placeholders [LIKE_THIS] with your specific information
Ensure all sections are completed, especially Current Environment Context
Submit configured prompt to AI assistant with MCP support
Assistant will systematically assess each control using MCP tools
Review output for completeness (Executive Summary, Control Reports, Remediation Roadmap)
This file
Number 31.27
Position 27 of 30
Type Markdown
Size 29 KB