I am just setting up ISPConfig for the first time using Apache2 on Ubuntu in AWS. I set up a client, gave them a password, ssh key, etc. I can successfully ssh and sudo with that user. However, the user does not have ls access within the web folder, so sftp access is not working for that user to be able to maintain the site. What did I do wrong?
You seem to mix up ISPConfig UI and Linux system users here. Clients in ISPConfig are for the ISPConfig UI only, there are no client SSH users at all, the 'clientX' in the path is a folder name and the client exists as Linux group in the system. ISPConfig has SSH users for websites, you add them by creating an ssh user in the sites module. An SSH user has access to the website it belongs to. After login by ssh, you end up in the home folder of that user, to go to the 'web' folder, you use: cd ../../web