[This answer needs to be refined to include the items raised by Jacinto in comments.]
From the two options you present, the [ng] one is the closest one.
But although it's a good and helpful approximation, it's not quite correct.
Listen directly to natives speaking it
You can listen to a few very good and distinct samples of diction in forvo:
NB: the one from "Bem1" is a Brazilian accent and not a Portuguese accent.
The most correct IPA notation for bem is probably /ˈbɐ̃j̃/.
I can't figure out how /'bẽ/ or /'bɘ̃/ are invalid; those were my initial guesses.
I was also inclined to add a velar nasal /ŋ/ at the end, but all online resources I found indicate that the nasalization with the /~/ is enough. 🤷
These are the different sources I found¹ for bem:
Unfortunately the online tool phoneme-synthesis only supports English, and isn't capable of processing /~/ (for /ɘ̃/ etc.), /ɘ/, or e; otherwise we could refine this.
Regarding -m endings
There are two groups of sounds for words ending in -m:
These are past-tense forms, for the 3rd person plural of the Perfect Past and the Pluperfect:
It has the same sound as -ão: /ɐ̃w/.
-em -im -om -um
These have a common ending to them, a nasalisation of the vowel.
This is represented with a nasalisation, which in IPA is done using a tilde on top of the previous vowel:
- Bem: /bẽ/;
- Sim: /sĩ/;
- Com: /cõ/;
- Pum: /pũ/.
¹ Found in Online Portuguese dictionary with IPA transcriptions