jonrau1 / ElectricEye

ElectricEye is a multi-cloud, multi-SaaS Python CLI tool for Asset Management, Security Posture Management & Attack Surface Monitoring supporting 100s of services and evaluations to harden your CSP & SaaS environments with controls mapped to over 20 industry, regulatory, and best practice controls frameworks
Apache License 2.0
959 stars 126 forks source link

Expand GCP Auditors #108

Closed jonrau1 closed 9 months ago

jonrau1 commented 1 year ago

Story

As the maintainer of ElectricEye, I want to add more GCP auditors so that I can have coverage parity with AWS, additionally I want to support GCP Organization-level Service Accounts so that I can assess multiple GCP Projects at once.

Definition of Done

Add to the existing GCP coverage and refactor the GCP target workflow to either support multiple Projects or an entire Organization via Service Accounts or otherwise. Multi-project coverage is a stretch goal.

Nice to Have

Additional Information

For GCP cross-Project / APIs info...all seems to be the same of creating one SA and then adding the SA email into all other Projects. Holy shit, there has to be a faster way...

TOML Arrays (list)

abaio-westhill commented 1 year ago

Adding the following GCP Services/Components to the Auditors Firebase: do not use default firebase service account AlloyDB: do not use default alloy service account, ensure continuous backup & recovery is enabled, ensured automated backups are enabled BigQuery: do not use default bq service account, use policy tags for column level access BigTable: do not use default service account Cloud Spanner: do not use default service account Cloud Functions: do not use default service account, good to require auth depending on use case, require HTTPS, depending on use case only allow internal traffic so traffic is routed through VPC, place in a VPC network so egress traffic is routed through VPC, enable HTTP/2 and session affinity, enforce binary authorization for deployment Cloud Run - do not use default service account, best to force internal access so traffic has to flow through VPC depening on use case, require authentication depending on use case GKE (GKE Autopilot will enable a lot of these by default): Binary Auth, CPANs, NetPol, no use GKE default svc acct, PSP controller, Shield GKE, Release Channel K8s, Secure Boot, GCE legacy metadata api disabled, Legacy Auth disabled, IntegMon enabled GCS: enable bucket logging, depending on use case do not allow public access, enable versioning, enable retention policy, do not use default service account IAM Service Accounts: should be rotated on some recurring schedule, do not use primitive roles