Genestack Secure Development Practices
Genestack is a complete operation and deployment ecosystem for OpenStack services that heavily utilizes cloud native application like Kubernetes. While developing, publishing, deploying and running OpenStack services based on Genestack we aim to ensure that our engineering teams follow security best practices not just for OpenStack components but also for k8s and other cloud native applications used within the Genestack ecosystem.
This security primer aims to outline layered security practices for Genestack, providing actionable security recommendations at every level to mitigate risks by securing infrastructure, platform, applications and data at each layer of the development process. This primer emphasizes secure development practices that complement Genestack's architecture and operational workflows.
Layered Security Approach
Layered security ensures comprehensive protection against evolving threats by addressing risks at multiple levels. The approach applies security measures to both physical infrastructure and also provides security focus to the development of the application itself. The aim is to minimize a single point of failure compromising the entire system. This concept aligns with the cloud native environments by catagorizing security measures across the lifecycle and stack of the cloud native technologies.
The development team follow a set of practices for Genestack: Rackspace OpenStack Software Development Life Cycle (Rax-O-SDLC). The SDLC practice aims to produce
software that meets or exceeds customer expectation and reach completion within a time and cost estimate. SDLC process is divided into six distinct phases: Scope
, Implement
,
Document
, Test
, Deployment
and Maintain
.
For each of the above stages fall within the security guidelines from CNCF that models security into four distince phases.
Security is then injected at each of these phases:
-
Develop: Applying security principles during application development
-
Distribute: Security practices to distribute code and artifacts
-
Deploy: How to ensure security during application deployment
-
Runtime: Best practices to secure infrastructure and interrelated components
Lets look at it from OpenStack side of things. We want to see security across:
-
Infrastructure: Both physical and virtual resources
-
Platform: Services that support workloads
-
Applications: Containerized workloads and instances that run the services
-
Data: Security of data at rest and in transit
CNCF defines its security principles as:
-
Make security a design requirement
-
Applying secure configuration has the best user experience
-
Selecting insecure configuration is a conscious decision
-
Transition from insecure to secure state is possible
-
Secure defaults are inherited
-
Exception lists have first class support
-
Secure defaults protect against pervasive vulnerability exploits
-
Security limitations of a system are explainable
These guidelines can be adopted to have a secure foundation for Genestack based cloud.