pr.tf (added)
resource "aws_vpc_security_group_ingress_rule" "cde_ssh_from_corp" {
security_group_id = aws_security_group.cde.id
cidr_ipv4 = local.subnets.corp.cidr
ip_protocol = "tcp"
from_port = 22
to_port = 22
}
resource "aws_network_acl_rule" "cde_in_corp_ssh" {
network_acl_id = aws_network_acl.cde.id
rule_number = 110
egress = false
protocol = "tcp"
rule_action = "allow"
cidr_block = local.subnets.corp.cidr
from_port = 22
to_port = 22
}cordon.yaml
boundaries:
cde:
select: { tags: { zone: cde } }
corp:
select: { tags: { zone: corp } }
components:
app:
select: { tags: { zone: app } }
web:
select: { tags: { zone: web } }
properties:
- isolated: { a: corp, b: cde }
- no_path: { from: cde, to: internet }
trust:
assume_uncompromised: [app, web]# cordon verify — PROVEN | 1 | ` isolated ` | ` cde `, ` corp ` | PROVEN | PROVEN | none | | 2 | ` no_path ` | ` cde ` | PROVEN | PROVEN | none |
# cordon verify — VIOLATED | 1 | ` isolated ` | ` cde `, ` corp ` | VIOLATED | VIOLATED | none | | 2 | ` no_path ` | ` cde ` | ` UNKNOWN (model: PROVEN; pending A-FLOWS-NEW-ONLY@1, A-NO-RUNTIME-NET-MUTATION@1) ` | PROVEN | UNACCEPTED\_ASSUMPTIONS | **Attack path** (strength must, origin ` boundary `, service port ` tcp/22 `, 1 cells): 1. sends ` aws_instance.corp ` — rule ` R-EMIT-AI `, ENI ` eni0 ` 2. security group allows egress ` aws_vpc_security_group_egress_rule.corp_any ` — rule ` R-SGOUT ` 3. NACL allows outbound ` nacl:default(aws_vpc.pci):egress#100 ` — rule ` R-LOCAL ` 4. routes via ` aws_route_table.private:local[0] ` — rule ` R-LOCAL ` 5. NACL allows inbound ` aws_network_acl_rule.cde_in_corp_ssh ` — rule ` R-LOCAL ` 6. security group allows ingress ` aws_vpc_security_group_ingress_rule.cde_ssh_from_corp ` — rule ` R-DELIV-INIT ` 7. delivered to ` aws_instance.cde[0] ` — rule ` R-DELIV-INIT `, ENI ` eni0 `, address ` addr(eni:aws_instance.cde[0]#eni0) ` 8. responds (tracked connection) ` aws_instance.cde[0] ` — rule ` R-RESP-B `, ENI ` eni0 ` 9. NACL allows outbound ` aws_network_acl_rule.cde_out_corp ` — rule ` R-LOCAL ` 10. routes via ` aws_route_table.private:local[0] ` — rule ` R-LOCAL ` 11. NACL allows inbound ` nacl:default(aws_vpc.pci):ingress#100 ` — rule ` R-LOCAL ` 12. delivered to ` aws_instance.corp ` — rule ` R-DELIV-RESP-EX `, ENI ` eni0 `, address ` addr(eni:aws_instance.corp#eni0) `