Using S3 encryption
AWS S3 encryption requires additional permissions added to the IAM roles depending if read only or read/write access is needed.
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. All IAM roles which need to both read and write data need the encrypt and decrypt permissions (encrypt-only permission is not supported).
IAM role permissions for working with SSE-KMS
Depending on the type of access required, one of the two policies needs to be attached to the roles that access S3. From the examples above, these would be the following roles:
LOG_ROLE
RANGER_AUDIT_ROLE
DATALAKE_ADMIN_ROLE
DATAENG_ROLE
DATASCI_ROLE
Use the json below to create the necessary policies and attach them to the correct IAM roles for your environment.
aws-cdp-sse-kms-read-only-policy
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "kms:Decrypt",
"Resource": [
"${KEY_ARN}"
]
}
]
}
aws-cdp-sse-kms-read-write-policy
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey"
],
"Resource": [
"${KEY_ARN}"
]
}
]
}