DevOps における API セキュリティの役割
公開: 2020-06-04API (アプリケーション プログラミング インターフェース) を使用すると、Web アプリとプログラムが相互に通信および対話できるようになります。
これらは、アプリとプログラムがデータを共有し、互いに連携して動作し、プロセスをスムーズかつシームレスに実行するのに役立ちます。 これにより、企業は顧客体験を充実させ、価値を高めることができます。
API がデジタル戦略の変革において極めて重要な役割を果たし、Web ベースのインタラクションのプログラミングに不可欠なコンポーネントになったことは明らかです。
API の人気と使用率が高まるにつれて、API を使用する際のセキュリティと、API を利用する組織を保護するための対策が懸念されています。 本日は、この API セキュリティの問題と、DevOps での API の役割について取り上げます。
セキュリティ上の API の重要性
すべての企業は、さまざまな Web アプリケーションとプログラムを使用して業務を実行しています。 ビジネス オペレーションを最適化するには、これらのアプリとプログラムが相互に対話することが重要です。
現在、組織は異種システムの統合に年間 5,900 億ドル以上を費やしています。 API は、既存のテクノロジを活用し、あるアプリまたはプログラムの機能を別のアプリまたはプログラムで使用できるようにするためのソリューションとして機能します。
これにより、企業は事業をより迅速に拡大し、同時にコストを削減できます。 インターネットの可能性を切り開いたクラウドのように、API は管理の共有に焦点を当てた別の進歩を推進しています。
すべての企業の協会は、ビジネス フォームを変更する API とその機能を研究することを望んでいます。 API を使用して DevOps 環境を強化するためのいくつかの考慮事項は次のとおりです。
自動アプリ構築
アプリケーションは、変更や更新のために分解されることがよくあります。 通常、複数のアプリが同じファイル システム、コネクタ、データベース、およびテストを使用します。 組み込みの自動化ツールにより、開発者は変更や更新を行いながら複数のアプリをすばやく再構築できます。
自動化されたセキュリティ テスト
多くの場合、コードが完成してアプリの準備が整った後、テストは保存されます。 しかし、これは最も効率的なルートではありません。 開発者は、継続的なテストに沿ってテストを作成する必要があります。これにより、展開がより迅速かつスムーズになります。
継続的な管理
バージョンがリリースされるたびに、開発者は他のチームとのスムーズな統合を可能にするためにテストする必要があります。 効果的なバージョン管理により、他のチームはアプリが自分のアプリと互換性があるかどうかを即座に確認できます。
自動展開
アプリケーションの作成方法とデプロイ方法を記録することは重要です。 これは、どの環境と構成が最適に機能し、どの展開が重要なテストに失敗するかを判断するのに役立ちます。 この種の式を作成すると、将来の展開がより迅速かつ適切になります。
再利用
API 統合 DevOps のアプローチにより、チームは、ソフトウェアがパイプラインをどのように移動するかを認識できるようになります。 チームは不均衡ではなく、より安全にソフトウェアにアクセスできるようになり、ソフトウェアを効率的かつ効果的に使用する方法も理解できるようになります。 API 主導の接続性は、企業がコストを削減しながら容易に進歩および拡大するのに役立つことが証明されています。 実際の例を見てみましょう。
API 統合 DevOps モデルの成功例
再利用可能な API を使用した最も成功した事例の 1 つは、DevOps のパイオニアであるSpotify のものです。 このテクノロジーを活用して、同社は 60 か国にアプリを展開することで急速に成長することができました。 多くの企業で発生しているように、Spotify も、異なる部門によって作成されたアプリケーションの複製を目撃しました。各チームとそのアプリケーションは、独自のサイロに存在します。
同社は API-DevOps モデルを使用してアプリケーション ネットワークを構築し、全体的なデータ共有を改善しました。 各アプリをゼロから再作成する代わりに、これによりビジネスが開かれ、アプリをより迅速に作成して展開し、より多くの市場に参入してリーチを拡大し、顧客を迅速に獲得することができました。
Netflixは、API 主導の DevOps が成功に重要な役割を果たしたもう 1 つの好例です。 同社が最初に DVD の出荷からオンライン ストリーミングへと進化したとき、未知の領域に足を踏み入れました。 しかし、自動化への取り組みと DevOps アプローチにより、他社に新しい基準を設定する市場のリーダーとなっています。
API-DevOps モデルに移行した他の企業には、Amazon、Adobe、Sony Pictures、Etsy、Nordstrom、Facebook、Walmart、Target などがあります。 これらの企業は、DevOps を試行およびテストしており、成功の証拠を持っています。 彼らは、DevOps を使用して年間何百万ものロールアウトを行っています。Amazon は、1 日 136,000 の技術ロールアウトを行うように明確に指示されています。
しかし、このテクノロジーを採用するのは、大企業や人気ブランドだけではありません。 企業の大小、新旧を問わず、API と DevOps を活用してビジネス モデルを構築できます。 このモデルが自分のビジネスに適しているかどうか疑問がある場合は、次に同様の懸念に対処します。
API-DevOps モデルを実装するための実際的な考慮事項
前述のように、DevOps は大企業向けに設計されたもののように見えます。 しかし実際には、DevOps はあらゆる規模のあらゆるセクターの企業に採用される可能性があります。 これには、銀行、インシュアテックの新興企業、小売業者が含まれます。
現在、企業が 1 日に何百万ものロールアウトを行っていることはわかっていますが、これには継続的な展開も必要になることを覚えておく必要があります。 これには、リリース候補が作成されると、それが自動的に本番環境にデプロイされるように、自動化を拡張するプロセスが伴います。 これはいくつかのビジネスやプロジェクトで機能しますが、すべてではありません。
今日の開発の速度と量では、品質、セキュリティ、および将来のアプリケーションについても考慮する必要があります。 DevOps などの新しいアーキテクチャへの移行には時間がかかり、必ずしもスムーズではありません。 関係するすべてのチームにとって、従来の方法を根絶し、新しい慣行に移行することは課題です。
移行は、開発プロセスでボトルネックを引き起こす可能性があり、潜在的な市場投入までの時間に最初に影響を与える可能性があります。 このような状況を回避するには、DevOps を簡単かつシームレスに統合するように設計されたソリューションが必要です。 これを行うには、さまざまな役割とその相互関係を強化し、すべてのプレーヤーが周囲の変化にスムーズに対応できるようにする必要があります。
API を提供する組織における役割
役割は組織によって異なります。 ただし、理想的な DevOps 環境を表す例として使用できる主要な役割がいくつかあります。 API DevOps を提供する上で最も重要な 4 つの役割を以下に示します。
- スクラム リード:スクラム チームを率いて、チームの他のメンバーの条件をブロックする計画と管理を行います。 彼らはバックログを処理し、反復のための入力/ユーザー ストーリーを整理する際に顧客と調整します。
- 開発者: API ロジックを考慮しながら、入力/ユーザー ストーリーを技術的な機能に変換および開発します。
- アーキテクト:技術スタッフにガイダンスとサポートを提供します。 ベスト プラクティスと、ビジネス要件から技術戦略を構築する方法に取り組みます。
- DevOps:ソフトウェア ソリューションを統合して、アプリケーションとインフラストラクチャをビルド、パッケージ化、展開、およびテストします。 適切な監視とメンテナンスにより、さまざまな環境でスムーズに機能を強化および移行します。 これらの役割は、継続的な統合、配信、展開を可能にするのに大いに役立ちます。
API を使用してアプリケーション セキュリティをデプロイする方法
DevOps を使用する企業にとっての大きな課題は、市場投入までの時間に影響を与えず、生産を妨げない適切なセキュリティ プラクティスを確立することです。 多くの開発者は、組織が実装した API セキュリティのレベルに非常に満足しています。 しかし、クライアントの 1 つだけが脆弱になるには、悪いコードを 1 回繰り返す必要があります。

