APIは自動処理であるという点において、セキュリティリスクの大きい技術と言えます。もし認証情報が漏れると、次のようなリスクが起こりえるでしょう。
- データを一気に消される
- プライバシーや機密に関わるデータを一気に抜かれる
- 違法なデータをアップロードされる
- 不要なデータが大量に送られる
そうした状態を防ぐためにもセキュリティについて十分な配慮が必要です。
1. アクセス制限をかけましょう
企業同士の提携によるAPI利用の場合、IPアドレス単位でアクセス制限しても良いでしょう。そうすることで提携先の企業からの正しいリクエストであると担保できます。
2. 認証をかけましょう
個人や利用者単位であればOAuth2を使い、サーバからのアクセスであればトークンや証明書形式での認証を行いましょう。トークンや証明書は複数発行できるようにし、万が一漏れた時にリニューできるようにしておきます。
3. 通信はSSL/TLS
企業の特定の場所からのアクセスであっても通信はSSL/TLSを使って暗号化処理を行いましょう。パブリックなものでなくとも、クライアント証明書でも良いでしょう。
4. アクセス権限をつけましょう
企業レベルのAPIであれば、トークン単位であってもアクセスできる機能に制限を設けられるようにしましょう。そうすることで、不用意なデータアクセスを避けられるようになります。
5. バックアップをとりましょう
APIからのデータ削除処理は処理としては正しいデータ削除となります。データ更新についても同様です。かなりバックアップを取り、データを復旧できるようにしておくべきです。直近のデータ操作であれば、取り消し処理ができるようになっているのが望ましいです。
6. ログを取りましょう
操作ログを残しておくのは監査目的にも重要な意味を持ちます。操作前のデータと操作後のデータを取っておくことで、バックアップにもなるでしょう。
7. 異常なデータ操作を検出できるようにする
不要に大量のアクセスが一気にきた場合、それらを検出して処理をペンディングする仕組みがあります。APIにおいても必要な技術です。
また、最近では機械学習分野が進んでおり、定常的ではない操作が行われた時に通知を出せるようになっています。誰もいないはずの深夜にアクセスがきた場合や、普段行わないデータ検索が行われたといった時に検出できるようになっていると、より早く問題解決につなげられるはずです。
API操作のためのキーが漏洩したりすると、誰も知らない内に大量のデータが消されていたなんて問題になる可能性があります。また、辞めた担当者が外部からデータを閲覧していたということになったらセキュリティ上の大きなリスクになるでしょう。
APIは自動化の仕組みのため、普段運用の中では気付きづらい存在と言えます。だからこそ未然の準備と、検出する仕組みが必要になるのです。