DVA-C02セキュリティHARD複数選択

ある企業のセキュリティ審査で、Lambda 関数が使用する IAM ロールに過剰な権限があると指摘されました。現在のロールポリシーは「Effect: Allow, Action: *, Resource: *」です。Lambda は実際には特定の DynamoDB テーブルへの読み書きと、特定の S3 バケットへの Put のみを行います。最小権限の原則に従ってリファクタリングする際に正しいアプローチを 2 つ選択してください。

  1. A. Action に dynamodb:* を設定し Resource を全テーブル(*)にする
  2. B. Action に s3:* を設定し Resource を対象バケット ARN のみに限定する
  3. C. Action に dynamodb:GetItem, dynamodb:PutItem, dynamodb:UpdateItem, dynamodb:DeleteItem を列挙し Resource を特定テーブルの ARN に限定する
  4. D. Action に s3:PutObject のみを設定し Resource を対象バケット ARN(/*を含む)に限定する
  5. E. 既存のポリシーに Deny ステートメントを追加して不要な API を明示的に拒否する
解答と解説を見る

正解: C, D

最小権限の原則では Action とResource の両方を必要最小限に絞ります。C は DynamoDB アクションを実際に使用するもの(GetItem/PutItem/UpdateItem/DeleteItem)だけに限定し、かつ Resource も特定テーブル ARN に絞っており正しい最小権限設計です。D は S3 操作が PutObject のみという要件に合致し、バケット ARN を特定しています。A は dynamodb:* が過剰です。B は s3:* が過剰です。E は Deny を追加する方法は管理が複雑になり、将来 Action: * にさらに権限が増えた場合に対応できないため推奨されません。

▸ この試験を本気で演習する(全150問・無料)