Loading
BLOG 開発者ブログ

2021年8月12日

[Azure]Cosmos DBにIP制限をかける

Azure Cosmos DBにはセキュリティに関する機能が色々と存在しますが、今回はIP制限を試していきます。

こんにちは。
クラウドソリューショングループのimai.kです。

冒頭に記載させていただいた通り、
今回はAzureのCosmos DBに対するIPアクセス制限をかけていきます。

目次


今回の構成

簡易な構成ですが、「IP制限をかけていない場合」と「IP制限をかけた場合」の2つの状態を作ることで、IP制限を試していきます。

実際の構成は以下のようになります。



Cosmos DBアカウントを作成する

まずは、AzureコンソールからCosmos DBアカウントを作成していきます。
リージョンは東日本にしておきます。



Cosmos DBアカウント作成時のネットワーク設定において、「すべてのネットワーク」からアクセス可能にしておきます。



Cosmos DBアカウントが作成できたら、サンプルデータを作成しておきます。



手元のPCからCosmos DBにアクセスする

作成したCosmos DBはどこからでもアクセス可能な設定になっているため、まずは手元のPCからアクセスしてみます。
アクセスはCosmos DBのREST APIを使用して、curlでリクエストしてみます。
(所々マスクしています。)

上記リクエストではCosmos DBに対してクエリを投げています。
レスポンスとして先ほど作成したサンプルデータが返却されたため、アクセスできることが確認できました。

Cosmos DBアクセス用のVMを立てる

後続のステップでCosmos DBのIP制限を行うために、
Cosmos DBへのアクセスを許容するVMを立て、IPアドレスを付与しておきます。

VMのOSはなんでも大丈夫ですが、今回はCentOSの7.9で試しました。
VMができたらSSHして、先ほどと同様にCosmos DBにリクエストしてみます。

同じようにレスポンスが返れば問題ありません。

Cosmos DBにIPアクセス制限を設定する

Cosmos DBにIPアクセス制限を設定します。
Cosmos DBアカウントの「ファイアウォールと仮想ネットワーク」を開き、「選択したネットワーク」にチェックをつけます。
すると、アクセス許可のIPアドレス入力欄(赤枠部分)が表示されるので、先ほど作成したVMのIPアドレスを入力し保存します。

反映には5-10分ほどかかるようです。



IP制限が機能しているか試す

設定したアクセス制限が機能しているか試します。

まずはVMからAPIを叩くと、

先ほど同様問題なく成功しました。

次にPCから実行します。

今度はリクエストが拒否されたため、IP制限が機能していることが確認できます。

最後に

以上のように、Cosmos DBに対するIPアクセス制限が実現できました。
簡単に制限をかけることができますが、反映にラグがあるため本番運用中のシステムなどはオペレーションに要注意ですね!