Remediation
Associate an EMR Cluster with a Security Configurationβ
Amazon EMR security configurations define encryption settings for data at rest and data in transit, as well as other security controls such as Kerberos authentication. Ensure that all new clusters are launched with a security configuration applied.
Note: Security configurations cannot be applied to an existing cluster after it is launched. This remediation applies only to new clusters.
From Command Lineβ
-
Create or identify an existing security configuration:
aws emr list-security-configurationsaws emr create-security-configuration --name "{{security-config}}" --security-configuration '{
"EncryptionConfiguration": {
"EnableInTransitEncryption": true,
"EnableAtRestEncryption": true,
"InTransitEncryptionConfiguration": {
"TLSCertificateConfiguration": {
"CertificateProviderType": "PEM",
"S3Object": "arn:aws:s3:::{{MyConfigStore}}/{{artifacts}}/{{MyCerts}}.zip"
}
},
"AtRestEncryptionConfiguration": {
"S3EncryptionConfiguration": {
"EncryptionMode": "SSE-KMS",
"AwsKmsKey": "{{kms-key-arn}}"
},
"LocalDiskEncryptionConfiguration": {
"EncryptionKeyProviderType": "AwsKms",
"AwsKmsKey": "{{kms-key-arn}}"
}
}
}
}' -
Launch a new EMR cluster with the security configuration applied:
aws emr create-cluster \
--name {{cluster-name}} \
--release-label {{emr-version}} \
--security-configuration {{security-config-name}} \
# ... other properties
Using AWS CloudFormationβ
Set the SecurityConfiguration property in the AWS::EMR::Cluster resource:
Resources:
MyEmrCluster:
Type: AWS::EMR::Cluster
Properties:
Name: {{cluster-name}}
ReleaseLabel: {{emr-version}}
SecurityConfiguration: {{security-config}}
# ... other properties
Considerationsβ
- Standardized Security Configurations: Maintain a centralized, pre-approved security configuration for consistency across all clusters.
- Encryption Compliance: Verify that encryption settings meet organizational and regulatory requirements for both data at rest and in transit.