DevSecOps とは
DevSecOps とは、開発、セキュリティ、運用のことです。文化、自動化、およびプラットフォーム設計へのアプローチであり、IT ライフサイクル全体を通じてセキュリティを共有責任として統合します。
DevSecOps vs. DevOps
DevOps は開発チームや運用チームだけのものではありません。DevOps アプローチによるアジリティと応答性を存分に利用するのであれば、IT セキュリティもアプリケーションのライフサイクル全体を通じて、重要な役目を果たす必要があります。
なぜでしょうか。過去には、セキュリティの役割は独立しており、開発の最終段階に特定のチームが対応していました。これは開発サイクルが数カ月から数年に及ぶ場合には問題になりませんでしたが、そうした時代は終わりました。効果的な DevOps により、(ときには数週間や数日単位になる) 開発サイクルを迅速かつ頻繁に繰り返すことが可能になりますが、セキュリティの実施方法が旧式のままでは、DevOps の取り組みがどれほど効率的であっても台無しになってしまいます。

しかし、コラボレーションを重視する DevOps のフレームワークにおいては、セキュリティは最初から最後まで組み込まれ、その責任も共有されます。これは極めて重要な考え方なので、一部の人々は「DevSecOps」という用語を作り出し、セキュリティ基盤を DevOps の取り組みに導入する必要性を強調しています。

DevSecOps とは、アプリケーションとインフラストラクチャのセキュリティを、開始時点から考慮することです。また、DevOps ワークフローの速度が低下しないよう、一部のセキュリティゲートを自動化することも必要です。セキュリティ機能を搭載した統合開発環境 (IDE) を共通で利用するなど、継続的にセキュリティを統合するための適切なツールを選択すると、このような目標を達成しやすくなります。とはいえ、DevOps 体制における効果的なセキュリティを実現するには、新しいツールを導入する以上の取り組みが必要となります。そのためには、DevOps がもたらす企業文化の変革をさらに発展させ、セキュリティチームの業務を極力早く統合することが求められます。
計画および開発の初期段階からランタイム全体を通じてセキュリティを優先するこの実践手法は、セキュリティのシフトレフトおよびシフトライトと呼ばれることがよくあります。シフトレフトアプローチを使用して DevSecOps を実装および自動化することで、開発者を助けるガードレールができ、それによって構築ステージとデプロイステージでのユーザーエラーが減少し、ランタイム時のワークロードを保護できます。シフトライトとは、ポストプロダクション環境でテスト、品質保証、性能評価を継続して実施することです。
プラットフォーム・エンジニアリングと DevOps
組み込みの DevOps セキュリティ
呼び方が「DevOps」であれ「DevSecOps」であれ、セキュリティをアプリケーションのライフサイクル全体に重要な要素として組み込むことが理想であることに変わりはありません。DevSecOps の骨子は、セキュリティをアプリケーションやデータの周囲を守る境界線として後付けするのではなく、最初から組み込むことにあります。DevOps を採用した組織でも、セキュリティが開発パイプラインの最後にとどまっていると、開発サイクルは長期間かかるものへと逆戻りしてしまい、開発サイクルの短縮というそもそもの目的を果たせません。
DevSecOps で重要なことの 1 つは、DevOps に取り組み始めたときからセキュリティチームとパートナーを参加させ、情報セキュリティを組み込み、セキュリティ自動化計画を策定することです。これにより、開発者がセキュリティを念頭にコードを作成できるよう支援することも必要になります。このプロセスでは、セキュリティチームが内部脅威や潜在的なマルウェアなどの既知の脅威に対する可視性、フィードバック、知見を共有します。DevSecOps はソフトウェア・サプライチェーンにおけるリスクの特定にも焦点を当て、ソフトウェア開発ライフサイクルの早期段階におけるオープンソースソフトウェアのコンポーネントおよび依存関係のセキュリティも重視しています。成功させるには、効果的な DevSecOps アプローチに開発者向けの新しいセキュリティ・トレーニングも含めることができます。これは従来のアプリケーション開発ではあまり重要視されてきませんでした。
組み込みセキュリティとは実際にはどのようなものなのでしょうか。優れた DevSecOps 戦略の第一歩としては、リスクの許容度を確認し、リスク便益分析を実施するとよいでしょう。所定のアプリケーションにはどの程度のセキュリティ制御が必要でしょうか。それぞれのアプリケーションについて市場投入時間はどの程度重要でしょうか。パイプラインでセキュリティチェックを手動で実行すると時間がかかりすぎてしまうため、DevSecOps にとって反復タスクの自動化は重要です。
DevOps セキュリティの自動化
実施すべきこと:DevOps では、迅速かつ頻繁な開発サイクルを維持し、大きな混乱を伴わずにセキュリティ対策を運用に取り入れ、コンテナやマイクロサービスなどの革新的なテクノロジーに後れをとらないようにすると同時に、通常は別々に作業するチーム間で緊密な共同作業を促進することを目指しますが、こうした目標の達成はどのような組織にとっても簡単なことではありません。このような取り組みはすべて人間が開始し、組織のコラボレーションのやり取りは人が行います。しかし、DevSecOps のフレームワークでのこのようなやり取りは自動化によって促進されます。

