Prime Minister Keir Starmer has vowed not to be dragged into the war with Iran, but his government described its new position as essentially defensive.