Skip to content

Latest commit

 

History

History
80 lines (80 loc) · 4.16 KB

dsc.md

File metadata and controls

80 lines (80 loc) · 4.16 KB
  1. Securely Automating Infrastructure in the Cloud
  2. All about me...
  1. Expectations
  • I hope you will all walk away saying "well, I already knew that," because it means you already have at least the knowledge
  • For those who don't, I my hope is that there are at least no surprises.
  1. This is not a "how-to" guide so much as a "how we did" guide
  2. Everything revolves around the idea of "minimum necessary access" and "do it securely or don't do it"
  3. How did we start?
  4. Worked to understand our security space
  5. Knowing how we could manage our infrastructure was key
  6. Further, understanding our automation tools from the bottom up
  7. What we knew we needed: auditable, repeatable process that integrated as fully as possible in to our environment
  8. What could we keep, what could we throw away - and what did we need that was new?
  9. Tools we had: Configuration Management (Chef11), Monitoring (Zabbix), Centralised logging (ELK - single node), Alerting (PagerDuty)
  10. Tools we needed: Better monitoring, better logging, infrastructure automation, better configuration management, auditing, code management
  11. Tools we picked:
  • Git for SCM/GitLab for UI & Access Management
  • Jenkins for CI/CD
  • Terraform & Packer for IaC
  • InSpec for configuration testing
  • Chef12 for Configuration Management
  • ELK - full HA cluster for logging
  • Sensu for Monitoring
  • PagerDuty for Alerting
  1. What about the details?
  • Treat every engineer like a developer
  • Treat every object in the infrastructure like code
  1. That's great, but how?
  2. Every environment starts with a new group in GitLab and projects initialized with default configurations and build pipelines
  3. Environments are then configured with the appropriate access credentials for the provider; AWS is currently our only true first class citizen, with Azure rapidly maturing. Second class citizens are currently RackspaceCloud, GCE, and On-prem we also support vSphere and OpenStack, but both have tertiary support
  4. Infrastructure is defined first (terraform), then created, bootstrapped, and tested with InSpec.
  5. Instances are defined with appropriate configurations in config management (roles in Chef) that are tied to appropriate checks (Sensu) and logging (ELK)
  6. Finally, all instances are registered for periodic scanning by our security team
  7. Takeaways: all of our communications are locked down, https where required, ssh by default.
  8. Defined security policy - with backing of our security team
  9. Any exceptions related to client-environment for the clients have to be signed off on, my team allows no internal exceptions. "Lock it down or turn it off"
  10. Again: Minimum necessary access: devs have access to development environments only, all other changes/deployments handled through Jenkins for infrastructure, or other defined build tool for code/applications
  11. Q: Where's the security? it's only explicitly mentioned once!
  12. A: It's inherent in every step.
  • Base images built to a hardening standard
  • Machines are scanned for compliance along the build pipelines
  • Communication is secured (TLS/SSH/SCP)
  • Keys are encrypted (GPG) with passwords stored separately
  • Data objects for configuration management are encrypted
  1. So... why not tool X? It does A, B, C better...
  • Tools that had the best internal support (KB, understanding)
  • Tools that were most compatible with other parts of the org
  • Tools that had the best trade-offs
  • Represented the best overall needs for OUR org
  1. My advice for you: do the same. Find your tools, and run with them
  2. What are some of our problems?
  • Lack of client buy-in
  • Developer demands
  • Signal v. Noise (Monitoring/Alerting)
  • Knowledge sharing
  1. THE FUTURE (none of which is technical... really)
  • Better education for both sales org and clients
  • Reduction of noise by tuning our alerts
  • Better compliance and inspection