She is very good at cooking.

Literal

She [topic-は] very cooking [subject-が] good-at is.

料理が上手 follows the 'X is good at Y' frame where the skill (cooking) takes が, not を, because 上手 is grammatically an adjective whose subject is the activity. Talking about yourself, Japanese speakers usually avoid 上手 (it sounds boastful) and prefer the humble 得意 or simply ~ができます; complimenting someone else, 上手 is fine and warm — the kind of compliment a host might offer a guest.