Skip to content

Container Scanning Approach Decision Matrix

This decision matrix provides a comprehensive comparison of the three container scanning approaches available in this project. Use this guide to select the most appropriate approach based on your specific requirements and environment constraints.

Quick Selection Guide

If you need... Recommended Approach
Enterprise-ready, scalable solution Kubernetes API Approach
Simplest implementation for standard containers Kubernetes API Approach
Compliance with security standards Kubernetes API Approach
CI/CD pipeline for enterprise scale Kubernetes API Approach
Minimal cluster permissions Kubernetes API Approach
Distroless support (interim) with K8s 1.16+ Debug Container Approach
Distroless support (interim) with any K8s version Sidecar Container Approach
Universal solution for all container types Kubernetes API Approach (once distroless support is complete)

Comprehensive Comparison Matrix

Factor Kubernetes API Approach Debug Container Sidecar Container
Compatibility
Standard containers ✅ Full support ✅ Full support ✅ Full support
Distroless containers 🔶 In development ✅ Full support ✅ Full support
Kubernetes version requirement Any version 1.16+ (ephemeral containers) Any version
Implementation
Implementation complexity 🟢 Low 🟠 Medium 🟠 Medium
CI/CD integration effort 🟢 Low 🟠 Medium 🟠 Medium
Maintenance burden 🟢 Low 🟠 Medium 🟠 Medium
Setup complexity 🟢 Low 🟠 Medium 🟠 Medium
Security
Overall security risk 🟢 Low 🟠 Medium 🔴 Medium-High
Required permissions 🟢 Minimal 🟠 Moderate 🟠 Moderate
Isolation level 🟢 High 🟠 Medium 🔴 Lower
Attack surface 🟢 Minimal 🟠 Moderate 🟠 Moderate
Operational
Scan speed 🟢 Fast 🟠 Medium 🟢 Fast
Resource overhead 🟢 Low 🟠 Medium 🟠 Medium
Intrusiveness 🟢 Low 🟠 Medium 🔴 Higher
Runtime dependencies kubectl, inspec kubectl, ephemeral containers kubectl, pod access
Enterprise Factors
Multi-team adoption 🟢 Easy 🟠 Moderate 🟠 Moderate
Learning curve 🟢 Low 🟠 Medium 🟠 Medium
Documentation effort 🟢 Low 🟠 Medium 🟠 Medium
Monitoring/observability 🟢 Standard logs 🟠 Multiple components 🟠 Multiple components
Long-term enterprise viability 🟢 High 🟠 Medium 🟠 Medium

Detailed Analysis by Use Case

Use Case 1: Enterprise Environments

Best Approach: Kubernetes API Approach

Rationale:

  • Designed for enterprise scalability and adoption
  • Simplest implementation with minimal overhead
  • Works well with standard containers and future distroless support
  • Lowest security risk profile
  • Most transparent to end users
  • Same commands for both standard and distroless containers (with future enhancement)
  • Minimal permissions required in production clusters
  • Best for multi-team environments

Use Case 2: Production with Mixed Container Types

Best Approach: Kubernetes API Approach with Sidecar Container fallback

Rationale:

  • Kubernetes API Approach offers best enterprise integration
  • For current distroless containers, Sidecar Container Approach offers:
    • Universal compatibility with all container types
    • Works regardless of Kubernetes version
    • Can be implemented with automated sidecar injection
  • Long-term plan should be migrating to Kubernetes API Approach as distroless support matures

Use Case 3: Advanced Kubernetes Environment (1.16+)

Best Approach: Kubernetes API Approach with Debug Container fallback

Rationale:

  • Kubernetes API Approach is the recommended long-term solution
  • For current distroless containers, Debug Container Approach offers:
    • Native Kubernetes ephemeral containers feature
    • More isolated than sidecar approach
    • Debug containers are ephemeral (removed after scan)
    • Good balance of security and capabilities

Use Case 4: Highly Secure / Zero-Trust Environment

Best Approach: Kubernetes API Approach (with fallback to Debug Container)

Rationale:

  • Kubernetes API Approach has the lowest risk profile
  • Minimal permissions required
  • Minimal attack surface
  • If distroless containers are required, use Debug Container approach with strict controls until Kubernetes API Approach supports distroless

Use Case 5: CI/CD Pipeline Integration

Best Approach: Kubernetes API Approach (with appropriate interim solution for distroless containers)

