IAM Role permissions for working with SSE-KMS

All IAM roles which need to read data encrypted with SSE-KMS must have the permissions to decrypt using the specific key the data was encrypted with: kms:Decrypt

All IAM roles which need to both read and write data need the encrypt and decrypt permissions (encrypt-only permission is not supported).

kms:Decrypt
kms:GenerateDatakey   
If a role does not have the permissions to read data, it will fail with an java.nio.AccessDeniedException.