MetPX / sarracenia

https://MetPX.github.io/sarracenia
GNU General Public License v2.0
44 stars 22 forks source link

Enterprise networks, zoning, multi-hop data request/reply #736

Open petersilva opened 1 year ago

petersilva commented 1 year ago

Enterprise Environments

Enterprise networks have multiple zones (using Canadian Government terminology see reading list at end), and having a single data service crossing zone interface points makes every application and exception to security architecture. To implement data flows that comply fully with security zones, without requiring exceptions, one must implement zone interface points, which perform requisite inspection and authentication at each one.

Sarracenia networks implement meteorological real-time networks that supply data to multiple network zones. Each data pump in a Sarracenia network is sovereign over it's authentication mechanism, and takes responsibility for letting data into the zone into which it is deployed. Sarracenia pumps naturally are placed at zone interface points, and customized scanning can be implemented at each one, as appropriate for the needs of the zone being entered.

Serving network zones

Zones in Practice

So in a typical sample environment, one might have an critical operations restricted zone (RZ), which has an interface with a normal business operations zone (OZ), and an internet facing zone to feed clients and partners (PAZ.)

So the RZ is the source of authoritative versions of data, but most business is not 24x7 mission critical, so it needs to feed the other zones. We don't want excessive uses in the other zones to affect the RZ services. If you have a cloud deployments, it will be external to even those zones... let's call an external zone... intended to be completely external to an enterprise's networks (EZ)

In this kind of plan, there will be Sarracenia pumps to serve all three zones ( for ECCC: ddsr/dsr==RZ, ddi/goc-dx->OZ, dd/hpfx->PAZ) RZ feeds both OZ and PAZ... most internal users are in the OZ and use that zones pumps, most external users are using the PAZ pumps. EZ users have access to the PAZ pumps.

Note that users in the OZ and EZ do not have acces to RZ pumps. So the way to publish data is:

The data is obtained by the authoritative RZ pump(s). it is then duplicated on the OZ and (potentially) PAZ pumps. PAZ pumps do not have access to OZ or RZ data unless it is specifically published by those zones.

The Problem

We have a current requirement where there is a wish to deploy jupyter networks that access data from the RZ.

The jupyter network is expected to be deployable in any network zone (OZ, PAZ, or EZ) note that, from an EZ

To get data from EZ:

What is new here?

sr3 can pass messages around, but they have so far been messages about files that exist. the connections between pumps are expected to be pre-established flows. The need here is for ad-hoc RPC-style data requests. Things that are missing from sr3 today:

It is like a kind of file system API, but with client and server separated by a number of hops.

background reading

Terminology, and Canadian Standards for Zoning: https://www.cyber.gc.ca/en/guidance/network-security-zoning-design-considerations-placement-services-within-zones-itsg-38

petersilva commented 1 year ago

543 - nop messages is a pre-requisite for this.