それでは、何をどのように自動化すべきでしょうか?この質問の回答に役立つ文書化されたガイダンスがあります。組織は立ち止まって、開発および運用の環境全体を検討する必要があります。検討対象には、ソース管理リポジトリ、コンテナレジストリ、継続的インテグレーション/継続的デプロイメント (CI/CD) パイプライン、アプリケーション・プログラミング・インタフェース (API) 管理、オーケストレーションおよびリリースの自動化、運用の管理および監視が含まれます。
新しい自動化テクノロジーは、よりアジャイルな開発手法の導入を促進し、新しいセキュリティ対策の進化にも一役買っています。しかし、近年 IT 業界で変化したのは自動化だけではありません。今やコンテナやマイクロサービスなどのクラウドネイティブ技術は DevOps の取り組みのほとんどで主要な要素となっており、DevOps セキュリティはこれに対応できる必要があります。
コンテナとマイクロサービス向けに構築される DevOps セキュリティ
コンテナによってより大規模で動的な開発とデプロイメントが可能になり、多くの企業でイノベーションの方法が変化しました。このため、DevOps セキュリティプラクティスは新しい環境に適応して、コンテナ固有のセキュリティガイドラインに足並みを揃える必要があります。
クラウドネイティブ・テクノロジーは、静的なセキュリティポリシーやチェックリストには適していません。むしろ、セキュリティは連続的で、アプリケーションおよびインフラストラクチャのライフサイクルの各段階に統合される必要があります。
DevSecOps とは、アプリケーション開発全体にセキュリティを組み込むことです。このようにパイプラインに統合するには、新しいツールの場合と同様に組織の考え方を改める必要があります。この点を考慮して、DevOps チームはセキュリティを自動化し、環境全体とデータ、そして継続的インテグレーション/継続的デリバリープロセスを保護しなければなりません。この目標には、コンテナ内のマイクロサービスのセキュリティが含まれるでしょう。
Red Hat® Advanced Cluster Security for Kubernetes はセキュリティをシフトレフトし、DevSecOps ベストプラクティスを自動化します。このプラットフォームは任意の Kubernetes 環境と連携して DevOps およびセキュリティツールと統合でき、チームによるサプライチェーン、インフラストラクチャ、ワークロードの運用化と、その保護の強化を支援します。
環境とデータのセキュリティ
- 環境を標準化および自動化する:各サービスに付与する権限は必要最低限にして、不正な接続とアクセスを最小限にすべきです。
- ユーザー ID 管理とアクセス制御機能を一元化する:厳格なアクセス制御と一元化された認証メカニズムは、マイクロサービスのセキュリティ保護に欠かせません。認証は複数のポイントで発生するからです。
- マイクロサービスを実行するコンテナを相互に、およびネットワークから隔離する:移動中のデータと保管中のデータはいずれも、攻撃者にとって高価値のターゲットとなる可能性があります。
- アプリケーションやサービスの間でやり取りされるデータを暗号化する:セキュリティ機能を内蔵したコンテナ・オーケストレーション・プラットフォームを使用することで、不正アクセスのリスクを最小限に抑えることができます。
- セキュアな API ゲートウェイを導入する:セキュアな API によって認可とルーティングの状況がわかりやすくなります。公開される API を減らすと、攻撃対象となる領域を縮小できます。
Red Hat Enterprise Linux は、ハイブリッドクラウド、マルチクラウド、コンテナ化されたワークロードにおいて一貫したセキュリティポスチャを維持するのに役立ちます。Red Hat Enterprise Linux は、起動した瞬間からデータを保護し、強力な暗号化で転送中のデータを保護する、強化された検証可能なシステムを提供します。これは、ロード可能なモジュールとブート環境を暗号技術を用いて測定するセキュアブートや、システムの整合性を検証して侵害を検出するリモート認証などの機能によって実現されます。さらに、Red Hat Enterprise Linux は、透過的な脆弱性追跡システムとソフトウェア部品表 (SBOM) を提供し、サブスクリプション・サービスを通じて継続的なアップデートと修正を提供します。
Red Hat Enterprise Linux とセキュリティの詳細→
CI/CD プロセスのセキュリティ
- コンテナのセキュリティスキャナーを統合する:これはコンテナをレジストリに追加するプロセスの一環とするべきです。
- CI プロセスでのセキュリティテストを自動化する:これには、ビルドの一環としてのセキュリティ静的分析ツールの実行と、ビルドパイプラインにプルする際に事前にビルド済みのコンテナイメージをスキャンして既知のセキュリティ脆弱性に関するチェックを行うことが含まれます。
- セキュリティ機能のテストを自動化して、受け入れテストプロセスに追加する:入力検証テストに加えて、検証の認証と認可機能を自動化します。
- 既知の脆弱性へのパッチ適用など、セキュリティアップデートを自動化する:DevOps パイプラインを通じて実行します。管理者が本番システムにログインする必要がなくなり、文書化された追跡可能な変更ログが作成されるようになります。
- システムおよびサービスの構成管理機能を自動化する:これにより、セキュリティポリシーに準拠でき、手作業によるエラーを削減できます。監査と修正も自動化する必要があります。
DevSecOps とプラットフォーム・エンジニアリング
プラットフォーム・エンジニアリングはソフトウェア開発の分野の 1 つであり、生産性、ソフトウェア提供、および市場投入スピードの向上に重点を置いています。これは DevOps とは異なります。各プラクティスは異なるタイミングで適用され、異なる問題に焦点を当てているためです。 プラットフォーム・エンジニアリングの包括的な目標は、開発チームに影響を与える問題点を特定し、内部開発者向けプラットフォーム (IDP) を介して共通の再利用可能なツール、サービス、機能を提供することで、それらの問題を軽減することです。プラットフォーム・エンジニアリングは、セキュリティ、生産性、標準化のための新しい機能を作成することで、DevSecOps の実践をサポートできます。また、DevSecOps の導入を促進し、アプリケーション提供のための安全なソフトウェア・サプライチェーンを構築することもできます。
プラットフォーム・エンジニアリングによる DevSecOps の強化についての詳細このページは、英語でご利用いただけます (日本語 ではご利用いただけません)
Red Hat Enterprise Linux とセキュリティ
Red Hat Enterprise Linux は、最初からセキュリティとコンプライアンス体制を向上させるのに役立つ強化された基盤です。 Red Hat Enterprise Linux を使用すると、次のことが可能になります。
- 最初から組み込まれたセキュリティを利用する
- Red Hat Enterprise Linux 用イメージモードで事前に強化されたイメージと不変性を使用する
- Red Hat System Roles による自動化とオーケストレーションで効率化を実現する
- 信頼できるセキュアなソフトウェア・サプライチェーンを構築する
- SELinux と fapolicyd による堅牢なランタイム保護のメリットを得る
セキュリティとコンプライアンスに対する Red Hat のアプローチ
AI 時代のプラットフォーム・エンジニアリングの現状
This detail provides a comprehensive review of the State of Platform Engineering in the Age of AI survey, conducted by Illuminas. Explore the details.