Synthetic Keys are always not bad thing to have. Although, as a rule you should avoid them and work on your model. You can use Hash128() and Autonumber() functions to build concatenated field keys. These functions are less rescource consuming.
Just as Deepak indicates in his last post, synthetic keys are not always bad. Rather, you should ask yourself "Do I want two keys between these two tables?".
If yes, then you could leave it as it is or create a composite key with Hash128(Key1 & Key2) or Autonumber(Key1 & Key2). Either way, it will improve the data model. (If the synthetic affects3 tables, a composite key may be necessary.)
But if you don't want two keys, one of the keys should be removed by renaming a field.