Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add GCP support #109

Open
ryan-lane opened this issue Jan 11, 2017 · 0 comments
Open

Add GCP support #109

ryan-lane opened this issue Jan 11, 2017 · 0 comments

Comments

@ryan-lane
Copy link
Contributor

With the addition of GCP's Cloud KMS API it should be possible to natively support Confidant in GCP. There's a few major differences between GCP's KMS and AWS's KMS, though:

  1. Though GCP's KMS support AAD through encrypt/decrypt, GCP's IAM does not support restricting access based on the AAD.
  2. GCP's KMS has no quota on the number of keys, just on the number of operations. Also, each key can have IAM policy attached to it.
  3. GCP's KMS has no random function.
  4. GCP's KMS does not support functions like create data key. To do envelope encryption it's necessary to generate random data from the VM's urandom, and then encrypt that random data. We can't seed urandom using KMS. It's possible the entropy will be lower in GCP.
  5. GCP's KMS does not have grants, but using a key per service would be analogous to how we use grants.

The differences between AWS's KMS and GCP's KMS mostly affect how we do service to service authentication. For service to service auth, we'd need to rely on a crypto key per service, rather than relying on encryption context for data on a single key. At-rest encryption should be possible with few modifications.

For data storage we'd need to support something other than DynamoDB. The likely replacement is datastore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant