c3f1043c24
This changes the behavior of the GCPCKMS auto-unsealer setup to attempt encryption instead of a key lookup. Key lookups are a different API method not covered by roles/cloudkms.cryptoKeyEncrypterDecrypter. This means users must grant an extended scope to their service account (granting the ability to read key data) which only seems to be used to validate the existence of the key. Worse, the only roles that include this permission are overly verbose (e.g. roles/viewer which gives readonly access to everything in the project and roles/cloudkms.admin which gives full control over all key operations). This leaves the user stuck between choosing to create a custom IAM role (which isn't fun) or grant overly broad permissions. By changing to an encrypt call, we get better verification of the unseal permissions and users can reduce scope to a single role. |
||
---|---|---|
.. | ||
alicloudkms | ||
awskms | ||
azurekeyvault | ||
gcpckms | ||
envelope.go | ||
envelope_test.go | ||
seal.go | ||
seal_testing.go |