DVAセキュリティ
Amazon EC2インスタンス上で稼働するアプリケーションから、Amazon DynamoDBテーブルに対してデータの読み書きを行う必要があります。AWSのセキュリティベストプラクティスに従い、コード内に長期的な認証情報をハードコードせずに最も安全にアクセス権限を付与する方法はどれですか。
ADynamoDBへのアクセス権限を持つIAMユーザーを作成し、そのアクセスキーとシークレットキーをEC2の環境変数に設定する。
IAMユーザーのアクセスキーを環境変数に設定する方法は、キーの漏洩リスクがあり、手動でのローテーションも必要なためベストプラクティスに反します。
BDynamoDBへのアクセス権限を持つIAMロールを作成し、インスタンスプロファイルを使用してそのロールをEC2インスタンスにアタッチする。
✓ 正解
IAMロールとインスタンスプロファイルを利用することで、一時的な認証情報の取得とローテーションが自動化され、最も安全に権限を付与できます。
CAWS STSのGetSessionToken APIを呼び出し、取得した一時的認証情報をアプリケーションのソースコード内にキャッシュする。
STSを直接呼び出す処理を自作しコードに組み込むのは不要な複雑さを生み出します。IAMロールを使えばSDKが自動でこのプロセスを処理します。
DAmazon Cognito アイデンティティプールを使用してEC2インスタンス用のクレデンシャルを発行し、アプリケーションから利用する。
Cognitoアイデンティティプールは主にモバイルアプリやWebアプリのゲスト/認証ユーザー向けであり、サーバーサイド(EC2)の権限管理には使用しません。
解説
EC2インスタンス上で実行されるアプリケーションにAWSリソース(DynamoDBなど)へのアクセス権限を付与する最も安全で推奨される方法は、必要な権限を持った「IAMロール」を作成し、「インスタンスプロファイル」を通じてそのロールをEC2インスタンスにアタッチすることです。これにより、SDKはインスタンスメタデータから一時的な認証情報を自動的に取得・ローテーションするため、永続的なクレデンシャルを管理する必要がなくなります。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →