Quando você aplica o modelo mais comum para usar Chef Client juntamente com Chef Server , o cliente precisa acessar o servidor. Você pode aplicar qualquer técnica de rede da VPN aos IPs de cliente da lista de permissões, mas o cliente (normalmente) faz o check-in regularmente.
Outra maneira seria usar Chef Zero (nos bons e velhos tempos as pessoas usavam Chef Solo para isso e você pode encontrar algumas postagens sobre isso). Dessa forma, você pode executar seus livros de receitas a partir do disco local (o da instância do EC2) ou IIRC diretamente de um URL HTTP, ou seja, S3.
O Chef não segue o modelo push , que permite configurar a instância de destino apenas por meio de uma conexão SSH. Se você realmente precisa disso, então Ansible pode ser o melhor ajuste para você.
No entanto, eu recomendo que você deixe seu Chef Server também funcionar na AWS - ou use diretamente o Chef oferecendo AWS OpsWorks .