Rationale:

  • While all approaches are technically possible in CI/CD pipelines, the Kubernetes API Approach offers critical advantages:
    • Compliance: Aligns with security compliance standards
    • Scale: Significantly lower resource overhead and faster execution for high-volume scanning (hundreds to thousands of containers)
    • Consistency: Same workflow, commands, and permissions model regardless of environment
    • Enterprise adoption: Simplifies cross-team standardization and governance
    • Security posture: Minimizes attack surface and privilege requirements in CI/CD environments
  • For distroless containers in CI/CD:
    • Use the appropriate interim solution based on cluster capabilities
    • Plan migration path to Kubernetes API Approach as distroless support is completed
    • Document compliance deviations if using alternative approaches
  • While alternative approaches may work in isolated CI/CD use cases, they are not recommended for enterprise-scale implementations

Implementation Decision Tree

  1. Is enterprise scalability your primary concern?
  2. Yes: Use Kubernetes API Approach (with appropriate fallback for distroless containers until fully supported)
  3. No: Continue to next question

  4. Are you scanning standard containers with shell access?

  5. Yes: Use Kubernetes API Approach
  6. No: Continue to next question

  7. Are you on Kubernetes 1.16+ with ephemeral containers enabled?

  8. Yes: Use Debug Container Approach (until Kubernetes API Approach supports distroless)
  9. No: Continue to next question

  10. Can you modify pod definitions to add shareProcessNamespace?

  11. Yes: Use Sidecar Container Approach
  12. No: Consider cluster upgrade to enable ephemeral containers

  13. Is security your primary concern?

  14. Yes: Use Kubernetes API Approach where possible, with strict controls on any alternate approach
  15. No: Choose based on compatibility and operational factors

Migration Paths

  • For standard containers: Immediate adoption
  • For distroless containers: Plan adoption as enhanced distroless support is completed
  • Maintain same commands and workflows across all container types for seamless user experience

From Kubernetes API to Debug Container (for distroless containers)

  • Implement ephemeral container support in cluster
  • Add debug container configuration
  • Modify scan scripts to use debug container method
  • Plan migration back to Kubernetes API Approach as distroless support matures

From Kubernetes API to Sidecar Container (for distroless containers)

  • Modify pod definitions to enable shareProcessNamespace
  • Add sidecar container configuration
  • Configure process detection and filesystem access
  • Plan migration back to Kubernetes API Approach as distroless support matures

From Debug Container to Sidecar Container

  • Modify pod definitions to enable shareProcessNamespace
  • Configure sidecar deployment approach
  • No cluster version dependencies

Enterprise Adoption Strategy

For enterprise environments planning to adopt container scanning at scale, we recommend:

  1. Phase 1: Standard Containers
  2. Implement Kubernetes API Approach for all standard containers
  3. Document and train teams on the standardized approach

  4. Phase 2: Distroless Containers (Interim)

  5. Implement appropriate fallback method based on environment:
    • Debug Container Approach (if ephemeral containers are supported)
    • Sidecar Container Approach (for universal compatibility)
  6. Document temporary approach and plan for future migration

  7. Phase 3: Complete Migration to Universal Solution

  8. Migrate all scanning to Kubernetes API Approach once distroless support is complete
  9. Standardize on a single, universal approach for all container types
  10. Maintain simplified user experience with consistent commands
  11. Eliminate the need for multiple approaches or special handling for different container types

Conclusion

After comprehensive analysis of security compliance, enterprise scalability, operational efficiency, and implementation complexity, the Kubernetes API Approach emerges as the clear superior solution for container scanning in production environments.

Our recommendation is based on thorough evaluation against:

  • Security compliance frameworks (DoD 8500.01, DISA Container Platform SRG, Kubernetes STIG, CIS Benchmarks, NSA/CISA Kubernetes Hardening Guide)
  • Enterprise-scale operational requirements (supporting hundreds to thousands of container scans)
  • Resource efficiency and performance considerations
  • CI/CD integration capabilities
  • Maintainability and adoption across teams

For enterprise deployments, the Kubernetes API Approach is not just preferred but strongly recommended as the only approach that fully satisfies enterprise security, compliance, and scale requirements. The alternative approaches, while technically functional, introduce significant compliance challenges, security considerations, and operational complexities that make them unsuitable for enterprise-scale production use.

Strategic Direction:

  1. Implement Kubernetes API Approach for standard containers immediately
  2. Use appropriate interim solutions for distroless containers with proper risk documentation
  3. Prioritize completing Kubernetes API Approach support for distroless containers
  4. Migrate all scanning to the unified Kubernetes API Approach when complete

This strategy provides the most secure, compliant, and scalable path forward for enterprise container security.

For detailed implementation guidance, refer to the specific documentation:

For comprehensive security analysis, see: