SKYPCE外部連携APIをより安全に利用するための「IPアドレスアクセス制御」による多層防御の仕組みとユースケースを解説します。
SKYPCEのAPI連携の紹介記事です。
前回までの内容はこちらです。
第1回では「APIのユースケースと全体像」を、第2回では「複数APIキー発行によるセキュリティと権限管理」をご紹介しました。
第3回となる今回は、ネットワーク層からのセキュリティ・アプローチである「IPアドレスによるアクセス制御機能」について解説します。
前回の「APIキー(認証情報)」と、今回の「IPアドレス(接続元情報)」を組み合わせることで、『多層防御』を実現する方法をご紹介します。
1. なぜ「APIキー」だけでは不十分なのか?(多層防御の重要性)
第2回で解説した通り、APIキーを発行し、最小限の権限を割り当てることはセキュアな連携の基本です。
しかし、万が一設定ミスやソースコードの取り扱い不備により、APIキーが意図せず外部に漏洩してしまった場合、第三者からの不正アクセスを許してしまうリスクがあります。
そこで重要になるのが、「多層防御(Defense in Depth)」という考え方です。
アプリケーション層での認証(APIキー)に加えて、ネットワーク層で「どこからのアクセスを許可するか(IPアドレス制限)」を制御することで、仮にAPIキーが漏洩したとしても、許可されていないネットワークからのアクセスをネットワークレベルで遮断することができます。
2. SKYPCEの「IPアドレスによるアクセス制御機能」とは
SKYPCEでは、システム設定の「利用ネットワーク設定」から、外部連携APIへのアクセスを許可する接続元(グローバルIPアドレス)を細かく指定することが可能です。
管理画面から、連携元となるシステムの固定IPアドレス(またはIPの範囲)をホワイトリストとして登録するだけで、未登録 of IPアドレスからのAPIリクエストをすべて拒否するようになります。
3. ユースケースごとのグローバルIPアドレス設定
では、実際に外部システムと連携する際、どのようにIPアドレスを制御すればよいのでしょうか。
3つのケースをご紹介します。
ケースA:自社のオンプレミスシステムからの連携
社内にある基幹システムやファイルサーバーから連携バッチ処理を行う場合、自社のインターネットゲートウェイ(ルーターなど)が持つ固定のグローバルIPアドレスを登録します。
ケースB:クラウド環境(AWS等)からの連携
自社で構築したクラウド上のサーバーレス環境(AWS Lambdaなど)からAPIを呼び出す場合です。
クラウドサービスは通常、実行ごとにIPアドレスが動的に変化するため、そのままではアクセスが拒否されてしまいます。
そのため、クラウド環境側にNAT Gatewayなどを配置して送信元IPを固定化し、その固定IPをSKYPCE側に登録するアーキテクチャ設計が必要になります。
ケースC:SaaSからの連携
昨今非常にニーズが高いのが、SFA / CRMなどのSaaSからの直接連携です。
上記ケースA、Bでは明確に自身からのアクセスが定義できましたが、SaaSから連携する場合、個別のテナント(お客様環境)に対して専用の固定IPが割り当てられないことが多く、厳密な制御には工夫が必要です。
SaaSベンダーが公開しているIPアドレスを登録する
多くのSaaSベンダーは、外部へ通信する際のIPアドレス範囲(レンジ)を公開しています。
このネットワーク範囲をSKYPCEの「利用ネットワーク設定」に登録します。
※同じSaaSを利用する他社も同じIPレンジからアクセスしてくるため、「IPアドレス制御」だけでなく「APIキーの厳重な管理」がより一層重要になります。
中継サーバーを経由させる
SaaSからSKYPCEのAPIを直接呼び出すのではなく、自社で中継サーバーを用意することや固定IPを提供するサービスを経由する方法があります。
もちろん、中継サーバーへの接続に対するセキュリティ考慮は欠かすことができません。
むしろこのセキュリティ考慮自体が、多層防御の対策の一環といえるかもしれません。
厳格なセキュリティ統制が求められるエンタープライズ環境の場合は、このような手法も考えられます。
まとめ
今回は、SKYPCE外部連携APIをより安全に利用するための「IPアドレスアクセス制御」について解説しました。
「APIキーによる権限の最小化」と「IPアドレスによる接続元の限定」という2つの錠前を掛けることで、お客様の大切な名刺データを守りながら、利便性の高いシステム連携を実現することができます。
