|
今日、DevOpsにおけるセキュリティシステムの確立は、これまで以上に重要になっています。「2021年エンタープライズDevOpsスキル強化レポート」によると、回答者の56%がDevSecOpsを自動化ツールの不可欠な要素と考えていることが示されています。しかし、DevSecOpsのアプローチは、単にセキュリティツールやプラクティスを追加するだけではありません。他のDevOpsアプローチと同様に、文化、プロセス、そしてテクノロジーも組み込まれています。 DevSecOpsが企業内で戦略的に導入されていない場合、セキュリティ上の障害や問題が容易に発生する可能性があります。適切な選択を行うことで、これらの潜在的な落とし穴を最初から回避することができます。この記事では、業界の専門家数名に知見を共有していただきました。彼らがDevSecOpsにおいて特定した8つの主要な落とし穴をご紹介します。 1. すぐに成功してすぐに利益を得ることに焦り、常に一夜にして結果を達成したいと願う。目標達成の鍵は、小さなステップから段階的に始めることです。理想的には、パイロットプロジェクトから始め、DevSecOpsのパイプラインとプロセスの実装を担当するクロスファンクショナルチーム(アプリケーション開発、運用、セキュリティなど)を編成します。さらに、目標とユースケースを定義し、反復的な改善に向けて準備を進めます。チームが良好なパフォーマンスを示したら、実装プロセスと結果を文書化し、市場投入までの時間の短縮やセキュリティ問題へのプロアクティブな対応など、それに応じたビジネス価値を評価します。— カーステン・ニューカマー、Red Hat クラウドセキュリティ戦略ディレクター 2. スキャンツールは CI/CD (継続的インテグレーション/継続的デリバリー) パイプラインに追加されましたが、スキャン結果が十分に活用されていませんでした。「スキャンのためのスキャンは、往々にして誤ったセキュリティ意識を生み出し、多くのノイズを生み出すだけです。最も重要なのは、セキュリティスキャンで発見された問題を、実用的な是正措置へとどのように変換するかを検討することです。」 - Rob Cuddy、HCL Technologies グローバルアプリケーションセキュリティエバンジェリスト 3. 文化的な負担を避ける10年以上前にチームがDevOpsの導入を開始した際、まず最初に確立する必要があったのは、文化的なアイデンティティでした。DevOpsは本質的に、コラボレーション、共感、そしてイノベーションを重視しています。この文化を正しく理解できないチームは、アプリケーションの構築、テスト、継続的なデプロイ、そして実行が困難になります。DevSecOpsにも同じことが当てはまり、チームはより多くの文化的な問題に直面することになります。開発者とセキュリティ担当者は長年、異なる目標に焦点を当ててきたため、深刻な意見の相違が生じています。開発者は製品開発のスピードを重視し、セキュリティ部門はリスク軽減を優先しています。 「実のところ、セキュリティはコード品質の一部に過ぎず、高品質なコードを提供することはすべてのチームにとって根本的な利益です。この点で団結し、それに応じた文化を築くことができるチームが成功します。戦術的な実装に重点を置き、文化的な調査や関連する課題を軽視するチームは、必然的に苦戦するでしょう。」— ジョニ・クリッパート、StackHawk共同創設者兼CEO 4. ツールの理解不足、時期尚早な実装、既存のプロジェクト ワークフローの中断。成功率を高めるには、セキュリティ対策を一つずつ、ゆっくりと導入し、その成果がチームにとって真に価値のあるものとなるようにするのが最善です。セキュリティプロセスを継続的に監視・改善し、業務への影響を最小限に抑えましょう。これには、結果の評価、スキャンツールの調整、エンジニアリングチームへの誤検知の最小化などが含まれます。この文化的な変化を実現できなければ、DevSecOpsは失敗する可能性が高いでしょう。 「シフトレフトの重要性は、ソフトウェアプロジェクトの開発や製品リリースの最初から、すべての役割と責任がすべての参加者に明確かつ簡潔に割り当てられていることです。これにより、DevSecOpsとセキュリティが使い慣れた業務システムに統合されます。エンジニアが既に使用しているツールとセキュリティプロセスがより適切に統合されるほど、スタートアップはよりシンプルになります。」— DevOps Institute グローバルコミュニティアンバサダー兼アジア太平洋・中東・アフリカ地域責任者、ディーラジ・ナヤル 5. 上級管理職からの承認を得られなかった。DevOpsと同様に、DevSecOpsの本質はチームや役割ではなく、文化です。文化的な問題に対処せずに、既存のチームやプロセスにセキュリティ/DevSecOpsエンジニアの役割を追加するだけでは、期待される成果は得られません。そして、文化は通常、経営トップから生まれます。したがって、適切な文化を確立するには、上級管理職チームがDevSecOpsをサポートしていることを確実にすることが不可欠です。— Tasktop クラウド製品バリューストリーム責任者、David Slater 6. デリバリーパイプラインに自動安全性チェックが導入されましたが、フィードバック ループは考慮されていませんでした。古いコードベースを扱う場合、企業は多数の欠陥を発見している可能性があります。しかし、「すべての欠陥に対してJiraチケットを作成する」というデフォルトの対応では不十分です。よくある落とし穴の1つは、新しいアプローチを導入するために必要な時間を過小評価することです。DevSecOpsを成功させるには、デリバリーチームがソリューションの構築に積極的に関与する必要があります。—Xodiac創設者、ピーター・マディソン 7. セキュリティ統合の反省の失敗これは、適切な議論なしにツールやプロセスを性急に導入することを意味します。チームは変更を実施しますが、変更自体の影響について協力して検討しません。セキュリティは、厳格な停止メカニズムであってはなりません。むしろ、より意味のある検討は、「新しい統合要素は新たなリスクをもたらすだろうか?」という点であるべきです。 運用にも同じ議論が当てはまります。セキュリティ上の脆弱性が発見された場合、まず問題を封じ込めるために何をすべきか、そして将来同様の問題が発生するのを防ぐにはどうすればよいか?DevOpsにおける落とし穴と同様に、一度「穴」が見つかったら、後戻りして将来の改善点を特定する必要があります。— マーク・ピーターズ氏(Novettaテクニカルリード) 8. アーティファクトが DevSecOps レビューに合格すると、100% のセキュリティ信頼が付与されます。「DevSecOpsは終わりではなく、継続的で長い道のりです。この現実を常に認識し続ける限り、DevSecOpsの泥沼に陥ることはありません。」— TD IT開発マネージャー、シャラス・ドッダ |
DevSecOpsの落とし穴を避ける方法
関連するおすすめ記事
-
Xiaomi副社長 崔宝秋氏:オープンソースと技術革新の真髄
-
HarmonyOS オープンソースサードパーティコンポーネント - uCrop_ohos 画像切り抜きコンポーネント
-
SUSE はハイパーコンバージド インフラストラクチャである Harvester v1.1.0 をリリースしました。
-
-
89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">resource ( s )
2022/07/02 13:17:33 1 つのリソースを作成しています
2022/07/02 13:17:33 1 つのリソースを作成しています
2022/07/02 13:17:33 検出キャッシュをクリアしています
2022/07/02 13:17:33 タイムアウト1 分で4つのリソースの待機を開始
2022/07/02 13:17:39 43個のリソースを作成しています( s )
2022/07/02 13:17:39 5分0 秒のタイムアウトで43のリソースの待機を開始
2022/07/02 13:17:40 デプロイメントの準備ができていません: argocd / argocd - applicationset - controller 。 予想される1 個のポッドのうち0 個が準備ができています
2022/07/02 13:17:42 デプロイメントの準備ができていません: argocd / argocd - applicationset - controller 。 予想される1 個のポッドのうち0 個が準備ができています
……
2022/07/02 13:19:44 デプロイメントの準備ができていません: argocd / argocd - applicationset - controller 。 予想される1 個のポッドのうち0 個が準備ができています
2022/07/02 13:38:27 デプロイメントの準備ができていません: argocd / argocd - dex - server 。 1 個のポッドのうち0 個が準備完了です
2022/07/02 13:38:30 リリースインストールに成功しました: argocd / argo - cd - 4.9.11
2022-07-02 13:38:30 ✔ [ 成功] ツール( argocd / default ) の作成が完了しました。
2022 - 07 - 02 13 : 38 : 30 ℹ [ 情報] -------------------------- [ 処理の進行状況: 4/4 。 ] --------------------------
2022 - 07 - 02 13 : 38 : 30 ℹ [ INFO ] 処理中: ( argocdapp / default ) -> 作成...
2022-07-02 13:38:31 ℹ [ INFO ] application . argoproj . io / dtm - test - go が作成されました
2022-07-02 13:38:31 ✔ [ 成功] ツール( argocdapp / default ) の作成が完了しました。
2022-07-02 13:38:31 ℹ [ 情報] -------------------- [ 処理が完了しました。 ] --------------------
2022-07-02 13:38:31 ✔ [ 成功] すべてのプラグインが正常に適用されました。
2022-07-02 13:38:31 ✔ [ 成功] 申請が完了しました。適用プロセス中、実行状態は定義された状態バックエンドストレージに保存されます。例えば、ローカルストレージを使用している場合、実行状態はルートディレクトリのdevstream.stateファイルに保存されます。合計4つのツールチェーンがあり、最初の2つが完了し、最後の2つが認識された場合、最初の2つのプラグインの状態がこのファイルに保存されます。次回の再適用時には、最後の2つのツールチェーンのみを実行する必要があります。
上記で定義したツールチェーンは、最終的に GitHub 上に Golang Web 用のスキャフォールディングされたアプリケーション コード リポジトリを作成します。
GitHub Actions は、CI 操作と Docker イメージの構築に使用されます。
CI プロセスは最終的にイメージを Docker Hub にプッシュします。
その後、ArgoCD が Kubernetes にデプロイされます。
$ kubectl get pods -n argocd
名前準備完了ステータス再起動年齢
argocd - アプリケーション- コントローラー- 0 1 / 1 実行中0 5 分55秒
argocd - アプリケーションセット- コントローラー- 64 d8c477f4 - 2 wrg6 1 / 1 実行中0 5 分55秒
argocd - dex - サーバー- dbdbf5499 - krmfz 1 / 1 実行中0 5 分35秒
argocd - 通知- コントローラー- b67c4bdb4 - 22 t9l 1 / 1 実行中0 5 分55秒
argocd - redis - df9db799b - 8 gbpv 1 / 1 実行中0 5 分55秒
argocd - リポジトリ- サーバー- 56769 cdd47 - zs65j 1 / 1 実行中0 5 分55秒
argocd - サーバー- 7 d4745f689 - w5pp7 1 / 1 実行中0 5 分55秒最後に、ArgoCDを使用してCD操作を実行し、サンプルアプリケーションをKubernetesクラスターにデプロイします。基本的には、ArgoCDアプリケーションオブジェクトを作成します。
$ kubectl アプリケーションを取得- n argocd
名前同期ステータスヘルスステータス
dtm - テスト- go 不明健康ArgoCD を通じて、デプロイされたアプリケーションの詳細を表示することもできます。
最後に、ツールチェーン全体を削除する場合は、`dtm delete` コマンドを実行するだけです。
プロセス全体は非常にスムーズでした(ただし、何らかの理由でGitHubへのアクセスが非常に遅かった点を除けば)。必要なプラグインを設定ファイルで定義するだけで済みます。プラグインの設定方法の詳細については、公式ドキュメント(https://docs.devstream.io/en/latest/plugins/plugins-list/)をご覧ください。
YAML設定ファイルに必要なDevOpsツールを定義するだけで、たった1つのコマンドでDevOpsツールチェーンとSDLCワークフロー全体を構築できます。DevStreamはまさに魔法のツールと言っても過言ではありません。
Git リポジトリ: https://github.com/devstream-io/devstream。
-
GNU KHATA: オープンソースの会計管理ソフトウェア