ブラウザ側の指定を上書きできるかつ、最小 TTL (Minimum TTL) を 0 にしたらキャッシュ無効だと思っていた。 けど単純にそうじゃない?
https://pages.awscloud.com/rs/112-TZM-766/images/20190730_AWS-BlackBelt_Amazon_CloudFront.pdf
キャッシュ動作: キャッシュコントロールヘッダー ページを見るとマトリクスっぽく色々書いてあるんだけど、まあ見づらいしよくわからねえ。
とはいえ、オリジン側で no-cache を明示的に書かない限り、ブラウザと Cloudfront で小さい方の値を採用するっぽいので、最小 TTL は 0 にしておいて、オリジン (ブラウザ) 側で記述するなりしてコントロールするのがよさそう。
本番投入するなら、最小 TTL 0 or 60、最大 TTL 86400 とかあたりがいいんかな。 相変わらずキャッシュコントロールの戦略は (対象の参照頻度の都合もあって) よくわからん。