As often, "it depends". If there are only a few CSV files that don't change and your app has only read-only access, you could deploy them with your code. Of course, the only way to update/change those CSV files would be by redeploying your app.
If you want to dynamically write into the CSV files or create new files at runtime, you must choose a different solution. As you mentioned, Cloud Storage is a very reasonable choice. Easy read/write access for your GAE app or other clients / services. You can even load these files directly and fast into things like Big Query or ML APIs, or when you need to prepare / massage the data via Pub Sub and Data Flow.
Alternative solution could be Google Drive, basically the same but higher level, requires Google or G Suite account for access, is eventually slower for BQ and other parts in GCP, but it has mobile apps and a web user-interface to upload/download CSV files, and desktop sync apps for Windows and Mac. If the CSV has less than 2 million cells you could store the values as Google Sheet file in Drive instead of CSV (e.g. a user adds rows using a web-browser or mobile app, Google Apps Script copies data from another source etc.), and easily convert the data to CSV when needed. If the original data is already in G Suite and/or you are doing a lot of things in G Suite, Drive/Sheet might be your preferable solution. If not, I would think that Cloud Storage is more suitable (and scalable).