This is part-2 of a 2 part series that discusses the risks involved for application security in the new multi-cloud environments. This part introduces the requirements for multi-cloud, the types of multi-clouds and the risks they transport to application security.
Requirements for multi-cloud
So why is there a need for true multi-cloud capacity? The upsurge of latest applications demands the multi-cloud scenarios. Firstly, the organizations require application portability amongst multiple cloud providers. Application uptime is a necessity and I.T organizations cannot rely on a single cloud provider to host the critical applications.
Besides, lock-in I.T organizations don’t want to have their application locked into specific cloud frameworks. Hardware vendors have been doing this since the beginning of time, thereby, locking you to their specific life cycles. Within a cloud environment that has been locked into one provider means, you cannot easily move your application from one provider to another.
Thirdly, the cost is one of the dominant factors. Clouds are not a cheap resource and the pricing models vary among providers, even for the same instance size and type. With a multi-cloud strategy in place, you are in a much better position to negotiate price.
There could also be technical requirements that push you to hold a part of your application stack in one cloud provider and the other part in a different provider. Moreover, some cloud providers may offer special application features that the current cloud provider might not be offering.
Others may pursue a multi-cloud strategy for data sovereignty reasons. Certain laws require that the data physically resides in certain locations.
Finally, the performance feature. Some applications simply run better in one cloud provider than another. One cloud provider may handle a large number of requests per unit time more efficiently, which would require on average small data transfers. On the other hand, a different cloud provider could perform better for a smaller number of requests involving large data transfers.
Objectively, we cannot satisfy these requirements with current cloud designs, therefore, we need to push technology to the edge.
As a result, we are witnessing the introduction of multi-cloud application designs. This is in contrast to traditional cloud designs where we simply have the option of a public, private or hybrid cloud design. We should keep in mind that when we push technologies, we create security gaps, leaving applications open to compromisation.
Types of multi-cloud
There are three types of multi-clouds:
- Type 1 is known as a redundant multi-cloud. Under this, the application is hosted in two locations and operates in active mode. This is commonly seen in the scenarios where you need highly redundant application designs, cloudbusting and the want for geographic reach.
Customers located in hard-to-reach areas may only be able to connect to a single cloud provider. Usually, in this case, a content delivery network (CDN) network is used, but that only works well for certain types of content. If your design requires dynamic content and high intelligence at the edge, then a cloud provider must be employed.
- Type 2 is known as federated multi-cloud. This is the structure where there are a number of components that make up an application stack. However, each of these components is hosted by different cloud providers. This is commonly seen in a microservices scale-out application environment.
- Type 3 is a combination of both redundant and federated models. This type of design demands a high level of complexity. As a result, a high level of skill is required.
Multi-cloud complexity & application security risks
In previous cloud designs, we have software as a service (SaaS), platform as a service (PaaS), and infrastructure as a service (IaaS) service models of operation. Each of these offers a different level of application security abstraction to the consumer. IaaS yields all the controls to the consumer, while with SaaS the provider controls most of the security elements.
However, the multi-cloud environments generally refer to a mix of public IaaS environments. They entail a new complex type of architecture and security within a multi-cloud IaaS environment. Under the multi-cloud environments, the end users are responsible for securing their own application environment.
Multi-cloud is not a simple task of draining one application from one provider, making some changes to domain name server (DNS) and spinning up the application in the second cloud provider. Factually, there are many moving parts, all of which introduce complexity.
As I shared earlier, the majority of multi-cloud scenarios will be IaaS based, meaning the customers are responsible for securing their own application environment. Complex designs transport with them the risk of configuration mistakes and security breaches. We should keep in mind that complexity is the number one enemy of application security.
Nevertheless, the benefits of multi-cloud are very apparent. It will certainly be the future, as the new requirements for multi-cloud have become a necessity today. However, it will also import many security risks to the application. If you are forced down the multi-cloud design, the priority focus should be on application security.