GCP: List of Security Controls that we check

This is a partial list of default security controls that we check as part of our managed security service for GCP (Google Cloud Platform):

Open DNSDetermines if TCP or UDP port 53 for DNS is open to the public
Open SSHDetermines if TCP port 22 for FTP is open to the public
Open CIFSDetermines if UDP port 445 for CIFS is open to the public
Open FTPDetermines if TCP port 20 or 21 for FTP is open to the public
Open Hadoop HDFS NameNode Metadata ServiceDetermines if TCP port 8020 for HDFS NameNode metadata service is open to the public.
Open Hadoop HDFS NameNode WebUIDetermines if TCP port 50070 and 50470 for Hadoop/HDFS NameNode WebUI service is open to the public
Open KibanaDetermines if TCP port 5601 for Kibana is open to the public
Open MySQLDetermines if TCP port 4333 or 3306 for MySQL is open to the public
Open NetBIOSDetermines if UDP port 137 or 138 for NetBIOS is open to the public
Open OracleDetermines if TCP port 1521 for Oracle is open to the public
Open PostgreSQLDetermines if TCP port 5432 for PostgreSQL is open to the public
Open RDPDetermines if TCP port 3389 for RDP is open to the public
Open RPCDetermines if TCP port 135 for RPC is open to the public
Open SMBoTCPDetermines if TCP port 445 for Windows SMB over TCP is open to the public
Open SMTPDetermines if TCP port 25 for SMTP is open to the public
Open SQLServerDetermines if TCP port 1433 or UDP port 1434 for SQL Server is open to the public
Open TelnetDetermines if TCP port 23 for Telnet is open to the public
Open VNC ClientDetermines if TCP port 5500  for VNC Client is open to the public
Open VNC ServerDetermines if TCP port 5900 for VNC Server is open to the public
Open Oracle Auto Data WarehouseDetermines if TCP port 1522 for Oracle Auto Data Warehouse is open to the public
Multiple SubnetsEnsures that VPCs have multiple networks to provide a layered architecture
Default VPC In UseDetermines whether the default VPC is being used for launching VM instances
VM Max InstancesEnsures the total number of VM instances does not exceed a set threshold
Instances Multi AZEnsures managed instances are regional for availability purposes.
Key RotationEnsures cryptographic keys are set to rotate on a regular schedule
DB RestorableEnsures SQL instances can be restored to a recent point
DB Automated BackupsEnsures automated backups are enabled for SQL instances
DB Multiple AZEnsures that SQL instances have a failover replica to be cross-AZ for high availability
DB Publicly AccessibleEnsures that SQL instances have a failover replica to be cross-AZ for high availability.
Bucket VersioningEnsures object versioning is enabled on storage buckets
Bucket LoggingEnsures object logging is enabled on storage buckets
CLB HTTPS OnlyEnsures CLBs are configured to only accept connections on HTTPS ports
Excessive Firewall RulesDetermines if there are an excessive number of firewall rules in the account
Open All PortsDetermines if all ports are open to the public
CLB No InstancesDetects CLBs that have no backend instances attached
Flow Logs EnabledEnsures VPC flow logs are enabled for traffic logging
Autoscale EnabledEnsures instance groups have autoscale enabled for high availability
Service LimitsDetermines if the number of resources is close to the per-account limit.
Private EndpointEnsures the private endpoint setting is enabled for kubernetes clusters
Monitoring EnabledEnsures all Kubernetes clusters have monitoring enabled
Private Access EnabledEnsures Private Google Access is enabled for all Subnets
Instance Level SSH OnlyEnsures that instances are not configured to allow project-wide SSH keys
VM Instances Least PrivilegeEnsures that instances are not configured to use the default service account with full access to all cloud APIs
IP Forwarding DisabledEnsures that IP forwarding is disabled on all instances
Connect Serial Ports DisabledEnsures connecting to serial ports is not enabled for VM instances
CSEK Encryption EnabledEnsures Customer Supplied Encryption Key Encryption is enabled on disks
Storage Bucket All Users PolicyEnsures Storage bucket policies do not allow global write delete or read permissions
Security Policy EnabledEnsures all backend services have an attached security policy
CLB CDN EnabledEnsures that Cloud CDN is enabled on all load balancers
DNS Security EnabledEnsures that DNS Security is enabled on all managed zones
DNS Security Signing AlgorithmEnsures that DNS Security is not using the RSASHA1 algorithm for key or zone signing
OS Login EnabledEnsures OS login is enabled for the project
Database SSL EnabledEnsures SQL databases have SSL enabled
Service Account Key RotationEnsures that service account keys are rotated within 90 days of creation.
Service Account Managed KeysEnsures that service account keys are being managed by Google.
Cluster Least PrivilegeEnsures Kubernetes clusters are created with limited service account access scopes
Project Ownership LoggingEnsures that logging and log alerts exist for project ownership assignments and changes
Storage Permissions LoggingEnsures that logging and log alerts exist for storage permission changes
SQL Configuration LoggingEnsures that logging and log alerts exist for SQL configuration changes
Audit Configuration LoggingEnsures that logging and log alerts exist for audit configuration changes.
Custom Role LoggingEnsures that logging and log alerts exist for custom role creation and changes
VPC Firewall Rule LoggingEnsures that logging and log alerts exist for firewall rule changes
VPC Network Route LoggingEnsures that logging and log alerts exist for VPC network route changes
VPC Network LoggingEnsures that logging and log alerts exist for VPC network changes
Alias IP Ranges EnabledEnsures all Kubernetes clusters have alias IP ranges enabled
Legacy Authorization DisabledEnsure legacy authorization is set to disabled on Kubernetes clusters
Master Authorized NetworkEnsures master authorized networks is set to enabled on Kubernetes clusters
Cluster Labels AddedEnsures all Kubernetes clusters have labels added
Web Dashboard DisabledEnsures all Kubernetes clusters have the web dashboard disabled.
Default Service AccountEnsures all Kubernetes cluster nodes are not using the default service account.
COS Image EnabledEnsures all Kubernetes cluster nodes have Container-Optimized OS enabled
Automatic Node Repair EnabledEnsures all Kubernetes cluster nodes have automatic repair enabled
Automatic Node Upgrades EnabledEnsures all Kubernetes cluster nodes have automatic upgrades enabled
Network Policy EnabledEnsures all Kubernetes clusters have network policy enabled
Pod Security Policy EnabledEnsures pod security policy is enabled for all Kubernetes clusters
Any Host Root AccessEnsures SQL instances root user cannot be accessed from any host
Service Account AdminEnsures that user managed service accounts do not have any admin owner or write privileges.
Service Account UserEnsures that no users have the Service Account User role.
Service Account SeparationEnsures that no users have both the Service Account User and Service Account Admin role.
KMS User SeparationEnsures that no users have the KMS admin role and any one of the CryptoKey roles.
Audit Logging EnabledEnsures that default audit logging is enabled on the project.
Log Sinks EnabledEnsures a log sink is enabled to export all logs
Private Cluster EnabledEnsures private cluster is enabled for all Kubernetes clusters
Logging EnabledEnsures all Kubernetes clusters have logging enabled
Corporate Emails OnlyEnsures that no users are using their Gmail accounts for access to GCP.
Basic Authentication DisabledEnsure basic authentication is set to disabled on Kubernetes clusters.