Ваш изначальный код верен, только следует не в том порядке. Так надо:
SetEnvIfNoCase User-Agent "^good-agent" yes_ag
Order Deny, Allow
deny from all
allow from env=yes_ag