DVA-C03 · LESSON 2

セキュリティ26% · 3項目

認証情報はロールから取得し、機密値は Secrets Manager などから読みます。AI の応答を認可の根拠にせず、ツール実行をサーバー側で制御します。会話・キャッシュを利用者別に分け、入力とログの機密項目を必要に応じてマスクします。

2.1アプリと AI 利用の権限境界を守る

アプリと AI 利用の権限境界を守る

概念

認証情報はロールから取得し、機密値は Secrets Manager などから読みます。AI の応答を認可の根拠にせず、ツール実行をサーバー側で制御します。会話・キャッシュを利用者別に分け、入力とログの機密項目を必要に応じてマスクします。

仕組み・手順

  1. 要件と成功条件を先に書き出す。
  2. 検証環境で操作し、成功・失敗の証跡を残す。
  3. 結果を確認してから、下の分野別練習で判断を確かめる。

業務での例

別利用者のセッション ID と権限外のツール要求が拒否されることを試す。

紛らわしい点・試験の注意

ミニクイズ

Q1. 社内向けの API を API Gateway で公開する。呼び出せるのは、社内の IAM ロールを持つアプリだけにしたい。最も適切な認可の方法はどれか。

  1. API を一般公開したまま、利用者に API の URL を社外秘として伝える
  2. API Gateway の前に NAT ゲートウェイを置き、送信元を制限する
  3. メソッドで IAM 認可を有効にし、呼び出し側のロールに実行を許可する
  4. API キーを発行して各アプリに埋め込み、API キーの一致だけで呼び出し元の本人確認を行う
答えと解説を見る

正解:C メソッドで IAM 認可を有効にし、呼び出し側のロールに実行を許可する

IAM 認可では SigV4 で署名されたリクエストを IAM ポリシーで評価する。API キーは使用量プランの管理用で、認証の仕組みとしては不十分。

Q2. 暗号化キーの利用者を限定したい。KMS キーのキーポリシーで行う設定として最も適切なものはどれか。

  1. キーの管理と使用の権限をまとめて、アカウント外も含むすべてのプリンシパルに付与する
  2. すべての IAM ユーザーに kms:* を許可し、使う人をアプリ側で制御する
  3. キーポリシーは空にして、ルートユーザーだけがキーを使えるようにする
  4. キーの管理者と、暗号化・復号を行うロールを分けて、それぞれに必要な操作だけを許可する
答えと解説を見る

正解:D キーの管理者と、暗号化・復号を行うロールを分けて、それぞれに必要な操作だけを許可する

キーポリシーでキーの管理(ポリシー変更・削除予定)と使用(Encrypt/Decrypt)を分けると、職務分掌と最小権限を実現できる。

参考リンク

2.2AWS リソースへの安全なアクセスを設計する

概念

アクセスの設計の中心は IAM のポリシーの評価です。明示的な拒否(Deny)は常に優先され、許可が無ければ暗黙の拒否になります。複数アカウントでは AWS Organizations の SCP(サービスコントロールポリシー)がアカウントで使える権限の上限を決め、IAM Identity Center で人のアクセスを一元化します。別アカウントへのアクセスは IAM ロールの引き受け(AssumeRole)とリソースベースのポリシーで行います。

仕組み・手順

  1. 人のアクセスは IAM Identity Center と外部 IdP(SAML・OIDC)でフェデレーションする
  2. ワークロードには IAM ロールを使い、長期のアクセスキーを避ける
  3. SCP で禁止事項(リージョンの制限、ログの停止の禁止など)を組織全体に設定する
  4. クロスアカウントのアクセスは信頼ポリシー付きのロールで行う
  5. アクセスアナライザーで外部に公開されたリソースを検出する

業務での例

監査用アカウントの担当者が、本番アカウントの読み取り専用ロールを AssumeRole で引き受けて調査し、SCP で全アカウントの CloudTrail の停止を禁止する。

紛らわしい点・試験の注意

ミニクイズ

Q1. IAM のポリシー評価について正しい説明はどれか。

  1. アイデンティティポリシーで許可していても、いずれかのポリシーに明示的な拒否があればアクセスは拒否される
  2. アイデンティティポリシーとリソースポリシーが矛盾した場合は、後から作成したポリシーの内容が常に優先される
  3. SCP で許可された操作は、IAM ポリシーで許可していなくても実行できるようになる
  4. どのポリシーにも記載のない操作は、同じアカウント内であれば既定で許可される
