sg sg-management service_management sg-security-measures it_security_operations
まず結論
- CI/CDとは、ソースコードの変更後に、ビルド、テスト、リリースなどの作業を自動化し、継続的に品質を確認しながら開発を進める仕組みです。
- SG試験では、「開発・テスト・リリースの流れを自動化する仕組み」として判断します。
直感的な説明
CI/CDは、ソフトウェア開発の作業を、毎回手作業で確認するのではなく、自動で流れるようにする仕組みです。
たとえば、工場の検査ラインにたとえると分かりやすいです。
部品を作るたびに、人が毎回すべてを手で確認すると時間がかかります。
そこで、製造ラインの途中に自動検査を入れて、問題があればすぐに止めます。
ソフトウェアでも同じです。
開発者がコードを変更したら、次のような処理を自動で行います。
- コードを取り込む
- ビルドする
- テストする
- 問題があれば通知する
- 問題がなければリリース準備を進める
つまり、CI/CDは「コード変更後の確認作業を自動化し、問題を早く見つける仕組み」です。
定義・仕組み
CI/CDは、CIとCDを組み合わせた言葉です。
- CI:Continuous Integration
- CD:Continuous Delivery または Continuous Deployment
日本語では、次のように整理できます。
| 用語 | 意味 | 判断ポイント |
|---|---|---|
| CI | 継続的インテグレーション | コード変更を頻繁に統合し、自動でビルドやテストを行う |
| CD | 継続的デリバリ/継続的デプロイ | テスト後のリリース準備や本番反映を自動化する |
CIでは、開発者がコードを変更してリポジトリに反映したとき、自動でビルドやテストを実行します。
これにより、コードの不整合やテスト失敗を早い段階で見つけられます。
CDでは、テストを通過したコードを、リリース可能な状態にしたり、本番環境へ反映したりします。
ただし、CDには2つの意味があります。
- Continuous Delivery:リリース可能な状態まで自動化し、本番反映は人が判断する
- Continuous Deployment:本番反映まで自動化する
SG試験では、細かい用語の違いよりも、開発・テスト・リリースの流れを継続的に自動化するという大枠を押さえることが大切です。
CI/CDは、DevOpsやDevSecOpsと組み合わせて使われることが多い考え方です。
たとえば、CI/CDの流れの中にSASTやテストを組み込むことで、コード変更のたびに品質やセキュリティを確認できます。
どんな場面で使う?
CI/CDは、ソフトウェアを継続的に開発・改善する場面で使われます。
たとえば、次のような場面です。
- Webサービスを頻繁に更新する
- 複数人で同じシステムを開発する
- コード変更による不具合を早く見つけたい
- テストやビルドを自動化したい
- リリース作業のミスを減らしたい
- DevOpsやDevSecOpsの流れを整えたい
CI/CDを使うと、コード変更のたびに自動テストが行われるため、問題の早期発見につながります。
また、手作業のリリース手順を減らすことで、作業漏れや手順ミスを減らしやすくなります。
ただし、CI/CDは「セキュリティ対策そのもの」ではありません。
CI/CDは開発・テスト・リリースの自動化の仕組みです。
その中にSAST、依存ライブラリの脆弱性チェック、設定確認などを組み込むことで、セキュリティ確認にも役立ちます。
SG試験では、CI/CDそのものは自動化の流れ、DevSecOpsはそこにセキュリティを組み込む考え方として整理すると分かりやすいです。
よくある誤解・混同
CI/CDは、DevOps、DevSecOps、SAST、シフトレフトと混同しやすいです。
| 混同しやすい用語 | 判断ポイント |
|---|---|
| CI/CD | ビルド、テスト、リリースなどの流れを自動化する仕組み |
| DevOps | 開発と運用が連携し、継続的に改善する考え方 |
| DevSecOps | 開発・運用の流れにセキュリティ確認を組み込む考え方 |
| SAST | ソースコードを実行せず、ツールで危険な実装を検出する手法 |
| シフトレフト | 開発工程の早い段階で品質やセキュリティを確認する考え方 |
SG試験では、次のような表現に注意します。
-
「コード変更時に自動でビルド・テストを行う」
→ CI/CDを疑います。 -
「リリース作業を自動化する」
→ CI/CDに近い説明です。 -
「開発と運用が連携する」
→ DevOpsです。 -
「開発・運用にセキュリティを組み込む」
→ DevSecOpsです。 -
「ソースコードを実行せずに検査する」
→ SASTです。
よくあるひっかけは、CI/CDをDevOpsそのものだと思うことです。
DevOpsは、開発と運用の連携を重視する考え方です。
CI/CDは、その考え方を実現するためによく使われる自動化の仕組みです。
また、CI/CDを導入すれば自動的にセキュリティが十分になるわけではありません。
セキュリティを高めるには、CI/CDの流れにSAST、DAST、依存ライブラリの確認、設定チェックなどを組み込む必要があります。
まとめ(試験直前用)
- CI/CDは、ビルド・テスト・リリースの流れを自動化する仕組みです。
- CIは、コード変更を頻繁に統合し、自動でビルドやテストを行う考え方です。
- CDは、リリース可能な状態や本番反映までの流れを自動化する考え方です。
- DevOpsは、開発と運用の連携を重視する考え方です。
- DevSecOpsは、開発・運用の流れにセキュリティを組み込む考え方です。
- SG試験では、自動化された開発・テスト・リリースの流れが出てきたらCI/CDを疑います。
確認問題
CI/CDの説明として、最も適切なものはどれか。
ア. 開発と運用の流れにセキュリティ確認を組み込み、継続的に脆弱性を減らす考え方である。
イ. コード変更後のビルド、テスト、リリース準備などを自動化し、継続的に品質を確認する仕組みである。
ウ. ソースコードを実行せずに解析し、危険な実装パターンを検出する手法である。
エ. 攻撃者の視点で侵入シナリオを作成し、重要情報へ到達できるかを検証する活動である。
回答と解説を表示
正解は **イ** です。 CI/CDは、コード変更後のビルド、テスト、リリース準備などを自動化し、継続的に品質を確認する仕組みです。 アはDevSecOps、ウはSAST、エはペネトレーションテストに近い説明です。🔗 関連記事
- アクセス制御モデルとは?RBAC・ABAC・DAC・MACの違いを整理【SG試験】
- 入退室管理とは?物理アクセス制御の基本【SG試験】
- アクセス管理とは?特権IDとneed-to-knowで権限を適切に制御【SG試験】
- アンチパスバックとは?不正な入退室を防ぐ仕組み【SG試験】
- 監査ログとは?不正検知と追跡の基本【SG試験】