Ministers should have taken steps to protect the country from the volatility of energy prices caused by the Iran war, it says in a new report.