If you want a legally enforceable instrument, you should create an irrevocable trust with yourself named as the trustee, and your friend named as the beneficiary.
There are no custodial accounts for competent adults, so if you put a savings account in her name, she can go to the branch show an ID and withdraw everything no matter how you set it up. You could certainly make such an arrangement less convenient for withdrawals by destroying/confiscating ATM cards and checks, but in the end, it will come down to the honor system. This is the simplest solution as long as there is enough basis for trust that your friend will honor the agreement to not withdraw from her account without your "blessing". With trustworthy adults this could be a very beneficial arrangement, because you are providing the emotional support needed to help someone think through saving and spending.
You could create a separate savings account in your own name, which, though you can enforce withdrawals only by permission, collecting money from her and gifting it back can have tax complications. You will owe taxes for the rent you collect if you are collecting this as rent, if you never intend to spend this money, it will still be hard to explain to an auditor that this isn't actually rent. You will owe taxes for the interest earned in the account in your name (probably negligible). When you return the money as a gift, amounts over $15k/year will reduce your estate tax exemption. For these reasons, it will probably be less expensive to use the irrevocable trust, even though you have some setup costs upfront. Your friend should pay the setup costs and any maintenance fees.