In order to send data from Greengrass lambda to AWS IoT Core rules engine,we need to create a subscription with source as the Lambda and target as IoT Core.
Should lambda identify itself as an IoT device (thing, with credentials) to the IoT core via device sdk? Or is this optional and the lambda can alternatively send data to IoT Core directly using greengrass sdk?
Nope. The lambda doesn't have to be configured as a thing as long as it is part of the Greengrass group and is executed in the Greengrass core.
Checkout the AWS official docs on Subscriptions and it will help you understand further
Greengrass allows Subscriptions to and from 4 different options
Devices/Lambdas/Connectors/Services to other Devices/Lambdas/Connectors/Services
Publishing data to AWS IoT Core comes into the Services option as
IoT Cloud