Cow's response is the ideal way to do it and the only option before 2020 if you had to have an outdoor disconnect, most folks expect the service disconnect to be at the outdoor disconnect. It also has the fringe benefit of keeping the "main" panel as a feeder which provides simpler options for future solar/battery/generator load separation as your EGCs are already separated. It also allows the GECs from rods to stay outside (but out of the meter), which is nice in some circumstances.
However, in 2020, you have another option as this was added to 230.82 if you really wish to keep the service disconnect indoors (assuming that it is near the point of entrance ala 230.70(A)(1):
230.82 Equipment Connected to the Supply Side of Service Disconnect. Only the following equipment shall be permitted to be connected to the supply side of the service disconnecting means:
...
(10) Emergency disconnects in accordance with 230.85, if all metal housings and service enclosures are grounded in accordance with Part VII and bonded in accordance with Part V of Article 250.
If this is done, the new 230.85(3) stipulates that the outdoor disconnect be labeled EMERGENCY DISCONNECT, NOT SERVICE EQUIPMENT, as opposed to without the NOT in this case. The short circuit rating must meet the usual requirements and the neutral must also be bonded to the case and metal conduit in the usual fashions. The disconnect must be marked as permissible as service equipment by the mfgr. 250.130 is unchanged and requires the EGCs be bonded to the neutral in the service disconnect (indoor panel) in this case.
I assume this provision exists to make service upgrades easier, as you wouldn't have to separate neutrals from EGCs to add an outdoor disconnect, and can keep the grounded connectors indoors at this panel.
I don't really see any advantage in a not making the outdoor disconnect the service disconnection in a new service unless you want to use a MLO for cost reasons and your switch is an OCPD (which most are),
Would love to hear any thoughts on this or corrections on my understanding on this new code. Haven't actually seen this done.