title: Why is the userIdentity property always empty in AWS’ Kinesis DataStream?
body: <p>I have enabled Kinesis DataStream in DynamoDB and have configured a Delivery Stream to store the stream as audit logs into an s3 bucket.</p>
  <p>I then query the s3 bucket from Amazon Athena.</p>
  <p>Everything seems to be working, but the userIdentity property is always empty (null) which seems pointless to me to have an audit if I cannot capture who did the transaction. Is this property only populated when a record is deleted from DynamoDB and TTL is enabled?</p>
  <p>Questions:</p>
  <ol>
  <li>How do I capture the user id / name of the user responsible for adding, updating, or deleting a record via the application or directly via DynamoDB in AWS console?</li>
  <li>(Less important question) How do I format the stream before it hits the s3 bucket so I can include the record id being updated?</li>
  </ol>
  <p>Also please note that I have a lambda function that I use from the Delivery Stream that simply adds new line to each stream as a delimeter. If I wanted to do more processing/formatting to the stream, should I be executing this lambda when the stream hits the DeliveryStream? Or should I be executing this as a trigger in the DynamoDB table itself before it hits the DeliveryStream?</p>