KSI-CNA-RNTPartial reviewRestricting Network Traffic
CNA — Cloud-Native Architecture
NIST 800-53: ac-17.3, ca-9, cm-7.1, sc-7.5, si-8
- Who this is for
- Cloud service providers
- Service class
- All service classes
- Implementation guidance
- Reviewed guidance available
- Evidence automation
- Not published
What your CSP needs to do
This KSI asks whether every network control point — security group, NSG, firewall rule — is configured to limit traffic in both directions. Four proof points:
- No inbound rules open to the world. Nothing allows
0.0.0.0/0or::/0(or Azure's*/Internetsource) inbound. - Sensitive ports are never internet-exposed. SSH (22), RDP (3389), and the common database/cache ports (3306, 5432, 1433, 27017, 6379, 9200, 11211) must not be reachable from the world.
- Deny by default holds. Default security groups carry no inbound rules, and egress is explicitly restricted — not allow-all outbound.
- A network firewall or IDS layer exists — AWS Network Firewall, Azure Firewall, or GCP Cloud IDS.
The most common way CSPs fail it: outbound. Teams lock down inbound carefully and leave every security group with the default allow-all egress — which is exactly the exfiltration path the CM-7(1) leg of this KSI targets.
Implementation: AWS
- No world-open inbound — no ingress rule with a
0.0.0.0/0or::/0CIDR. - No sensitive-port exposure — no world-open rule whose port range covers a sensitive port; protocol
-1(all protocols) counts as all ports. - Default SG locked — security groups named
defaultmust have zero inbound rules. - Explicit egress restriction — fails when an egress rule allows all protocols to
0.0.0.0/0.
Org-level (any-pass): AWS Network Firewall deployed.
Implementation: Azure
Per-NSG assertions:
- No world-open inbound — no
Allow/Inboundrule with source*,Internet,0.0.0.0/0, or::/0. - No sensitive-port exposure — no world-open rule whose destination port or port range covers a sensitive port (
*counts as everything). - Explicit outbound deny — the NSG must carry at least one explicit
Deny/Outboundrule beyond the platform defaults.
Org-level (any-pass): Azure Firewall active in the subscription (the network-level IDS/IPS leg).
Implementation: GCP
Per-firewall-rule assertions:
- No world-open ingress — no
INGRESSrule with0.0.0.0/0(or::/0) in its source ranges. - No sensitive-port exposure — no world-open ingress rule allowing a sensitive port;
ip_protocol: allcounts as all ports. - Explicit egress control — the engine looks for
EGRESS-direction firewall rules; having any is itself evidence of deliberate egress control.
Org-level (any-pass): Cloud IDS endpoints present in the project.
What passing evidence looks like
Passing evidence shows every network control point conforming. The security-group/NSG/firewall signals are per-resource — each rule set is scored on multiple assertions — while the firewall/IDS signals are any-pass:
aws:security_groups— four assertions per group: no world-open inbound, no sensitive ports exposed, default groups have no inbound at all, and egress is not unrestricted.azure:network_security_groups— three assertions per NSG: no world-open inbound, no sensitive ports exposed, and at least one explicit outbound deny rule.gcp:firewall_rules— three assertions: no world-open ingress, no sensitive ports from the world, and explicitEGRESSrules present.aws:networkfirewall— an AWS Network Firewall is active (any-pass).azure:firewall— Azure Firewall is active in the subscription (any-pass).gcp:cloud_ids— Cloud IDS endpoints exist in the project (any-pass).
Evidence is refreshed on every connector scan; there is no manual-upload path for this KSI.
What an assessor may challenge
- A rule open to
0.0.0.0/0. One forgotten dev-access rule fails the world-inbound assertion for that group — the engine flags the specific rule set. - SSH or a database port exposed to the internet. The failing message names the exposed ports, which makes this the easiest finding for an assessor to independently confirm.
- Default security groups with inbound rules. AWS default SGs are supposed to be empty; anything inbound on them fails the deny-by-default assertion.
- Allow-all egress. Security groups with unrestricted outbound, NSGs with no explicit outbound deny, GCP networks with no egress rules at all — the outbound half of "limit inbound and outbound" is the one most estates skip.
- No firewall/IDS layer anywhere. None of AWS Network Firewall, Azure Firewall, or Cloud IDS deployed means the SI-8 leg has no evidence.
Official FedRAMP source
Verbatim from FedRAMP/rules
Machine-based information resources are persistently reviewed to ensure they are appropriately configured to limit inbound and outbound network traffic.
How Boundera handles this
Boundera evaluates KSI-CNA-RNT automatically and per-resource across all three clouds: aws:security_groups (four assertions each), azure:network_security_groups (three assertions each), and gcp:firewall_rules (three assertions each), plus the any-pass firewall/IDS signals aws:networkfirewall, azure:firewall, and gcp:cloud_ids. Every failing rule set is listed with the exact exposure — including which sensitive ports are open to the world. Your setup work is connecting the cloud accounts in your boundary. Request a demo to see KSI-CNA-RNT sweep your real security groups and firewall rules and surface every world-open or allow-all-egress rule it finds.
References
- FRMR rule definition:
data/fedramp-rules/fedramp-consolidated-rules.json(KSI.CNA.indicators["KSI-CNA-RNT"]) - NIST SP 800-53 Rev 5: AC-17(3), CA-9, CM-7(1), SC-7(5), SI-8
Content provenance
Official requirement text is sourced from FedRAMP/rules . Boundera implementation guidance has not been fully reviewed for this item.
Guidance authors: Eddy Agu.