Amazon Elastic File System (EFS) is a serverless file system that does not require provisioning or managing storage. Stored files can be
automatically encrypted by the service. In the case that adversaries gain physical access to the storage medium or otherwise leak a message they are
not able to access the data.
Ask Yourself Whether
- The file system contains sensitive data that could cause harm when leaked.
- There are compliance requirements for the service to store data encrypted.
There is a risk if you answered yes to any of those questions.
Recommended Secure Coding Practices
It’s recommended to encrypt EFS file systems that contain sensitive information. Encryption and decryption are handled transparently by EFS, so no
further modifications to the application are necessary.
Sensitive Code Example
For aws_cdk.aws_efs.FileSystem
import { FileSystem } from 'aws-cdk-lib/aws-efs';
new FileSystem(this, 'unencrypted-explicit', {
vpc: new Vpc(this, 'VPC'),
encrypted: false // Sensitive
});
For aws_cdk.aws_efs.CfnFileSystem
import { CfnFileSystem } from 'aws-cdk-lib/aws-efs';
new CfnFileSystem(this, 'unencrypted-implicit-cfn', {
}); // Sensitive as encryption is disabled by default
Compliant Solution
For aws_cdk.aws_efs.FileSystem
import { FileSystem } from 'aws-cdk-lib/aws-efs';
new FileSystem(this, 'encrypted-explicit', {
vpc: new Vpc(this, 'VPC'),
encrypted: true
});
For aws_cdk.aws_efs.CfnFileSystem
import { CfnFileSystem } from 'aws-cdk-lib/aws-efs';
new CfnFileSystem(this, 'encrypted-explicit-cfn', {
encrypted: true
});
See