Athena workgroup does not prevent disabling encryption
Description
You can configure settings at the workgroup level, enforce control over the workgroup. This only affects you if you run queries in the workgroup; if you do, workgroup settings are used.
If a query runs in a workgroups and the workgroup overrides client-side settings, Athena uses the workgroup's settings for encryption. It also overrides any other settings specified for the query in the console, by using API operations, or with drivers.
Fix - Runtime
CLI Command
Run the create-cluster command and use the encryption-info option to point to the file where you saved your configuration JSON.
aws kafka create-cluster
--cluster-name "ExampleClusterName"
--broker-node-group-info file://brokernodegroupinfo.json
--encryption-info file://encryptioninfo.json
--kafka-version "2.2.1"
--number-of-broker-nodes 3
Fix - Buildtime
Terraform
- Resource: aws_athena_workgroup
- Argument: enforce_workgroup_configuration - (Optional) Boolean whether the settings for the workgroup override client-side settings. For more information, see Workgroup Settings Override Client-Side Settings. Defaults to true.
```go aws_athena_workgroup.example.tf resource "aws_athena_workgroup" "example" { name = "example" ... configuration { enforce_workgroup_configuration = true publish_cloudwatch_metrics_enabled = true
result_configuration {
output_location = "s3://{aws_s3_bucket.example.bucket}/output/"
encryption_configuration {
encryption_option = "SSE_KMS"
kms_key_arn = aws_kms_key.example.arn
}
}
} }
## CloudFormation
- **Resource: ** AWS::Athena::WorkGroup
- **Argument:** Properties.WorkGroupConfiguration.EnforceWorkGroupConfiguration
```yaml
Resources:
MyAthenaWorkGroup:
Type: AWS::Athena::WorkGroup
Properties:
...
+ WorkGroupConfiguration:
+ EnforceWorkGroupConfiguration: true
...