Imperva の調査によると、企業は平均 363 個の API を管理していることが明らかになりました。 また、その 3 分の 2 以上がアプリケーションの API を公開して、パートナーや開発者が自社のソフトウェア プラットフォームや Web アプリを活用できるようにしていることも明らかになりました。 これには利点がありますが、セキュリティ上のリスクも伴います。
API ゲートウェイとツールを適切に構成して、API を使用するビジネスのセキュリティを確保するために適切なセキュリティ対策を講じることができます。 セキュリティ戦術を展開するときは、これを念頭に置く必要があります。
使用できるいくつかのセキュリティ戦略を次に示します。
継続的な自動化されたセキュリティを維持する
DevOps と聞くと、遅かれ早かれ、継続的な実装 - 継続的な展開 (CI/CD) について耳にするでしょう。 このプロセスは、開発プロセスと立ち上げプロセスをより適切に統合するのに役立ち、品質を損なうことなく、新しい機能とアプリケーションの立ち上げをより迅速に行うことができます。
通常、セキュリティは開発後にアプリをテストするために最後に登場します。 しかし、CI/CD の登場とともに、継続的なセキュリティの必要性も強くなりました。 開発のあらゆる段階で適用されるセキュリティ ソリューションとテストを自動化することで、欠陥や抜け穴を即座に検出できます。 これにより、開発のどの段階で何が問題だったのかを突き止めようとして最後にセキュリティに費やす時間が短縮されます。
さらに、自動化されたセキュリティ ソリューションは、ビジネスの成長に合わせてスケーリングを可能にし、迅速な展開をサポートします。
API を使用して Web アプリケーション ファイアウォール (WAF) を環境にデプロイする
API のセキュリティを確保するには、他の Web アプリケーションと同様に、送受信の HTTPS/HTTP を検査する WAF (Web アプリケーション ファイアウォール) ソリューションが必要です。 ファイアウォールは、攻撃のブロック、プロファイリング、ボット、および DDoS 保護、乗っ取りの回避などの機能を提供します。 WAF は、API ゲートウェイを補完する特殊なセキュリティ機能を提供し、最新のアプリケーション環境にとって重要です。
進化するセキュリティ ソリューションを採用する
アプリケーション環境と利用可能なツールは急速に進歩しています。 セキュリティ ソリューションが厳格に構築されている場合、以前の戦略から抜け出し、新しい開発についていくことは困難になります。
セキュリティ ソリューションは、今日のニーズに合わせて進化する必要があります。 たとえば、現在のアプリケーション アプローチ (DevOps、API、CI/CD、クラウド、コンテナー) のセキュリティには、次のものが必要です。
- 自動化された開発チェーンに簡単に統合でき、他のツールと連携して使用できるソリューション。
- 開発の安定した継続性を確保するためのセキュリティツールと対策の高可用性。 また、過度の IT オーバーヘッドを発生させたり、正当な Web トラフィックをブロックしたりすることなく、機密データとアプリケーションを保護する必要があります。
- パブリック クラウドまたはプライベート クラウド、コンテナー、またはオンプレミス専用であるかどうかに関係なく、偏りのないアプリケーション。 これにより、従来のアプローチからアジャイルな DevOps へのスムーズな移行が、セキュリティ ラグなしで可能になります。
- クラウドとオンプレミスのゲートウェイを管理する集中型コンソール。 これにより、すべての展開でセキュリティを統合および簡素化できます。
すべてのデータを保護する
企業が DevOps、API、CI/CD に重点を移すと、データの保護から遠ざかる傾向があります。 アプリケーションとインフラストラクチャが DevOps の下でより統合および分散されるにつれて、データのセキュリティを維持することがさらに重要になります。 時間が経つにつれて、複雑な相互依存関係が表面化し、クラウド、コンテナー、API、およびサービスにまたがる可能性があります。
この複雑なエコシステムに対処する良い方法は、DCAP (データ中心の監査と保護) ソリューションを実装することです。 ファイル、データベース、およびリポジトリに保存されているデータを保護するのに役立ちます。 さらに、監査、セキュリティと権利、およびリアルタイム監視にアクセスできます。
古い習慣を捨てるな
テクノロジーが進歩するにつれて、過去の脆弱性やセキュリティの脅威を忘れることは賢明ではありません。 多くの脅威は何十年も前のものですが、いまだに潜んでおり、DevOps 環境を脅かしています。 新しい戦略を実装する際には、古い戦略を組み込むか、一緒に展開するようにしてください。
DevOps では、API が公開されている場合、コードをより頻繁にデプロイしている場合、およびスタックにサードパーティのソフトウェアとサービスがある場合、攻撃ベースが大きくなる可能性があることに注意してください。 あなたの会社は、次のことを考慮する必要があります。
- きめ細かなアクセス制御を実施
- アプリのアクセスとイベントを定期的に監査する
- 保管中のデータと通信中のデータを暗号化する
- 動作とアクティビティを監視して攻撃を防止
- 悪意のあるトラフィックをブロックし、マルウェアをフィルタリングする
- サービスとインフラストラクチャを強化して攻撃対象領域を減らす
開発プロセスの早い段階でセキュリティ対策を統合することで、本番コードの品質を向上させ、将来のアプリケーションのために規定された公式のようなものを開発できます。
API の未来
組織は、独立したアプリとプログラムの間のギャップを埋め、代わりにそれらの間の適切で一貫した通信を促進するため、API に急速に移行しています。 API はすべてのアプリケーションの重要な部分になっています。多くの企業が API と DevOps を使用してアプリケーションを開発している理由は容易に理解できます。
管理ツールを使用することで、API の安全性と信頼性を高めることができます。 組織は、開発を改善するために定期的な API 監査を実行する必要があります。 これは、ハッキング攻撃や悪意のあるボットが侵入するのを防ぐのに大いに役立ちます.
API には、開発を迅速化し、品質を損なうことなく市場投入までの時間を短縮し、顧客へのリーチとビジネス価値を高める機能があります。 API主導のアプローチは、より多くの組織が採用するにつれて指数関数的に成長することは間違いありません.
結論
最近、組織は IT 戦略を計画する際に DevOps に主な注意を向けています。 また、API をスマートに実装することで、DevOps 主導のビジネスの有効性がさらに向上します。 ただし、前述したように、1 つの API の脆弱性が DevOps 環境全体を公開し、一連のイベント全体を混乱させる可能性があります。
一方、API を使用したセキュリティ ファーストのアプローチに従うと、そのような懸念が解消される可能性があります。 API スキャンを頻繁に実施し、脆弱性を探すことは、組織が API の機能と信頼性を維持するのに役立つだけでなく、DevOps パイプライン全体の安全性とセキュリティを確保するのにも役立ちます。