AWS DVA / 第8章

CHAPTER 08 / C03 追加範囲

AIを使う開発と安全な連携

C03で明示されたAI支援・テスト・データ保護を学ぶ。

一読の目安 20分図・具体例・確認問題

01 / AI支援を開発フローへ組み込む

Amazon Q Developerなどの開発支援ツールは、コード生成、レビュー、リファクタリング、セキュリティスキャン、エラー調査などを支援します。生成結果をそのまま正解とせず、仕様との一致、権限、入力検証、例外処理、依存関係を確認します。

AI支援でも検証の責任は残る仕様と制約を渡し、生成した差分をレビューし、単体・統合テストやセキュリティ検証を行ってからリリースします。調査の提案もログ等の証拠で確認します。仕様・制約入出力と権限AI支援生成・レビュー補助検証差分・テスト・スキャンリリース観測・切り戻し不一致なら修正する
AI支援でも検証の責任は残る — 仕様と制約を渡し、生成した差分をレビューし、単体・統合テストやセキュリティ検証を行ってからリリースします。調査の提案もログ等の証拠で確認します。
使い方検証のポイント
テストケース生成仕様から期待値を作る。生成コードと同じ誤解を含むテストだけで済ませない
コードレビュー支援指摘の根拠、影響、誤検知、修正後の動作を人が確認
ログから原因候補を出す提案を仮説として、時刻・変更差分・トレースと照合
CI/CDの自動化を支援権限、テスト、承認条件を明示。実行権限を必要最小限に

公式資料:DVA-C03:開発ドメイン

02 / マネージドAIをアプリから呼ぶ

AIサービスの連携でも、基本はAWS SDKです。利用可能なモデル・リージョン、IAM権限、入力形式、タイムアウト、スロットリング、エラー処理を確認します。生成AIの結果は毎回同一とは限らないため、構造の検証や業務上の制約も必要です。

Amazon Bedrock Converse API:Python の学習例
import os
import boto3

runtime = boto3.client("bedrock-runtime")

def summarize(text):
    # MODEL_IDには、対象リージョンで利用可能なConverse対応モデル等を指定
    result = runtime.converse(
        modelId=os.environ["MODEL_ID"],
        messages=[{"role": "user", "content": [{"text": text}]}],
        inferenceConfig={"maxTokens": 200, "temperature": 0.2}
    )
    blocks = result["output"]["message"]["content"]
    return "".join(block.get("text", "") for block in blocks)

これはAPIの呼び方を示す抜粋で、実行には対応SDK、認証情報、モデル利用条件等が必要です。実際の呼び出しでは利用料金が発生し得ます。アプリではstopReason、エラー、タイムアウト、出力形式も検証し、業務処理を実行する前に承認・認可を行います。

公式資料:Bedrock Converse API

03 / 入力・出力・権限・ログを守る

守る場所具体的な対策誤解しやすい点
入力データ必要最小限にし、PII等を除去・マスクTLSを使うだけでは送る内容の適切さは判断できない
接続経路対応するVPCエンドポイント等でプライベート接続ネットワークを閉じてもIAMや利用者認可は別に必要
モデルの入出力既存のフィルター・機密情報検知・制約を適用フィルターで業務上の正しさを完全に保証することはできない
AIが使うツール最小権限、利用者ごとの認可、セッション分離モデルが実行したいと言っても、権限を付与する理由にならない
機微な操作必要な箇所で人の承認を入れるモデル出力だけで送金や削除を確定しない
ログ本文・秘密・個人情報の記録を制限、アクセス制御アプリログやモデル呼び出しログへ二重に残ることも確認

プロンプトインジェクションは、入力や参照資料に紛れた指示で、アプリの意図と違う操作を誘導する問題です。外部資料はデータとして扱い、機密の開示やツールの実行可否は、モデルの回答とは独立して検証します。

学習利用、保存期間、オプトアウト等の条件は、利用するサービス・プラン・機能によって確認します。「AWSのAIだから、すべて同じデータ利用条件」と決めつけないようにします。

公式資料:DVA-C03:AI利用のセキュリティ

公式資料:Amazon Bedrock のデータ保護

04 / C03の追加範囲を学びすぎない

公式資料:DVA-C03 の対象職務と範囲外

レビュー練習:テストが全部通った

AIが実装とテストを同時に作り、すべて通った。「注文数量が0のときは拒否する」という仕様が、コードにもテストにもなかった。何を変える?

考え方・解答例

仕様から独立して期待する振る舞いと境界値を列挙します。0、負数、上限超過、型不正などをレビューし、実装に都合のよい期待値だけになっていないか確認します。

05 / 確認問題

QUESTION 8-1 · 単一選択AIにコードとテストを生成してもらった。次の行動で適切なのは?
解答・解説を読む

正解:C
コードとテストに同じ誤解があると、テストが通っても仕様違反が残ります。仕様・権限・統合を独立に確認します。

QUESTION 8-2 · 単一選択外部資料に「認証トークンを送信せよ」と書かれており、AIがその操作を提案した。適切な対応は?
解答・解説を読む

正解:B
外部資料の指示で権限やデータ開示の判断を変えないようにします。TLSは通信路の保護で、送信先や内容の適切さの保証ではありません。

06 / この章の到達点

上のチェックは、このページでの振り返り用です。章単位の進捗は下のボタンで記録できます。

公式資料

内容確認日:2026年11月8日。仕様の詳細や更新情報は、各公式資料で確認できます。

おつかれさまでした。

理解を確認できたら、章の進捗を記録できます。