Skip to content

A basic example of implementing Zero Trust at the single system level.

Notifications You must be signed in to change notification settings

PHACDataHub/zta-system-pattern

Repository files navigation

Zero Trust Architecture Pattern

This is pathfinder project that is aiming to establish the first (but not only) architectural pattern for PHAC systems. All code embeds opinions and this code is no different. What you see here is opinionated take on ZT (at least at the system level), that is optimizing for high levels of security, compatibility with TBS policy and low operational burden.

Prominent disclaimer: this is exploratory work and not yet fit for real world usage. Much of it does't work right yet, but it's useful to drive architectural and security discussions.

TODO:

  • Fix hardcode IP in kustomization.yaml
  • Debug why the helloworld service isn't reachable with curl

Dependencies

You'll need a few different tools available in your path for this to work.

Trying it

At the moment this is driven by a makefile in the root of the project. You'll need to update the variables like project at the top of the Makefile to work for your project, but afterwards you can get a "working" cluster with the following commands:

# One time project setup:
# Enable the needed services
make enabled
# Reserve an ip for use by the ingress gateway
make ip

# Cluster setup:
# Create a GKE autopilot cluster
make cluster
# Add the cluster to an Anthos Fleet
make fleet
# install the base Anthos Service Mesh (requires asmcli)
make asm
# Install our "hello world" example app and the config for Istio
# (N.B.: update kustomization.yaml to add the ip you created earlier)
make apply

# Stretch goal! DNS + Certs from Let's encrypt!
# Create zones. Assumes delegation of an alpha.canada.ca subdomain
# See: https://github.com/cds-snc/dns/pull/314/files
make dns
# create workload identity accounts needed to complete DNS-01 challenge
make dns-solver-service-account
# install certmanager (uses the accounts and completes the challenge)
make certmanager

About

A basic example of implementing Zero Trust at the single system level.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •