ADR 001: Application Isolation
Status: Accepted | Date: 2025-02-17
Context
Not isolating applications and environments can lead to significant security risks. The risk of lateral movement means threats of vulnerability exposure of a single application can compromise other applications or the entire environment. This lack of isolation can enable the spread of malware, unauthorised access, and data breaches.
- Open Web Application Security Project (OWASP) Application Security Verification Standard (ASVS)
- Australian Cyber Security Centre (ACSC) Guidelines for System Hardening
Decision
To mitigate the risks associated with shared environments, all applications and environments should isolate by default. This isolation can achieve through the following approaches:
- Dedicated Accounts: Use separate cloud accounts / resource groups for different environments (for example, development, testing, production) to ensure complete isolation of resources and data.
- Kubernetes Clusters: Deploy separate Kubernetes clusters for different applications or environments to isolate workloads and manage resources independently.
- Kubernetes Namespaces: Within a Kubernetes cluster, use namespaces to logically separate different applications or environments, providing a level of isolation for network traffic, resource quotas, and access controls.
The preferred approach for isolation should drive by data sensitivity and product boundaries.
Consequences
If applications and environments are not isolated by default, the following consequences may arise:
- Increased Risk of Compromise: A vulnerability in one application can lead to the compromise of other applications or the entire environment.
- Difficulty in Incident Response: Without isolation, it becomes challenging to contain and mitigate security incidents.
- Compliance Issues: Failure to isolate environments may lead to non-compliance with regulatory requirements and industry standards.
- Data Breaches: Sensitive data may expose or stolen due to unauthorised access from the lack of isolation.
By adopting this decision, we aim to enhance the security posture of our systems, reduce the risk of security incidents, and ensure compliance with relevant standards and regulations.