Jeremy Cooper [AFS MBP] 50c459706b Updates tfsec & checkov ignores + syntax updates 3 years ago
..
files fcbbf44e47 Updates VPN Connection Handler to Dump Anybody's Multiple Connections 3 years ago
README.md 5d16b37ade Archives the Cisco VPN Module; Unarchives the AWS VPN Module for Another Look 3 years ago
auth.tf baa1f43824 Applied `terraform fmt` to all modules 3 years ago
certificate.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago
cloudwatch.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago
constants.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago
dns_info.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago
globals.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago
lambda.tf 50c459706b Updates tfsec & checkov ignores + syntax updates 3 years ago
outputs.tf baa1f43824 Applied `terraform fmt` to all modules 3 years ago
saml.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago
security-groups.tf 50c459706b Updates tfsec & checkov ignores + syntax updates 3 years ago
terragrunt.hcl.example 5d16b37ade Archives the Cisco VPN Module; Unarchives the AWS VPN Module for Another Look 3 years ago
vars.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago
vpn.tf 7a08ba10cf Migrated most variables out of xdr-terraform-live and into xdr-terraform-modules 3 years ago

README.md

AWS Client VPN

Users must download the client vpn: https://aws.amazon.com/vpn/client-vpn-download/

They must be provided with the configuration file which can be downloaded from vpc->client VPN endpoints in the aws console (same for every user, and a self-service portal is possible but not set up in this).

Findings:

Pros:

  • SAML works great, meaning we could use either RHSSO or Okta and easily move from one to thte other or two a different IdP
  • Pricing seems reasonable. Base price of $0.10/hour for the VPN + $0.05/hour per connection.
  • The ability to write a lambda function to handle connections gives us some great flexibility to handle connection-related requirements (e.g. only 2 concurrent connections)

Cons:

  • It requires an OpenVPN client that support “auth-federate”, which does not include viscosity. (But aws has a free client themselves for OS X, Windows, and Ubuntu, and the community openvpn client should work)
  • It does not appear to play nice with zScalar. We may be able to work with their team to allow it to work, but uncertain.
  • It does not have a lot of flexibility. Configuration is bare minimum: networks, split tunneling, and DNS servers. I suspect we have FedRAMP requirements we’d be unable to meet. With some ingenuity, some of it could be addressed via the connection handler and/or lambda functions.

Summary/Conclusion

That last bullet, I think, is a big strike against this as a VPN solution to solve the split tunneling issue. For example, there’s no idle timeout setting (which is an absolutely absurd setting to have on a non-split-tunneled vpn, btw), and the current AWS response is basically, “Write a lambda function to disconnect users after a time period.” I admire the flexibility (“just write some python”) but also hate the complexity of it (“just maintain some python somebody else wrote.”).