Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Compliance Pages #12523

Merged
merged 22 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,5 +57,6 @@ _vendor/
# Ignore log files.
/scripts/link-checker/pages-with-broken-links.txt

/content/compliance
.doctrees/
.buildinfo
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,8 @@ deploy-dev-stack:
.PHONY: destroy-dev-stack
destroy-dev-stack:
./scripts/destroy-dev-stack.sh

.PHONY: generate-compliance-pages
generate-compliance-pages:
node scripts/aws-compliance-scraper/scrape.js
./scripts/content/generate-compliance-pages.sh
4 changes: 4 additions & 0 deletions content/compliance/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
title: Compliance
meta_desc: add meta desc here add meta desc here add meta desc here add meta desc here add meta desc here
---
146 changes: 146 additions & 0 deletions data/compliance/controls.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
{
"RDS": [
"RDS snapshot should be private",
"RDS DB Instances should prohibit public access, as determined by the PubliclyAccessible AWS Configuration",
"RDS DB instances should have encryption at-rest enabled",
"RDS cluster snapshots and database snapshots should be encrypted at rest",
"RDS DB instances should be configured with multiple Availability Zones",
"Enhanced monitoring should be configured for RDS DB instances",
"RDS clusters should have deletion protection enabled",
"RDS DB instances should have deletion protection enabled",
"RDS DB instances should publish logs to CloudWatch Logs",
"IAM authentication should be configured for RDS instances",
"RDS instances should have automatic backups enabled",
"IAM authentication should be configured for RDS clusters",
"RDS automatic minor version upgrades should be enabled",
"Amazon Aurora clusters should have backtracking enabled",
"RDS DB clusters should be configured for multiple Availability Zones",
"RDS DB clusters should be configured to copy tags to snapshots",
"RDS DB instances should be configured to copy tags to snapshots",
"RDS instances should be deployed in a VPC",
"Existing RDS event notification subscriptions should be configured for critical cluster events",
"Existing RDS event notification subscriptions should be configured for critical database instance events",
"An RDS event notifications subscription should be configured for critical database parameter group events",
"An RDS event notifications subscription should be configured for critical database security group events",
"RDS instances should not use a database engine default port",
"RDS Database clusters should use a custom administrator username",
"RDS database instances should use a custom administrator username",
"RDS DB instances should be protected by a backup plan",
"RDS DB clusters should be encrypted at rest",
"RDS DB clusters should be tagged",
"RDS DB cluster snapshots should be tagged",
"RDS DB instances should be tagged",
"RDS DB security groups should be tagged",
"RDS DB snapshots should be tagged",
"RDS DB subnet groups should be tagged",
"Aurora MySQL DB clusters should publish audit logs to CloudWatch Logs",
"RDS DB clusters should have automatic minor version upgrade enabled"
],
"EC2": [
"Amazon EBS snapshots should not be publicly restorable",
"VPC default security groups should not allow inbound or outbound traffic",
"Attached Amazon EBS volumes should be encrypted at-rest",
"Stopped EC2 instances should be removed after a specified time period",
"VPC flow logging should be enabled in all VPCs",
"EBS default encryption should be enabled",
"EC2 instances should use Instance Metadata Service Version 2 (IMDSv2)",
"Amazon EC2 instances should not have a public IPv4 address",
"Amazon EC2 should be configured to use VPC endpoints that are created for the Amazon EC2 service",
"Unused Amazon EC2 EIPs should be removed",
"Security groups should not allow ingress from 0.0.0.0/0 or ::/0 to port 22",
"Security groups should not allow ingress from 0.0.0.0/0 or ::/0 to port 3389",
"Amazon EC2 subnets should not automatically assign public IP addresses",
"Unused Network Access Control Lists should be removed",
"Amazon EC2 instances should not use multiple ENIs",
"Security groups should only allow unrestricted incoming traffic for authorized ports",
"Security groups should not allow unrestricted access to ports with high risk",
"Both VPN tunnels for an AWS Site-to-Site VPN connection should be up",
"Network ACLs should not allow ingress from 0.0.0.0/0 to port 22 or port 3389",
"Amazon EC2 Transit Gateways should not automatically accept VPC attachment requests",
"Amazon EC2 paravirtual instance types should not be used",
"Amazon EC2 launch templates should not assign public IPs to network interfaces",
"EBS volumes should be covered by a backup plan",
"EC2 transit gateway attachments should be tagged",
"EC2 transit gateway route tables should be tagged",
"EC2 network interfaces should be tagged",
"EC2 customer gateways should be tagged",
"EC2 Elastic IP addresses should be tagged",
"EC2 instances should be tagged",
"EC2 internet gateways should be tagged",
"EC2 NAT gateways should be tagged",
"EC2 network ACLs should be tagged",
"EC2 route tables should be tagged",
"EC2 security groups should be tagged",
"EC2 subnets should be tagged",
"EC2 volumes should be tagged",
"Amazon VPCs should be tagged",
"Amazon VPC endpoint services should be tagged",
"Amazon VPC flow logs should be tagged",
"Amazon VPC peering connections should be tagged",
"EC2 VPN gateways should be tagged",
"EC2 Client VPN endpoints should have client connection logging enabled",
"EC2 transit gateways should be tagged",
"EC2 security groups should not allow ingress from 0.0.0.0/0 to remote server administration ports",
"EC2 security groups should not allow ingress from ::/0 to remote server administration ports"
],
"ECS": [
"Amazon ECS task definitions should have secure networking modes and user definitions.",
"ECS services should not have public IP addresses assigned to them automatically",
"ECS task definitions should not share the host's process namespace",
"ECS containers should run as non-privileged",
"ECS containers should be limited to read-only access to root filesystems",
"Secrets should not be passed as container environment variables",
"ECS task definitions should have a logging configuration",
"ECS Fargate services should run on the latest Fargate platform version",
"ECS clusters should use Container Insights",
"ECS services should be tagged",
"ECS clusters should be tagged",
"ECS task definitions should be tagged"
],
"EKS": [
"EKS cluster endpoints should not be publicly accessible",
"EKS clusters should run on a supported Kubernetes version",
"EKS clusters should use encrypted Kubernetes secrets",
"EKS clusters should be tagged",
"EKS identity provider configurations should be tagged",
"EKS clusters should have audit logging enabled"
],
"API Gateway": [
"API Gateway REST and WebSocket API execution logging should be enabled",
"API Gateway REST API stages should be configured to use SSL certificates for backend authentication",
"API Gateway REST API stages should have AWS X-Ray tracing enabled",
"API Gateway should be associated with a WAF Web ACL",
"API Gateway REST API cache data should be encrypted at rest",
"API Gateway routes should specify an authorization type",
"Access logging should be configured for API Gateway V2 Stages"
],
"IAM": [
"IAM policies should not allow full \"*\" administrative privileges",
"IAM users should not have IAM policies attached",
"IAM users' access keys should be rotated every 90 days or less",
"IAM root user access key should not exist",
"MFA should be enabled for all IAM users that have a console password",
"Hardware MFA should be enabled for the root user",
"Password policies for IAM users should have strong configurations",
"Unused IAM user credentials should be removed",
"MFA should be enabled for the root user",
"Password policies for IAM users should have strong AWS Configurations",
"Ensure IAM password policy requires at least one uppercase letter",
"Ensure IAM password policy requires at least one lowercase letter",
"Ensure IAM password policy requires at least one symbol",
"Ensure IAM password policy requires at least one number",
"Ensure IAM password policy requires minimum password length of 14 or greater",
"Ensure IAM password policy prevents password reuse",
"Ensure IAM password policy expires passwords within 90 days or less",
"Ensure a support role has been created to manage incidents with AWS Support",
"MFA should be enabled for all IAM users",
"IAM customer managed policies that you create should not allow wildcard actions for services",
"IAM user credentials unused for 45 days should be removed",
"IAM Access Analyzer analyzers should be tagged",
"IAM roles should be tagged",
"IAM users should be tagged",
"Expired SSL/TLS certificates managed in IAM should be removed",
"IAM identities should not have the AWSCloudShellFullAccess policy attached",
"IAM Access Analyzer external access analyzer should be enabled"
]
}
43 changes: 43 additions & 0 deletions data/compliance/pages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"frameworks": [
{
"framework": "PCI DSS",
"cloud": "AWS",
"description": "PCI DSS (Payment Card Industry Data Security Standard) compliance refers to the adherence to a set of security standards designed to protect card information during and after a financial transaction. These standards are established by the Payment Card Industry Security Standards Council (PCI SSC), which was founded by major credit card companies like Visa, MasterCard, American Express, Discover, and JCB."
}
],
"services": [
{
"name": "RDS",
"full": "RDS resources",
"category": "database",
"whatis": "Amazon RDS (Relational Database Service) is a managed service that simplifies setting up, operating, and scaling relational databases in the cloud. It supports multiple database engines and automates tasks like backups, patching, and monitoring."
},
{
"name": "EC2",
"full": "EC2 resources",
"category": "server",
"whatis": "Amazon EC2 (Elastic Compute Cloud) is a web service that provides scalable computing capacity in the cloud, allowing users to run virtual servers on-demand. It offers server instances, storage, and networking options to tailor the infrastructure to specific application needs."
},
{
"name": "ECS",
"full": "ECS Cluster",
"whatis": "Amazon ECS (Elastic Container Service) is a fully managed container orchestration service that allows you to run and scale containerized applications in the cloud. It simplifies the deployment and management of containers, handling tasks like load balancing, scaling, and security. ECS integrates seamlessly with other AWS services, making it easy to build and manage resilient, scalable applications."
},
{
"name": "EKS",
"full": "EKS Cluster",
"whatis": "Amazon EKS (Elastic Kubernetes Service) is a fully managed service that simplifies running Kubernetes on AWS, allowing you to deploy, manage, and scale containerized applications. It handles the complexity of Kubernetes operations, including patching, scaling, and managing the control plane. EKS integrates with AWS services, providing a secure and scalable platform for running Kubernetes workloads in the cloud."
},
{
"name": "API Gateway",
"full": "API Gateway",
"whatis": "Amazon API Gateway is a fully managed service that enables you to create, publish, and manage APIs at any scale. It simplifies building and securing REST, HTTP, and WebSocket APIs, handling tasks like authorization, throttling, and monitoring. API Gateway integrates seamlessly with AWS services, allowing you to connect backend systems, Lambda functions, and other endpoints with ease."
},
{
"name": "IAM",
"full": "IAM Roles and Policies",
"whatis": "AWS IAM (Identity and Access Management) is a service that enables you to securely manage access to AWS resources. It allows you to create and control user permissions, defining who can access specific resources and under what conditions. IAM helps ensure security and compliance by enforcing fine-grained access controls across your AWS environment."
}
]
}
Loading
Loading