Amazon SageMaker is a managed machine learning service in a hosted production-ready environment. To train machine learning models, SageMaker
instances can process potentially sensitive data, such as personal information that should not be stored unencrypted. In the event that adversaries
physically access the storage media, they cannot decrypt encrypted data.
Ask Yourself Whether
- The instance 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 SageMaker notebook instances that contain sensitive information. Encryption and decryption are handled transparently by
SageMaker, so no further modifications to the application are necessary.
Sensitive Code Example
For aws_sagemaker_notebook_instance:
resource "aws_sagemaker_notebook_instance" "notebook" { # Sensitive, encryption disabled by default
}
Compliant Solution
For aws_sagemaker_notebook_instance:
resource "aws_sagemaker_notebook_instance" "notebook" {
kms_key_id = aws_kms_key.enc_key.key_id
}
See