And this is the old trick: judging one side by absolutist morals, and then claiming SOME portion of the other side was innocent. Obviously, this is a fallacy and not a reasonable way to judge the morals of an action.
In reality, of course, nearly everyone the Iranian government attacks is totally innocent, and that's 100% intentional on their part. From toddlers in Argentina to Metro goers in Brussels. In Brussels, in an Iranian organized terror attack the guy put 5 bullets in a baby in a child carriage, waiting to shoot the mother (she survived, by the way) until she collapsed to the ground. THAT is who is being targeted here. That was not an accident.
That's one side, and the other side ... makes mistakes.
Clearly, the moral problem here is a mistake by the other side. Clearly THAT's the problem that needs to be solved.
Removing an evil actor requires, frankly, evil actions. Any real moral system will allow for that. Have you ever been to Dresden? What happened there is far worse than even Hiroshima. There's a shelter you can visit there, with a book like in Lord of the rings. It is open to a partially burnt page with the text that people were panicking when the wind drew fire into the shelter during the bombing. People caught on fire, put it out in panic, and it would immediately catch on fire again. Then those people collapsed. The text ... ends there, with spilled ink. There are 2 child carriages in that basement.
This action is considered morally justified, even by the survivors at the time, despite the fact that it didn't even achieve it's military objectives (the factories it targeted weren't destroyed, the city center was, and the aircraft factories, the main target, had stopped producing for lack of inputs months before the attack started)
Both historically and in moral source texts you will find people give enormous moral leeway to actions meant to save others. To remove an evil actor. That is even the case when they cause incredible damage.