I am building a Kinesis Firehose Delivery Stream that will stream into Redshift.
This process has an S3 bucket as an intermediary.
The Cloudformation docs for AWS::KinesisFirehose::DeliveryStream state that two required directives are User and Password for a user with INSERT privs into the Redshift cluster.
From here: https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-redshift
User name An Amazon Redshift user with permissions to access the Amazon Redshift cluster. This user must have the Amazon Redshift INSERT permission for copying data from the S3 bucket to the Amazon Redshift cluster
Should I create this user via Cloudformation? For example, an IAM user? How would an IAM user be granted INSERT permissions here? Also, when spinning up a Firehose stream in the console, the implication from the UI is that this is just a SQL user created with CREATE USER syntax.
So do I need to specify the username and password in the CF stack template, and then use "CREATE USER WITH PASSWORD " SQL directly on the RS cluster after it is up and running?
Doing it this way strikes me as a dependency problem with the stack. (Although there are plenty of things that CF can't do naturally, such as create Route53 records or upload a file into S3, so maybe there's precedent for this)
I can't find any clarification on this and I can't find any CF stack examples that actually use Redshift as a Kinesis Firehose destination.