2017-09-23 22:02:18 +02:00
# Security
Typhoon aims to be minimal and secure. We're running it ourselves after all.
2017-10-02 06:38:52 +02:00
## Overview
**Kubernetes**
* etcd with peer-to-peer and client-auth TLS
* Generated kubelet TLS certificates and `kubeconfig` (365 days)
* [Role-Based Access Control ](https://kubernetes.io/docs/admin/authorization/rbac/ ) is enabled. Apps must define RBAC policies
* Workloads run on worker nodes only, unless they tolerate the master taint
2018-10-03 16:46:51 +02:00
* Kubernetes [Network Policy ](https://kubernetes.io/docs/concepts/services-networking/network-policies/ ) and Calico [NetworkPolicy ](https://docs.projectcalico.org/latest/reference/calicoctl/resources/networkpolicy ) support [^1]
2017-10-02 06:38:52 +02:00
2018-08-27 08:39:41 +02:00
[^1]: Requires `networking = "calico"` . Calico is the default on AWS, bare-metal, and Google Cloud. Azure and Digital Ocean are limited to `networking = "flannel"` .
2017-10-02 06:38:52 +02:00
**Hosts**
* Container Linux auto-updates are enabled
* Hosts limit logins to SSH key-based auth (user "core")
**Platform**
* Cloud firewalls limit access to ssh, kube-apiserver, and ingress
* No cluster credentials are stored in Matchbox (used for bare-metal)
* No cluster credentials are stored in Digital Ocean metadata
* Cluster credentials are stored in AWS metadata (for ASGs)
2018-08-27 08:39:41 +02:00
* Cluster credentials are stored in Azure metadata (for scale sets)
* Cluster credentials are stored in Google Cloud metadata (for managed instance groups)
2017-10-02 06:38:52 +02:00
* No account credentials are available to Digital Ocean droplets
2018-08-27 08:39:41 +02:00
* No account credentials are available to AWS EC2 instances (no IAM permissions)
* No account credentials are available to Azure instances (no IAM permissions)
* No account credentials are available to Google Cloud instances (no IAM permissions)
2017-10-02 06:38:52 +02:00
## Precautions
Typhoon limits exposure to many security threats, but it is not a silver bullet. As usual,
* Do not run untrusted images or accept manifests from strangers
* Do not give untrusted users a shell behind your firewall
* Define network policies for your namespaces
## OpenPGP Signing
2017-09-23 22:02:18 +02:00
2019-06-20 07:21:58 +02:00
Typhoon uses upstream container images and binaries. We do not distribute artifacts of our own. If you find artifacts claiming to be from Typhoon, please send a note.
2017-09-23 22:02:18 +02:00
## Disclosures
2017-10-02 06:38:52 +02:00
If you find security issues, please email dghubble at gmail. If the issue lies in upstream Kubernetes, please inform upstream Kubernetes as well.
2017-09-23 22:02:18 +02:00