É uma boa ideia fazer as duas coisas.
Embora você possa pensar,
I've secured the stack via AWS security groups, there's no point in doing it again at the application level.
... aqui estão algumas coisas a serem consideradas:
- A AWS pode experimentar um bug ou uma vulnerabilidade que permite o acesso onde não deveria
- Você pode remover ou alterar acidentalmente uma regra do grupo de segurança
- Você deseja regras gerais no nível do grupo de segurança, mas regras mais específicas por usuário do mysql
Você pode considerar restringir o acesso no extermínio no nível do mysql e sobrecarregar muito a manutenção. No final do dia, cabe a você decidir se a segurança adicional vale o trabalho extra.