When using aws-s3:bucket-name-goes-here it is necessary to specify which bean in the Spring application context is used with the ?amazonS3Client=#amazonS3Client query string parameter. If a single bean of this type exists in the Spring application context, then it shouldn't be necessary to specify the query string parameter.
Furthermore, it should be looking for a bean of type AmazonS3 (interface) instead of AmazonS3Client (concrete class).
I haven't looked at the other AWS Camel Components, but if they can also find a bean w/ the correct interface type in the Spring application context, then specifying the name as a query string parameter shouldn't be required.
aws-kinesis should look for AmazonKinesis instead of AmazonKinesisClient, etc.