令和6年度 秋期 システム監査技術者試験 午後 I 問題 問1 DevOps開発・運用の監査手続
この問題は2024(R6)秋 システム監査技術者 午後Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。
本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。
学習ガイド
DevOpsを適用したECシステムの開発・運用を監査する場面を扱った午後Ⅰの問題です。開発と運用の分業を前提とした従来のコントロールが、アジャイルとCI/CDの環境ではどう置き換わるのかを理解した上で、予防的・発見的コントロールを具体的に記述させる構成です。40字級の記述が続くため、この記事では模範解答を要素に分解し、採点基準がどの要素の有無を見ているかを確かめながら解答の組み立て方を練習します。
この記事で押さえる論点
- ウォーターフォール型で機能していたコントロールがDevOpsでどう変わるかを説明する
- CI/CDツールの設定を予防的・発見的コントロールとして具体化する
- 監査手続を「確認する内容」と「確認する方法」に分けて記述する
出題情報
- 出題
- 2024(R6)秋 システム監査技術者 午後I 問1
- 配点
- 50点満点
- 模範解答
- 公表(設問ごとに掲載)
出題趣旨・採点講評(IPA 公表)
DXを実現する手法としてアジャイル開発を採用する企業が増えている。それに伴い,従来分業していた開発担当者と運用担当者が,システムのサービスやビジネスのゴールを共有すること(DevOps)が求められるようになってきている。アジャイル開発のメリットを生かすためには,DevOpsのプロセスに存在するリスクを認識した上で,リリースサイクルの短縮や品質の向上を実現していく必要がある。本問では,DevOpsを適用したシステム開発・運用の監査を題材として,アジャイル開発手法やDevOpsの特性,メリット・デメリットを理解し,これらを効果的に活用するためのコントロールやマネジメント方法を提言する能力,及び開発・運用業務を監査する場合の監査手続を設定する能力を問う。
問1では,DevOpsを適用したシステム開発・運用の監査を題材に,DevOpsの特性,メリット・デメリットを理解した上で,これらを効果的に活用するためのコントロールや監査手続について出題した。全体として正答率は平均的であった。
問題本文
DevOpsを適用したシステム開発・運用の監査に関する次の記述を読んで,設問に答えよ。
A社は,衣料品などを販売する企業であり,ECサイトを構築し,運用している。A社ECシステムでは,ECサイトの頻繁な更新や新たなサービスへの迅速な対応が求められることから,アジャイル開発を採用してきた。また,ECシステム以外の情報システムでもアジャイル開発が増加し,本番リリースの頻度が高くなってきたことから,システムの開発・運用プロセスを見直してDevOpsを適用することになった。
ECシステムにおけるDevOpsを適用した開発・運用プロセスについて,A社監査部のシステム監査チーム(以下,監査チームという)が監査を実施することになった。監査の主な観点は,リリースサイクルの短縮というDevOpsの適用目的が達成されるような運用方法になっているかどうか,及びDevOps特有の環境や開発・運用プロセスにおけるリスクに対応できているかどうかである。
〔ECシステムの開発・運用プロセス〕
A社のECシステムにおける開発・運用プロセスの概要は図1のとおりである。

