Component Architecture Diagrams¶
This document provides visual representations of the architectural components that make up the Kubernetes CINC Secure Scanner.
System Architecture Overview¶
The following diagram shows the high-level architecture of the scanning system:
flowchart TD
subgraph CoreComponents["CORE COMPONENTS"]
direction TB
cinc["CINC Auditor\nScanning Engine"]
transport["train-k8s-container\nTransport Plugin"]
threshold["Threshold Validation\nSAF CLI"]
end
subgraph SecurityComponents["SECURITY COMPONENTS"]
direction TB
sa["Service Accounts\nIdentity"]
rbac["RBAC Rules\nAccess Control"]
token["Token Management\nAuthentication"]
end
subgraph AdapterComponents["CONTAINER ADAPTERS"]
direction TB
standard["Standard Container\nAdapter"]
debug["Debug Container\nAdapter"]
sidecar["Sidecar Container\nAdapter"]
end
subgraph ExternalSystems["EXTERNAL SYSTEMS"]
direction TB
k8s["Kubernetes API"]
ci["CI/CD Systems"]
compliance["Compliance Systems"]
end
%% Component relationships
CoreComponents -->|uses| SecurityComponents
CoreComponents -->|implements| AdapterComponents
AdapterComponents -->|interacts with| ExternalSystems
SecurityComponents -->|configures| ExternalSystems
%% WCAG-compliant styling
style CoreComponents fill:none,stroke:#0066CC,stroke-width:4px
style SecurityComponents fill:none,stroke:#DD6100,stroke-width:4px
style AdapterComponents fill:none,stroke:#217645,stroke-width:4px
style ExternalSystems fill:none,stroke:#505050,stroke-width:4px
%% Component styling
style cinc fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style transport fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style threshold fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style sa fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style rbac fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style token fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style standard fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style debug fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style sidecar fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style k8s fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style ci fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style compliance fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
CINC Auditor Component Architecture¶
The following diagram shows the CINC Auditor component architecture:
flowchart TD
subgraph CINC["CINC AUDITOR"]
direction TB
inspec["InSpec Core"]
profiles["Security Profiles"]
resources["InSpec Resources"]
reporter["Results Reporter"]
end
subgraph Transport["TRANSPORT PLUGIN"]
direction TB
connection["Kubernetes Connection"]
exec["Command Execution"]
fs["Filesystem Access"]
adapter["Container Type Adapter"]
end
subgraph Target["TARGET CONTAINER"]
direction TB
filesystem["Filesystem"]
processes["Processes"]
users["Users"]
config["Configuration"]
end
%% Component relationships
CINC -->|uses| Transport
Transport -->|accesses| Target
inspec -->|loads| profiles
inspec -->|uses| resources
inspec -->|generates| reporter
connection -->|connects to| filesystem
exec -->|runs commands in| processes
fs -->|reads| filesystem
adapter -->|detects| Target
%% WCAG-compliant styling
style CINC fill:none,stroke:#4C366B,stroke-width:4px
style Transport fill:none,stroke:#DD6100,stroke-width:4px
style Target fill:none,stroke:#505050,stroke-width:4px
%% Component styling
style inspec fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style profiles fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style resources fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style reporter fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style connection fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style exec fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style fs fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style adapter fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style filesystem fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style processes fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style users fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style config fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
Security Component Architecture¶
The following diagram shows the security component architecture:
flowchart TD
subgraph ServiceAccount["SERVICE ACCOUNT MANAGEMENT"]
direction TB
creation["Service Account Creation"]
permissions["Permission Assignment"]
lifecycle["Lifecycle Management"]
end
subgraph RBAC["RBAC CONTROLS"]
direction TB
role["Role Definition"]
binding["Role Binding"]
scope["Scope Limitation"]
end
subgraph TokenMgmt["TOKEN MANAGEMENT"]
direction TB
generation["Token Generation"]
expiration["Token Expiration"]
revocation["Token Revocation"]
end
subgraph Kubernetes["KUBERNETES SECURITY"]
direction TB
apiserver["API Server Authentication"]
authorization["Authorization Check"]
audit["Audit Logging"]
end
%% Component relationships
ServiceAccount -->|creates| RBAC
RBAC -->|controls| Kubernetes
TokenMgmt -->|authenticates| Kubernetes
ServiceAccount -->|manages| TokenMgmt
%% WCAG-compliant styling
style ServiceAccount fill:none,stroke:#DD6100,stroke-width:4px
style RBAC fill:none,stroke:#DD6100,stroke-width:4px
style TokenMgmt fill:none,stroke:#DD6100,stroke-width:4px
style Kubernetes fill:none,stroke:#505050,stroke-width:4px
%% Component styling
style creation fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style permissions fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style lifecycle fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style role fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style binding fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style scope fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style generation fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style expiration fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style revocation fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style apiserver fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style authorization fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style audit fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
Container Adapter Architecture¶
The following diagram shows the container adapter architecture:
flowchart TD
subgraph Adapters["CONTAINER ADAPTERS"]
direction TB
detector["Container Type Detector"]
selector["Adapter Selector"]
end
subgraph StandardAdapter["STANDARD ADAPTER"]
direction TB
std_exec["Direct Exec"]
std_fs["Direct Filesystem Access"]
end
subgraph DebugAdapter["DEBUG CONTAINER ADAPTER"]
direction TB
debug_container["Debug Container Creation"]
debug_chroot["Chroot to Target Filesystem"]
debug_exec["Command Execution in Debug"]
end
subgraph SidecarAdapter["SIDECAR ADAPTER"]
direction TB
shared_process["Shared Process Namespace"]
proc_fs["/proc Filesystem Access"]
sidecar_exec["Command Execution in Sidecar"]
end
%% Component relationships
Adapters -->|selects| StandardAdapter
Adapters -->|selects| DebugAdapter
Adapters -->|selects| SidecarAdapter
%% WCAG-compliant styling
style Adapters fill:none,stroke:#217645,stroke-width:4px
style StandardAdapter fill:none,stroke:#217645,stroke-width:4px
style DebugAdapter fill:none,stroke:#217645,stroke-width:4px
style SidecarAdapter fill:none,stroke:#217645,stroke-width:4px
%% Component styling
style detector fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style selector fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style std_exec fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style std_fs fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style debug_container fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style debug_chroot fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style debug_exec fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style shared_process fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style proc_fs fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style sidecar_exec fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
Threshold Validation Architecture¶
The following diagram shows the threshold validation architecture:
flowchart TD
subgraph SAF["SAF CLI INTEGRATION"]
direction TB
parser["Results Parser"]
validator["Threshold Validator"]
reporter["Compliance Reporter"]
end
subgraph Threshold["THRESHOLD CONFIGURATION"]
direction TB
rules["Compliance Rules"]
levels["Severity Levels"]
thresholds["Compliance Thresholds"]
end
subgraph Results["SCAN RESULTS"]
direction TB
json["JSON Results"]
summary["Results Summary"]
details["Control Details"]
end
subgraph Output["OUTPUT PROCESSING"]
direction TB
status["Compliance Status"]
report["Detailed Report"]
feedback["CI/CD Feedback"]
end
%% Component relationships
Results -->|processed by| SAF
Threshold -->|configures| SAF
SAF -->|generates| Output
%% WCAG-compliant styling
style SAF fill:none,stroke:#4C366B,stroke-width:4px
style Threshold fill:none,stroke:#DD6100,stroke-width:4px
style Results fill:none,stroke:#505050,stroke-width:4px
style Output fill:none,stroke:#217645,stroke-width:4px
%% Component styling
style parser fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style validator fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style reporter fill:#4C366B,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style rules fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style levels fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style thresholds fill:#DD6100,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style json fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style summary fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style details fill:#505050,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style status fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style report fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
style feedback fill:#217645,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF