ProficientNowTechRFCs

5. Ingress Security

RFC-TENANT-SECURITY-0001                                         Section 5
Category: Standards Track                                  Ingress Security

5. Ingress Security

← Components | Index | Next: WAF Architecture →


5.1 Ingress Architecture

5.1.1 Single Entry Point

All external HTTP/HTTPS traffic enters the cluster through a single ingress layer. This ensures consistent security policy application across all traffic (INV-1).

5.1.2 Ingress Responsibilities

ResponsibilityDescriptionInvariant
TLS TerminationDecrypt HTTPS, enforce minimum TLS versionINV-2
RoutingDirect traffic to appropriate backends
WAF ProcessingApply security rules before routingINV-1
Rate LimitingEnforce traffic quotas
Header ManagementAdd/remove security headers

5.2 TLS Architecture

5.2.1 TLS Requirements

RequirementSpecificationRationale
Minimum VersionTLS 1.2INV-2: Deprecate weak protocols
Preferred VersionTLS 1.3Modern security, performance
Certificate TypeRSA 2048+ or ECDSA P-256+Industry standard
Certificate Lifetime90 days (Let's Encrypt default)Limit exposure window

5.2.2 Certificate Lifecycle

5.2.3 Certificate Distribution

StageActorAction
DefinitionGitOpsCertificate CRD in Git
Issuancecert-managerRequest from Let's Encrypt
StorageKubernetesSecret in ingress namespace
ConsumptionBunkerWebMount Secret for TLS termination
Renewalcert-managerAutomatic before expiry

5.2.4 TLS Modes

ModeUse CaseCertificate Source
TerminateStandard HTTPS endpointsLet's Encrypt via cert-manager
PassthroughEnd-to-end encryption requiredApplication-managed
Re-encryptBackend requires TLSInternal CA

5.3 Routing Model

5.3.1 Route Definition

Routes define how traffic reaches backend services:

AttributeDescriptionExample
HostDomain nameapp.example.com
PathURL path pattern/api/v1/*
BackendTarget serviceapp-service:8080
TLSCertificate referenceapp-tls-cert

5.3.2 Route Precedence

When multiple routes match, precedence follows:

PriorityRuleExample
1Exact path match/api/v1/users
2Prefix match (longest)/api/v1/
3Prefix match (shorter)/api/
4Default backend/

5.3.3 Route Security Properties

Each route inherits security properties:

PropertyInheritanceOverride
WAF RulesGlobal rules applyPer-route exceptions allowed
Rate LimitsGlobal defaultsPer-route limits allowed
TLS VersionGlobal minimumCannot be lowered
HeadersGlobal security headersPer-route additions allowed

5.4 Security Headers

5.4.1 Default Security Headers

The ingress layer applies security headers to all responses:

HeaderValuePurpose
Strict-Transport-Securitymax-age=31536000; includeSubDomainsForce HTTPS
X-Content-Type-OptionsnosniffPrevent MIME sniffing
X-Frame-OptionsDENYPrevent clickjacking
X-XSS-Protection1; mode=blockXSS filter (legacy browsers)
Referrer-Policystrict-origin-when-cross-originControl referrer
Content-Security-PolicyVaries by applicationXSS mitigation

5.4.2 Header Management

ActionAuthorityUse Case
Add security headerPlatform (default)All responses
Remove headerSecurity TeamSpecific requirements
Override CSPTenantApplication-specific policy

5.5 Backend Communication

5.5.1 Ingress to Service Communication

Traffic from ingress to backend services:

5.5.2 Communication Security

SegmentProtocolSecurity
Client → IngressHTTPSTLS 1.2+
Ingress → MeshHTTPMesh-injected mTLS
Mesh → ServicemTLSService mesh identity

5.5.3 Health Checks

Check TypePurposeInterval
LivenessDetect hung processes10 seconds
ReadinessTraffic routing decisions5 seconds
StartupInitial availabilityDuring startup

5.6 Integration with RFC-WORKLOAD-IDENTITY

5.6.1 Mesh Integration

BunkerWeb integrates with the Linkerd service mesh:

AspectConfiguration
Proxy InjectionBunkerWeb pods are mesh-injected
IdentityBunkerWeb has mesh identity for backend calls
AuthorizationBackend ServerAuthorization allows BunkerWeb identity

5.6.2 Handoff Boundary

ResponsibilityRFC-TENANT-SECURITYRFC-WORKLOAD-IDENTITY
External TLSTermination
WAFInspection
Rate LimitingEnforcement
Service IdentitymTLS identity
Service AuthorizationServerAuthorization

Document Navigation


End of Section 5