DAS-C01 · Question #3
A mortgage company has a microservice for accepting payments. This microservice uses the Amazon DynamoDB encryption client with AWS KMS managed keys to encrypt the sensitive data before writing the…
The correct answer is B. Create an AWS Lambda function to process the DynamoDB stream. To make client-side encrypted DynamoDB data available in Redshift for aggregation, a Lambda function can process the DynamoDB stream, decrypting the data before loading it into Redshift. This approach efficiently and securely handles the continuous data flow and decryption…
Question
A mortgage company has a microservice for accepting payments. This microservice uses the Amazon DynamoDB encryption client with AWS KMS managed keys to encrypt the sensitive data before writing the data to DynamoDB. The finance team should be able to load this data into Amazon Redshift and aggregate the values within the sensitive fields. The Amazon Redshift cluster is shared with other data analysts from different business units. Which steps should a data analyst take to accomplish this task efficiently and securely?
Options
- ACreate an AWS Lambda function to process the DynamoDB stream. Decrypt the sensitive data
- BCreate an AWS Lambda function to process the DynamoDB stream.
- CCreate an Amazon EMR cluster with an EMR_EC2_DefaultRole role that has access to the KMS
- DCreate an Amazon EMR cluster. Create Apache Hive tables that reference the data stored in
How the community answered
(46 responses)- A22% (10)
- B59% (27)
- C13% (6)
- D7% (3)
Why each option
To make client-side encrypted DynamoDB data available in Redshift for aggregation, a Lambda function can process the DynamoDB stream, decrypting the data before loading it into Redshift. This approach efficiently and securely handles the continuous data flow and decryption requirements.
While decryption is a necessary part of the process, stating it as a separate step after creating the Lambda function is redundant; decryption is an integral part of the 'processing' that the Lambda function would perform. The Lambda function, if correctly implemented, would encapsulate the decryption logic within its code.
An AWS Lambda function can be configured to subscribe to a DynamoDB stream, capture real-time item-level changes, and apply custom processing logic. For data encrypted with the DynamoDB encryption client, the Lambda function can be equipped with the necessary KMS permissions and client library to decrypt the sensitive data before transforming and loading it into Amazon Redshift, thus making it available for aggregation.
Amazon EMR is typically used for large-scale batch processing and analytics, not for real-time or near real-time stream processing from DynamoDB. While EMR can access KMS, it's not the most efficient or common solution for continuously ingesting and transforming a DynamoDB stream into Redshift.
Similar to option C, Amazon EMR is primarily a batch processing framework. Creating Apache Hive tables references data in S3 but doesn't address the real-time decryption and loading into Amazon Redshift from a DynamoDB stream, which is the core requirement for efficiency and security with client-side encrypted data.
Concept tested: Real-time stream processing and decryption of DynamoDB data
Source: https://aws.amazon.com/blogs/database/using-aws-lambda-with-amazon-dynamodb-streams/
Topics
Community Discussion
No community discussion yet for this question.