【正解】B
【0からの解説】
アカウントレベルでパブリックアクセスがブロックされている S3 バケットの中身を、Web サイト利用者に配信したい場合の AWS 標準パターンが「CloudFront + オリジンアクセスコントロール(OAC)」です。CloudFront をバケットの前に置き、バケットポリシーで「この CloudFront ディストリビューションからのアクセスだけ許可する」と設定します。これにより、S3 のパブリックアクセスはブロックしたまま、利用者は CloudFront 経由でファイルをダウンロードできます。一度設定すれば運用は自動化され、サーバー(EC2)の管理も不要なので、管理作業が最も少なくなります。
【誤りの選択肢】
A:従業員が手作業で PDF を EC2 にダウンロードして利用者に配布する、という運用は管理作業が極めて大きく、自動化されていません。最少労力という要件に反します。
B はサーバーレスかつ AWS 推奨の構成で、パブリックアクセスブロックを維持したまま配信でき、管理作業が最小です。
C:パブリックアクセスを許可するのは要件(アカウントレベルでブロック)に明確に反しており、セキュリティ上も不適切です。
D:EC2 と署名付き URL の仕組みを自前で構築・運用する必要があり、サーバー管理・コードの保守が発生します。CloudFront + OAC に比べて管理作業が多くなります。
※補足:Most Voted は D ですが、D は EC2 サーバーの構築・運用が伴い管理作業が大きいのに対し、CloudFront + OAC(B)はパブリックアクセスブロックを維持しつつサーバーレスで配信でき、AWS が公式に推奨する「最少労力」の構成のため B を正解とします。
【参考】
CloudFront のオリジンアクセスコントロール(OAC)による S3 オリジンへのアクセス制限Amazon S3 のブロックパブリックアクセス