答えと解説を見る

正解:A アイデンティティポリシーで許可していても、いずれかのポリシーに明示的な拒否があればアクセスは拒否される

IAM では明示的な拒否が最優先で、許可がどこにもなければ暗黙的に拒否される。SCP は許可の上限を定めるだけで、権限そのものは付与しない。

Q2. モバイルアプリの利用者が、S3 の自分専用のフォルダに直接写真をアップロードする。AWS の認証情報をアプリに埋め込まない方法として最も適切なものはどれか。

  1. Cognito のアイデンティティプールで、権限を絞った一時的な認証情報を発行する
  2. ルートユーザーの認証情報を暗号化してアプリに保存する
  3. 共通の IAM ユーザーのアクセスキーをアプリに組み込み、すべての利用者でそのキーを共有して使う
  4. S3 バケットを一般公開し、誰でも書き込めるように設定する
答えと解説を見る

正解:A Cognito のアイデンティティプールで、権限を絞った一時的な認証情報を発行する

Cognito アイデンティティプールは、認証された利用者に IAM ロールに基づく一時的な認証情報を発行する。ポリシー変数で自分のプレフィックスだけに書き込みを限定できる。

参考リンク

2.3適切なデータセキュリティの管理策を決める

概念

データの保護は、保存時の暗号化(AWS KMS:AWS マネージドキー・カスタマーマネージドキー)、転送時の暗号化(TLS、ACM の証明書)、アクセスの制御(バケットポリシー・S3 ブロックパブリックアクセス)、バックアップと保持(AWS Backup・S3 バージョニング・S3 オブジェクトロック)で行います。鍵の利用者と鍵の管理者を分け、キーポリシーで制御します。

仕組み・手順

  1. データの分類(機密・社外秘・公開)を決める
  2. S3 ブロックパブリックアクセスを有効にし、既定の暗号化を設定する
  3. 監査や鍵の管理が必要ならカスタマーマネージドキー(自動ローテーション)を使う
  4. 改ざん防止が必要な記録は S3 オブジェクトロック(コンプライアンスモード)にする
  5. Macie で機密データの所在を確認する

業務での例

金融の取引記録を 7 年間変更できないように S3 オブジェクトロックで保存し、カスタマーマネージドキーで暗号化して、鍵の使用を CloudTrail で監査する。

紛らわしい点・試験の注意

ミニクイズ

Q1. S3 バケットポリシーなどのリソースベースのポリシーの特徴として正しいものはどれか。

  1. リソースベースのポリシーを使うと、同じアカウントの IAM のアイデンティティポリシーはすべて常に無視される
  2. IAM ユーザーに付けて、そのユーザーが使えるすべてのサービスを指定する
  3. SCP と同じく組織全体の上限を定めるもので、許可を与えることはできない
  4. リソースに付けて、どのプリンシパル(別アカウントも可)が何をできるかを指定する
答えと解説を見る

正解:D リソースに付けて、どのプリンシパル(別アカウントも可)が何をできるかを指定する

リソースベースのポリシーはリソースに付け、Principal 要素で許可する相手を指定する。クロスアカウントアクセスに使える。

Q2. 別の AWS アカウントからのアクセスを設計している。監査アカウントの担当者が、本番アカウントの CloudTrail・Config・EC2 などを一時的に確認する。最も適切な方法はどれか。

  1. SCP で相手アカウントに対象の操作を許可する
  2. 相手の担当者用に、自社アカウントに IAM ユーザーを作って配布する
  3. S3 バケットポリシーで、相手アカウントのプリンシパルに読み取りを許可する
  4. アクセス先のアカウントに IAM ロールを作り、相手に AssumeRole を許可する
答えと解説を見る

正解:D アクセス先のアカウントに IAM ロールを作り、相手に AssumeRole を許可する

アクセス先アカウントのロールを引き受けると、STS の一時的な認証情報でそのロールの権限を使える。長期の認証情報を配る必要がない。

参考リンク

レッスンは当サイトがAWS 認定の公式ページと公式試験ガイドをもとに独自に作成したもので、試験の内容を保証するものではありません。製品の仕様は変わることがあるため、参考リンク先の最新情報を確認してください。

ご利用上の注意(非公式・独自問題・合格保証なし)