* プロモーションの引き換えに関する規則と条件をご覧ください
アプリケーション・プログラミング・インターフェース(API)は、デジタル経済の不可欠な構成要素となっています。さまざまなソフトウェアコンポーネントが簡単に相互通信できるようになるため、APIはイノベーション、迅速なソフトウェア開発、プラットフォーム間でのデータ共有機能に不可欠です。
APIライフサイクルとは、APIを設計、構築、管理し、最終的に廃止するプロセスです。APIライフサイクルは、新しいAPIのアイデアから始まり、設計、開発、テスト、展開へと進み、最終段階であるデプリケーションへ至ります。ライフサイクルの各段階が、APIの機能、安全性、ユーザーに対する価値の維持に寄与します。
APIライフサイクル管理
APIライフサイクル管理とは、ライフサイクルのすべての段階においてAPIを戦略的に監視し、管理することを指します。APIライフサイクル管理は、APIの開発と展開のさまざまな段階を連係させることで、APIが高品質の機能を提供し、サイバー脅威から保護され、API関係者のニーズを満たすようにします。
通常、複数のチームがAPIライフサイクル管理の責任を負います。
開発チームはAPIの設計、開発、テストを担当します。
DevOpsチームは展開、自動化、本番環境のメンテナンスに注力します。
製品マネージャーはAPI戦略の策定やユースケースの定義に関与する場合があります。
APIライフサイクルの段階
ライフサイクル全体を通じたAPI管理にはさまざまなフェーズがあり、単一の定義が存在するわけではありません。しかし、ほとんどのAPIプログラムには次の段階が含まれます。
1. 計画と設計
APIライフサイクルの初期設計フェーズでは、API戦略を確立し、APIの目的を定め、潜在的なユースケースを特定し、APIの機能の概要をまとめます。APIの設計では、APIアーキテクチャを決定する必要があります。APIアーキテクチャとは、特にマイクロサービスアーキテクチャにおける他のシステムやコンポーネントとのインタラクションの方法を定める、APIの構造に関する大まかな計画です。APIコントラクトに、期待されるAPIのふるまいの概要をまとめます。APIの設計には、APIの仕様とスキーマの作成も含まれます。多くの場合、REST APIにはOpenAPI、GraphQL APIにはSDL、さまざまなタイプのAPIのドキュメント化とテストにはSwaggerというように、さまざまなツールを使用します。
2.開発
開発フェーズでは、開発チームがAPIコントラクトに記載されている仕様に合わせてAPIをコーディングします。また、さまざまな設定やパラメーターを使用してAPIを設定し、APIがどのように動作し、他のシステムとのインタラクションを行うかを定めます。設定には、エンドポイント、メソッド、認証メカニズム、レート制限、応答形式、およびAPIが正常かつ安全に機能するようにするその他の重要な要素を指定することが含まれます。
3.テスト
このフェーズでは、APIをランタイム環境での厳格なテストに送り、ソフトウェアの脆弱性やバグを特定して修正します。APIテストでは、APIが定められた仕様を満たし、意図したとおりにエンドポイントと連携するようにします。品質保証テスターは、各APIの機能、パフォーマンス、セキュリティを手動でテストします。組織は、開発ライフサイクルの早い段階でAPIのテストを開始し、次のことを行う必要があります。
各APIに適切なセキュリティ制御が組み込まれるようにする
APIが本番環境に到達する前に、コーディングエラーや誤設定などの潜在的な脆弱性に対処する
APIテストは、地理的に異なる地域から行われる場合もあれば、CI/CDパイプライン内で自動的に行われる場合もあります。APIテストには次のようなさまざまなテストが含まれます。
APIが設計段階で示された期待に沿っていることを確認するコントラクトテスト
APIが指定された時間内に応答できることを確認するパフォーマンステスト
APIの脆弱性を見つけて修正するためのAPIセキュリティテスト
APIセキュリティテストの詳細については、以下の「APIセキュリティのための主な機能」を参照してください。
4.展開
テストに合格したら、APIは本番環境に展開されます。開発チームは、CI/CDパイプラインとAPIゲートウェイを使用して、展開プロセスの標準化と自動化を行うことができます。展開中に、外部ユーザーや開発者がパブリックAPIを利用できるようになります。
5.監視とメンテナンス
展開後、APIのパフォーマンス、セキュリティ、使用状況が継続的に監視されます。DevOpsエンジニアは、APIのパフォーマンスとセキュリティが一定のしきい値や指標を満たしていない場合に自動的に通知するようにアラートを設定できます。このフェーズでは、メンテナンスやアップデートによって対処すべきセキュリティ上の脆弱性、エラー、レイテンシーが明らかになります。
6.バージョン管理とアップデート
API内の問題が発見された場合、開発チームとDevOpsチームが新しいバージョンのAPIを開発してリリースする可能性があります。これらのバージョンは、後方互換性を確保するように管理する必要があります。
7.デプリケーションおよび廃止
デプリケーションとは、APIが時代遅れになった場合や、重大な問題があるため新しいバージョンが必要である場合に、APIを置き換えることを意味します。デプリケーション時には、関係者とユーザーに通知し、廃止のタイムラインを提示します。廃止の際には、DevOpsチームがAPIの使用を停止し、あらゆる依存関係が適切に管理されるようにして、ユーザーに機能的な問題が生じることを回避します。
APIセキュリティのための主な機能
今日の脅威状況では、API探索、ポスチャ管理、ランタイム保護、APIセキュリティテストを提供する完全なAPIセキュリティソリューションが求められています。この包括的なアプローチは、APIライフサイクル全体でAPIを管理してセキュリティを確保する上で、組織の既存のツールを補完する重要な役割を果たします。
API探索:ほとんどの組織では、APIトラフィックの大部分が可視化されていません。多くの場合、APIはすべてAPIゲートウェイ経由でルーティングされると想定されているからです。しかし、必ずしもそうではありません。一般的な組織のAPIの多くは管理されていません(例えば、忘れられているが、依然として動作していて、機微な情報に接している休眠APIなど)。インベントリが完全かつ正確なものでなければ、エンタープライズはさまざまなリスクにさらされてしまいます。必要なコア機能は次のとおりです。
設定やタイプに関係なく、すべてのAPIを検索してインベントリを作成する
休眠API、レガシーAPI、ゾンビAPIを検知する
忘れられているドメイン、見落とされているドメイン、またはその他の不明なシャドードメインを特定する
盲点を解消し、潜在的な攻撃経路を明らかにする
APIポスチャ管理:完全なAPIインベントリを導入した場合、APIを通過するデータフローのタイプを把握し、規制要件への準拠に与える影響を理解することが重要になります。APIポスチャ管理では、トラフィック、コード、設定が包括的に示され、組織のAPIセキュリティポスチャを評価することができます。必要なコア機能:
インフラを自動的にスキャンして、設定ミスや隠れたリスクを把握する
カスタムワークフローを作成して、主要関係者に脆弱性を通知する
機微な情報にアクセスできるAPIと内部ユーザーを特定する
検知した問題に重大度のランクを付けて、修復の優先順位を設定する
APIランタイムセキュリティ:「データ侵害を想定する」という概念については周知のことでしょう。API固有の侵入や攻撃は、必然の域に達していると言えます。本番環境で稼働しているすべてのAPIにおいて、攻撃をリアルタイムで検知してブロックできる必要があります。必要なコア機能:
データの改ざんや漏えい、ポリシー違反、不審なふるまい、API攻撃を監視する
ネットワークの変更や面倒なエージェントのインストールを行うことなく、APIトラフィックを分析する
既存のワークフロー(チケット発行、SIEMなど)と統合して、セキュリティ/運用チームに警告する
攻撃や悪用をリアルタイムで阻止し、修復の一部または全部を自動化する
APIセキュリティテスト:API開発チームは、1秒でも早く作業するよう求められています。あらゆるアプリケーションの開発において、スピードは非常に重要です。しかし、急ぐあまり脆弱性や設計上の欠陥が発生しやすくなったり、検知されないまま進行してしまったりするものです。開発中のAPIは、本番環境にリリースする前にテストを実施しておくことで、リスクだけでなく、脆弱なAPIを修正するコストも大幅に軽減することができます。必要なコア機能:
さまざまな自動テストを実行して、悪性トラフィックをシミュレーションする
APIを本番環境に展開する前に脆弱性を発見し、攻撃が成功するリスクを緩和する
定められたガバナンスポリシーやルールに照らして、APIの仕様を確認する
APIに特化したセキュリティテストをオンデマンドで、またはCI/CDパイプラインの一環として実行する
APIライフサイクル管理の利点
効果的なAPIライフサイクル管理は、組織やチームにいくつかの大きなメリットをもたらします。
高品質のAPI:適切なライフサイクル管理により、APIが適切に設計され、セキュリティが確保され、ユーザーのニーズが満たされるようになります。
強力なAPIセキュリティ:チームはライフサイクル管理を通じてAPIの脆弱性を特定して修正し、攻撃者がAPIを攻撃ベクトルとして使用できないようにすることで、APIセキュリティを強化できます。
効率的な開発:質の高いライフサイクル管理により、開発プロセスが合理化されるため、チームは新しいAPIやバージョンを迅速に作成できます。
パフォーマンスの向上:APIライフサイクル中の継続的な監視は、APIパフォーマンスを最大限に高めるために役立ちます。
バージョン管理:APIライフサイクル管理により、チームはAPIを新しいバージョンにシームレスにアップグレードしたり、必要に応じて過去のバージョンに戻したりできるようになります。
APIライフサイクル管理の課題
APIライフサイクル管理は、ITチームにいくつかの課題をもたらす可能性があります。
セキュリティ:APIは機微な情報を公開することが多く、セキュリティが不十分であることが多いため、サイバー犯罪者にとって主要な攻撃ベクトルとなっています。脅威を防止するために、セキュリティチームはレート制限、堅牢な認証、コード内のセキュリティ上の脆弱性の特定と根絶のための機能を導入する必要があります。
バージョン管理:チームは、既存の統合で問題が発生しないようにするために、APIの新しいバージョンごとに後方互換性を確保する必要があります。
ドキュメンテーション:最新のドキュメントを維持することは、開発者やAPIを利用する関係者にとって不可欠です。チームは急いで新しいバージョンの開発と展開を行うため、このタスクは見落とされがちです。
APIライフサイクルを管理するためのツール
ITチームはさまざまなAPI管理ソリューションを使用し、APIライフサイクルを進めることができます。
API管理プラットフォーム:AWS API GatewayやMicrosoft Azure API Managementなどのプラットフォームは、APIエコシステムの管理、セキュリティ確保、監視のための包括的なソリューションを提供します。
API設計ツール:SwaggerやOpenAPIなどのソリューションは、APIの仕様やドキュメントを作成するためのツールを提供します。
自動化ツール:APIのテストと展開の際に、JenkinsやGitLab CI/CDなどのツールを使用してワークフローを合理化できます。
API分析:Google Analytics for APIなどのプラットフォームは、APIの使用状況、パフォーマンス、指標を追跡します。
開発者ポータル:これは、APIドキュメント、テスト、コミュニティエンゲージメントのための一元化されたハブを提供します。
よくある質問(FAQ)
API(アプリケーション・プログラミング・インターフェース)は、さまざまなソフトウェアコンポーネントやプログラムが相互に通信してデータを共有するための一連のプロトコルと定義です。APIは、アプリケーションがインタラクションを行う方法を定めることで、さまざまなアプリケーションが情報を要求して共有できるようにします。
APIライフサイクルとは、ITチームがAPIの設計、開発、テスト、展開、監視、廃止を行うために実行する一連のステップです。
APIファーストは、開発プロセス全体を通じてAPIを重視する開発モデルです。APIファーストのアプローチでは、APIを開発の基礎的要素として認識し、APIを後回しで処理するのではなく、他のアプリケーションよりも前にAPIのコードを記述します。
Akamai が選ばれる理由
Akamai は、オンラインビジネスの力となり、守るサイバーセキュリティおよびクラウドコンピューティング企業です。当社の市場をリードするセキュリティソリューション、優れた脅威インテリジェンス、グローバル運用チームによって、あらゆる場所でエンタープライズデータとアプリケーションを保護する多層防御を利用いただけます。Akamai のフルスタック・クラウド・コンピューティング・ソリューションは、世界で最も分散化されたプラットフォームで高いパフォーマンスとコストを実現しています。多くのグローバル企業が、ビジネスの成長に必要な業界最高レベルの信頼性、拡張性、専門知識を提供できる Akamai に信頼を寄せています。