dward
Joined 13 years ago
Joined 13 years ago
GCP Network has built in DoS mitigation as well (e.g. in the load balancing layer) so you get some protection from that for free.
https://cloud.google.com/iap/docs/using-tcp-forwarding#tunne...
For connecting VMs without public IPs to the outside world, Cloud NAT is the easiest answer. You could set one up yourself if you were so inclined (e.g. some forwarding rules and iptables rules on the bastion).
For ssh key distribution, there's a few options. You can store the key in Secret Manager and run your GCE VMs as a service account that has access to the key, then fetch it when pulling.
https://cloud.google.com/secret-manager/docs/
Something like:
$ ssh-add <(gcloud beta secrets versions access latest --secret=github-ssh-key)
On startup. I haven't actually tried out secret manager yet.
If you have too much time on your hands, you could rig something up with GCE vTPMs as well :)
https://cloud.google.com/blog/products/gcp/virtual-trusted-p...
* They know when they can serve 0RTT from their cache safely because they can be reasonably certain if handling a cached request is side effect free.
* If connections to backend origins are reasonably persistent, there's not much latency reduction benefit from 0RTT compared to connections from consumer user agents.
https://github.com/golang/go/blob/541f9c0345d4ec52d9f4be5913...
https://cs.nyu.edu/media/publications/TR2013-962.pdf
It’s pretty unweildy compared to HMAC construction because:
* each caveat addition requires local generation of a new asymmetric key pair
* the size of the macaroon grows linearly with the number of caveats. Each new caveat concatenates two asymmetric signatures to the append only signature. Each new caveat adds a public key to the macaroon ID.
* it requires a finalize step for security, meaning the final macaroon extender needs to know it’s the final extender.
It sounded rather impractical but I wouldn’t be surprised if improvements have been made since then.