図の説明テキスト
A社のECシステムにおける開発・運用プロセスの概要を示す図。
図には「開発環境」「リポジトリ」「実行環境」の3つの大きな枠(破線)がある。
・「開発環境」内には「開発」があり、そこからリポジトリ内の「ソースコード」へ実線矢印が引かれている。
・「リポジトリ」内には、「ソースコード」「モジュール」「テストデータ」「設定情報」の4つの要素がある。
・「実行環境」内には、「①単体テスト」「②機能テスト」「③性能テスト」「④ユーザー受入テスト」「⑤本番リリース」のプロセスが配置されており、この順に白抜き矢印で繋がっている。
リポジトリの各要素から実行環境への破線矢印(注記によりデプロイを示す):
・「ソースコード」から「①単体テスト」へ。
・「モジュール」から「②機能テスト」「③性能テスト」「④ユーザー受入テスト」「⑤本番リリース」へ。
・「テストデータ」から「①単体テスト」「②機能テスト」「③性能テスト」「④ユーザー受入テスト」へ。
・「設定情報」から「②機能テスト」「③性能テスト」「④ユーザー受入テスト」「⑤本番リリース」へ。
下部に「<CI/CDの適用範囲>」が両方向矢印で示されている:
・「CI(継続的インテグレーション)」の矢印は、プロセスの開始から「①単体テスト」完了時点まで。
・「CD(継続的デリバリー)」の矢印は、プロセスの開始から「⑤本番リリース」完了時点まで。
図の下部には「注記 破線の矢印はデプロイを示す。」とキャプション「図1 A社の EC システムにおける開発・運用プロセスの概要」が記載されている。
CIとは,プログラムの開発と単体テストを自動化することであり,CDとは,開発又は修正したモジュールを実行環境に移送して実行可能な状態にする作業(以下,デプロイという)を含めて自動化することである。自動化すると,一連の作業として本番リリースまで実行されるので,A社では,ウォーターフォール型開発でいう単体テスト以降の工程を,“ステージ”と呼んでいる。
A社のDevOpsの環境の概要は,次のとおりである。
(1) 開発環境
エディター,コンパイラ,デバッガなどの開発ツール群が,開発担当者のローカルの環境に提供されている。
(2) リポジトリ
構成管理ツールによって,開発されたソースコードのバージョン管理機能及び保管先としてのリポジトリが提供される。ソースコードには,許可された開発担当者だけがアクセス可能である。また,インフラに関する設定情報を管理し,各ステージにおける環境設定の自動化を支援する。
(3) 実行環境
各ステージでは,ソースコードから実行可能なモジュールの生成(以下,ビルドという),デプロイ,テストなどの自動化を支援する各種のツール(以下,CI/CDツールという)が準備されている。各ステージの概要は,次のとおりである。
- ① 単体テスト:開発環境から構成管理ツールにソースコードを格納し,モジュールのビルドから単体テストまでを実行する。単体テストを完了したモジュールがリポジトリに格納される。
- ② 機能テスト:実行環境にモジュールをデプロイし,機能要件の検証及び性能要件を除く非機能要件の検証を行う。
- ③ 性能テスト:実行環境にモジュールをデプロイし,性能要件の検証を行う。
- ④ ユーザー受入テスト:実行環境にモジュールをデプロイし,機能要件を満たしているか,情報システムが使いやすいかなどの利用者観点の検証を行う。
- ⑤ 本番リリース:本番の実行環境(以下,本番環境という)へのモジュールのデプロイを行う。
〔予備調査の実施〕
監査チームが,予備調査で把握した内容は,次のとおりである。
(1) 開発・運用の体制
ECシステムにおけるDevOpsを適用した開発・運用の体制について,営業部のS課長にインタビューした。S課長は,ECシステムの開発・運用に関する最終決定権と責任をもつプロダクトオーナーである。インタビューの結果分かったことは,次のとおりである。
- ① S課長の下に,利用部門としての要件整理と検証を行う業務チームがある。
- ② 機能ごとに五つのスクラム開発チーム(以下,開発チームという)があり,プログラムの開発からリリースまでを担当する。各開発チームの構成は,開発チームのリーダーであるスクラムマスター1名と3〜6名の開発担当者である。
- ③ 共通チームは,コーディングルールやCI/CDツールの効果的な使用方法についての標準化など,各開発チームに共通する課題を担当する。
- ④ 運用チームは,主にサーバやネットワークの構築及び運用を担当する。
(2) 開発・運用の状況
DevOpsを適用した開発・運用の状況について,複数の開発チームのスクラムマスター及び開発担当者へのインタビューの結果分かったことは,次のとおりである。
- ① DevOpsでは,開発担当者がCI/CDツールを利用して,本番環境を含む各実行環境にデプロイすることが可能である。CI/CDツールでは,各環境へのデプロイの権限及びアクセス可能な環境や期間を開発担当者ごとに設定できる。また,デプロイや設定変更が行われると,指定した者に通知されるように設定できる。
- ② DevOpsの適用によってリリースサイクルを短くしていくために,CI/CDツールを活用して本番リリースまでのステージの早期の自動化を目指している。
- ③ 各開発チームには開発スキルの高いメンバーが集まっており,それぞれが自分の担当する機能の開発に集中して作業しているので,プログラム開発の生産性は高く,単体での品質は高い状況である。しかし,先日,他チームの進捗遅延の支援のためにプログラムの修正を行った際に,担当したメンバーが修正前のプログラムを理解するのに時間が掛かり,生産性が期待よりも低いことがあった。
- ④ CI/CDツールの自動化の設定については,開発担当者の習熟度に応じて適用範囲を順次拡大していく計画である。リリースサイクルの短縮の第一段階となる単体テストステージでは,各スクラムマスターが開発担当者の権限を設定している。
〔監査手続の検討〕
監査チームは,予備調査の結果を踏まえて,ECシステムにおける DevOpsを適用した開発・運用についてリスクを分析し,監査手続を検討している。〔予備調査の実施〕(2)開発・運用の状況①〜④について検討した内容は,次のとおりである。
(1) ①のような状況下では,未承認のプログラムが本番環境にデプロイされてしまうリスクに対して,従来のウォーターフォール型開発で必要とされてきたコントロールを適用することは適切ではない。CI/CDツールの設定による予防的なコントロールや未承認のデプロイを適時に発見するコントロールによってリスクの低減を図る必要があるので,これらのコントロールが設定されているかどうかを確認する。
(2) ②について,CI/CDツールによってテストを自動化するステージの範囲を設定でき,DevOpsの適用目的の達成を可能とすることは理解できる。しかし,全てのステージを自動化するべきではないので,自動化の検討範囲について確認する。
(3) ③について,共通チームが役割を十分に果たせていない可能性があるので,スクラムマスターにインタビューして確認する。
(4) ④について,DevOpsの適用目的を達成できるようになっているかどうか,CI/CDツールの運用方法を確認する。
設問と解答・解説
設問1
〔監査手続の検討〕(1)について,(i),(ii),(iii)に答えよ。
(1)
監査チームが考えた,“従来のウォーターフォール型開発で必要とされてきたコントロール”とは何か。15字以内で答えよ。
模範解答
開発と運用の職務の分離
採点基準(配点 8点)
知識・理解度(内容)(5点)
- 5点: 「開発と運用の職務の分離」という従来型のコントロールの本質を正確に理解し記述できている。
- 2点: 開発や運用に関連する記載はあるが、職務の分離という観点が不十分である。
- 0点: DevOps環境における従来コントロールに関する理解が不足しており、的外れな内容である。
論理性(構造)(3点)
- 3点: 指定の文字数制約の中で、明確かつ簡潔に意図を表現できている。
- 1点: 意図は伝わるが、表現がやや冗長あるいは不明瞭である。
- 0点: 解答として論理的な構成になっていない。
解説
正解の根拠 DevOps環境では、従来のウォーターフォール型開発で重視されていた開発担当と運用担当の役割分担が融合します。そのため、従来必要とされてきたコントロールが適用しにくくなります。本問はその従来型コントロールを問うており、「開発と運用の職務の分離」が該当します。
高得点のポイント
・「開発と運用の職務の分離」という従来型のコントロールの本質を正確に示すこと。 ・15字以内という指定字数内で簡潔に表現すること。
(2)
CI/CDツールの設定による予防的コントロールの具体的な内容を,40字以内で答えよ。
模範解答
本番環境へのアクセス権を常時付与せずに,必要なときに一時的に付与すること
採点基準(配点 8点)
知識・理解度(内容)(5点)
- 5点: 本番環境へのアクセス権を一時的に付与する(常時付与しない)という予防的コントロールの具体的内容を正確に記述できている。
- 2点: アクセス権の制限に触れているが、一時的付与や常時付与しないといった具体的な統制概念が欠けている。
- 0点: 予防的コントロールとしての記述になっておらず、的外れな内容である。
論理性(構造)(3点)
- 3点: 意味が通る形で、予防的コントロールとして論理的に構成されている。
- 1点: 文意が曖昧または構成がやや不自然である。
- 0点: 解答として成立していない。
解説
正解の根拠 DevOpsにおけるリスク低減のため、CI/CDツールを用いた予防的コントロールが重要です。本番環境へのアクセス権限を常時付与したままにすることは不正な変更や事故のリスクを高めるため、必要なときに一時的に付与することが求められます。
高得点のポイント
・本番環境へのアクセス権について言及すること。 ・常時付与せず、必要な時に一時的に付与するという予防的コントロールの具体的内容を含めること。
(3)
CI/CDツールの設定による発見的コントロールの具体的な内容を,45字以内で答えよ。
模範解答
本番環境へのデプロイやCI/CDツール設定の変更がスクラムマスターに通知されること
採点基準(配点 8点)
知識・理解度(内容)(5点)
- 5点: 本番環境へのデプロイや設定変更がスクラムマスター等の管理者に通知されるという発見的コントロールの内容を正確に記述できている。
- 2点: デプロイや設定変更への言及はあるが、通知の仕組みや対象者(スクラムマスター等)への言及が不十分である。
- 0点: 発見的コントロールとしての記述になっておらず、不適切である。
論理性(構造)(3点)
- 3点: 発見的コントロールの具体例として論理的に明確な文章構成となっている。
- 1点: 要素は含まれるが、因果関係や文脈が不自然である。
- 0点: 文章として成立していない。
解説
正解の根拠 CI/CDツールの設定による発見的コントロールとして、重要な変更(本番環境へのデプロイや設定変更)が起きた際に、適切な管理者へ速やかに通知される仕組みが必要です。本問ではスクラムマスターなどの管理者に通知される設定が該当します。
高得点のポイント
・本番環境へのデプロイや設定変更が発生した事実に対する言及があること。 ・スクラムマスターなど管理者への通知が行われるという発見的コントロールの仕組みを記載していること。
設問1は,(ⅰ),(ⅱ)が平均的で,(ⅲ)は正答率がやや高かった。DevOps環境では適用が難しい場合がある職務の分離などのコントロールを,CI/CDツールの設定によるコントロールによって代替し,リスクを低減する必要があることを理解してほしい。
設問2
〔監査手続の検討〕(2)について,監査チームが確認しようとしている内容を,30字以内で答えよ。
模範解答
ユーザ―受入テストが自動化の範囲に含まれていないこと
採点基準(配点 9点)
知識・理解度(内容)(5点)
- 5点: ユーザー受入テストが自動化の範囲に含まれていないこと(利用者の立場で判断すべきテストが自動化対象外であること)を正確に指摘できている。
- 2点: 自動化範囲の限定には触れているが、ユーザー受入テストという要点が曖昧である。
- 0点: 全く関係のない内容である。
論理性(構造)(4点)
- 4点: 確認すべき監査手続きの内容として、明確な文体で論理的に記述されている。
- 2点: 意味は通じるが、監査手続きの確認内容としてやや不自然な表現である。
- 0点: 不適切な構成となっている。
解説
正解の根拠 DevOpsではテストやデプロイの自動化を推進しますが、システムの使いやすさなど利用者の立場から判断する必要がある「ユーザ受入テスト」を自動化することにはリスクがあります。監査チームは、自動化すべきでないテストが含まれていないかを確認する必要があります。
高得点のポイント
・ユーザ受入テストという特定のテストプロセスを指摘すること。 ・それが自動化の範囲に含まれていないこと(手動で行われるべきこと)の確認を明示すること。
設問2は,正答率がやや低かった。DevOps環境では,テストデータやシナリオを事前に設定しておくことによって本番リリースまでのステージを自動化することができるが,システムの使いやすさなど利用者の立場から判断する必要があるテストを自動化する場合には,リスクがあることを理解してほしい。
設問3
〔監査手続の検討〕(3)について,監査チームが,共通チームが十分に果たせていない可能性があると考えた役割を,30字以内で答えよ。
模範解答
コーディングルールの遵守を各開発チームに徹底すること
採点基準(配点 9点)
知識・理解度(内容)(5点)
- 5点: 作成したコーディングルール(標準)を各開発チームに遵守・徹底させるという役割を正確に指摘できている。
- 2点: ルールの存在や作成には触れているが、現場への浸透や徹底への言及が不十分である。
- 0点: 本質から外れた内容となっている。
論理性(構造)(4点)
- 4点: 共通チームが果たすべき役割として、論理的かつ簡潔に表現できている。
- 2点: やや冗長、または役割としての記述が曖昧である。
- 0点: 論理破綻しており意味が通じない。
解説
正解の根拠 共通チームがコーディングルールなどの標準を作成しても、それが実際の開発現場で守られなければ意味がありません。DevOpsやアジャイル開発では、作成したルールを各開発チームに浸透・徹底させることが品質向上とリスク低減において重要となります。
高得点のポイント
・コーディングルールや標準の遵守について言及すること。 ・それを各開発チームへ浸透・徹底させるという管理上の役割であることを明示すること。
設問3は,正答率は平均的であった。本設問は,DevOpsやアジャイル開発で陥りがちな開発上の課題を問う問題であったが,コーディングルールなどの標準を作成するだけではなく,それを浸透させる取組がリスクの低減につながることを,システム監査人として着目するようにしてほしい。
設問4
〔監査手続の検討〕(4)について,監査チームが確認すべき具体的な内容を,45字以内で答えよ。
模範解答
単体テストステージのビルド,デプロイ,テストが自動化されるように設定されていること
採点基準(配点 8点)
知識・理解度(内容)(5点)
- 5点: 単体テストステージにおけるビルド、デプロイ、テストの一連のプロセスが自動化設定されていることを正確に指摘できている。
- 2点: 自動化には触れているが、対象となるステージやプロセス(ビルド、デプロイ等)の記述が不十分である。
- 0点: 監査チームの確認内容として不適切である。
論理性(構造)(3点)
- 3点: 監査チームが確認すべき具体的内容として、簡潔で分かりやすい構成となっている。
- 1点: 文脈がやや不明瞭であるか、つながりが不自然である。
- 0点: 文章として意味を成さない。
解説
正解の根拠 アジャイル開発のメリットであるリリースサイクルの短縮や品質向上を実現するためには、手作業によるミスを減らすことが不可欠です。そのため、単体テストステージにおけるビルド、デプロイ、テストの一連のプロセスが適切に自動化されていることを監査で確認する必要があります。
高得点のポイント
・単体テストステージに関する記述を含めること。 ・ビルド、デプロイ、テストといった一連のプロセスが自動化される設定となっていることを明記すること。