DVAセキュリティ
モバイルアプリケーションのユーザーが、各自のデバイスからAmazon S3バケットに対して直接アバター画像をアップロードできるようにする要件があります。IAMアクセスキーをモバイルアプリに埋め込むことなく、アップロードごとに15分間の有効期限付きで安全にアクセス権限を付与する最も適切なアーキテクチャはどれですか。
AAWS STSのGetSessionToken APIを利用して一時的なアクセスキーを取得し、それをクライアントに提供する。
STSで一時クレデンシャルを渡すことも可能ですが、単一オブジェクトへのアクセス制御としては過剰であり、IAMポリシーの動的生成など管理が複雑になるため不適切です。
BS3バケットポリシーに条件式を追加し、特定のIPアドレスからのみ一時的にパブリック書き込みを許可する。
バケットポリシーによるIP制限では、モバイルアプリのようにIPアドレスが動的に変化するクライアントに対応できず、パブリック化のリスクも伴うためセキュリティ上危険です。
CAWS SDKを使用して特定の有効期限が設定されたS3署名付きURLを生成し、それをクライアントに返却する。
✓ 正解
アプリケーションのバックエンドで安全に署名付きURLを生成し、有効期限と対象パスを限定した上でクライアントに提供するため、最もセキュアで推奨されるアプローチです。
DAmazon Cognitoユーザープールを使用して、認証されたユーザー全員にバケットへの直接アップロード権限を与える。
Cognitoユーザープールは認証を担うサービスであり、S3への直接アクセス権限を付与する機能はありません。権限付与にはアイデンティティプールの併用が必要です。
解説
署名付きURL(Presigned URL)を使用すると、AWSのセキュリティ認証情報をクライアントに直接渡すことなく、特定のS3オブジェクトに対する制限付き(有効期限付き)のアクセス権を安全に付与できます。モバイルアプリやウェブフロントエンドから直接巨大なファイルをS3にアップロードさせるアーキテクチャでは、バックエンドで署名付きURLを生成してクライアントに渡し、クライアントがそのURLを用いてS3へ直接アップロードする構成がベストプラクティスです。STSの一時認証情報はより広範な権限付与に使われますが、単一のファイルへのアクセス制御には署名付きURLが適しています。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →