Q29 — AWS SAP-C02 第3章

第 29/75 問 | ← 第3章

Q254. ある企業には、レポートを生成してAmazon S3バケットに保存するアプリケーションがあります。ユーザーが自身のレポートにアクセスすると、アプリケーションは署名付きURLを生成し、ユーザーがそのレポートをダウンロードできるようにします。同社のセキュリティチームは、これらのファイルがパブリック状態であり、認証なしで誰でもダウンロードできることを発見しました。この問題が解決されるまで、同社は新規レポートの生成を一時停止しています。 このセキュリティ問題を、アプリケーションの通常のワークフローに影響を与えることなく、即座に是正するための措置の組み合わせはどれですか?

正解: D. Amazon S3の「Block Public Access(パブリックアクセスのブロック)」機能を使用し、バケットに対してIgnorePublicAclsオプションをTRUEに設定する。

解説

新規レポートの生成が一時停止されているため、セキュリティ問題を即座に是正することが不可欠です。「Block Public Access」機能は、S3バケットおよびそのコンテンツへのパブリックアクセスを防止するために使用できます。この機能を有効化すると、パブリックアクセスを許可する既存のバケットポリシーやオブジェクトのアクセス許可が上書きされます。バケットに対してIgnorePublicAclsオプションをTRUEに設定することで、ACL経由で付与されたパブリックアクセスがブロックされます。この解決策は、アプリケーションの通常のワークフローに一切影響を与えることなく、即座にセキュリティ問題を是正します。 選択肢Aは、認証されていないユーザーに対して「すべて拒否」ポリシーを適用するLambda関数の作成を提案していますが、この方法は正しく実装されない場合、アプリケーションの通常のワークフローに影響を及ぼす可能性があります。 選択肢Bは、AWS Trusted Advisorのバケット権限チェックを確認し、推奨される対応策を実施することを提案していますが、その推奨内容が明確ではなく、また本件の問題を必ずしも解決するとは限りません。 選択肢Cは、バケット内のすべてのオブジェクトにプライベートACLを設定するスクリプトの実行を提案していますが、これは時間がかかる処理であり、実行中はアプリケーションの通常のワークフローに影響を及ぼす可能性があります。 署名付きURLの目的は、プライベートなバケットまたはオブジェクトに対して、認証不要で一時的なアクセスを許可することです。したがって、誰でもバケットにアクセスできてしまうということは、バケットまたはそのオブジェクトにパブリックACLが付与されていることを意味し、これをブロックするにはIgnorePublicAcls設定を利用する必要があります。