先週の記事でも書いたのですが、DX化を推進する過程で、今の大企業の社内システムは、下図のような多数の小さなサービスを管理しきれない数のAPIやRPAで疎結合している状態になりつつあります。

ここで、API(Application Programming Interface)もRPA(Robotic Process Automation)も、異なるシステム同士をつなぐという点では、似たような役割を果たします。
ただ、つながるサービスが、APIを使用できるのであれば、APIを使う方が生産性がいいと思います。ただ、APIの仕様はサービスの提供元に依存するので、自社でコントロールできる範囲ではありません。ですので、APIが使用できないのであれば、RPAを活用して業務の自動化を図ることを検討するべきでしょう。RPAは人間がやっている作業を自動化するツールですので、APIよりも汎用性があります。ただ、システムのUIが変わったりすると、人間であれば柔軟に対応できますが、RPAは誤作動を招きます。
| RPA(Robotic Process Automation) | API(Application Programming Interface) | |
|---|---|---|
| 役割 | 人間が行っている定型作業を自動化するツール | 異なるシステム間でデータや機能を連携させるインタフェース |
| メリット | 手作業が省力化できる(人件費の削減)。 | 連携の開発コストが抑えられる。 |
| デメリット | システムのUIが変わると誤作動する可能性がある。 | 仕様がサービス提供元に依存する(自社でコントロールできない)。 |
APIとRPAの設計思想は異なるので、競合する訳ではありません。お互いのメリットを活かし、デメリットを補う関係です。
提供するサービスを小さくしてお互いを連携する仕組みは、IT開発現場のトレンドです。太平洋戦争当時の戦艦大和のように重厚長大だが、結果として使いこなせなかったシステムを作るよりも理にかなっている発想だと思います。

APIやRPAの問題は数が増えすぎることで、管理ができなくなることです。エンジニアから見ると、比較的小さな工数で作れてしまうので、乱造する傾向があるのですが、それを充分に管理できなければ、情報漏えいのリスクが増します。
仮にAPIであれば、多くのサービスではAPIキーを提供してます。APIキーは、クライアントがAPIにアクセスする際の「認証トークン」として機能し、誰がアクセスしているのかを識別するために使われます。APIキーを使った認証は、簡単に実装できますが、キーが漏洩すると悪用されるリスクがあります。
はてなブログをやっている人であればAPIキーを見た方も多いと思います。実際にキーを活用してブログを運営している方もいると思います。はてなブログのアカウント設定のページに掲載されているAPIキーには、こんな注意書きがあります。
APIキーは、ユーザーごとに割り当てられた秘密のキーとなります。他人と共有しないよう、取り扱いには注意してください。
もし、APIキーが第三者に漏えいすると、不正アクセスが行われ、データの不正利用につながる恐れがあります。APIキーは安全な場所で管理し、定期的にキーをローテーションすることを検討するべきです。また、APIキーをソースコードや、共有されたドキュメントに直接記載しないようにするべきでしょう。
しかし、APIが管理できてなければ、必要となる安全対策を実施することは出来ません。
APIを企業が適切に管理することは、情報セキュリティリスクを軽減し、サービスの信頼性を維持するために非常に重要です。しかし、現実は急速なDX化を進める中で、APIの導入が急増しましたが、それに伴う管理体制の整備が追いついてません。情報セキュリティの知見を考慮して管理する人材が不足しているのです。
もはや、野良化しつつあるAPIやRPAを管理出来なければ、経営そのものを揺るがす事態になりかねません。