Oracle Cloud(OCI)のネットワークソースを使ってアクセス元を制限してみた

こんにちは。お久しぶりです!
リモートワークで体を動かさない生活をし過ぎて、4時間立ってただけで筋肉痛になった貧弱男ことk.otsukaです。
 今回は、2月頃に新機能としてひっそり登場していた、ネットワーク・ソース(Network Source)について紹介します。
今のところオブジェクト・ストレージ限定の機能ですが、今後他のOCIリソースに対応したときに置いて行かれないよう、ぜひ使ってみてください。

docs.cloud.oracle.com

本記事の目次

ネットワーク・ソースの概要

 特定のVCNや、ネットワークアドレス帯からのみアクセスを許可させる機能です。ポリシーを使用して制限設定を加えることで、特定のソースIPアドレス以外のアクセスを制限することができます。
「自社からしかDLさせたくない…」「このVCNのみアクセス許可したい…」といった要望に応えてくれる機能になっています。

ネットワーク・ソース設定

ネットワーク・ソースの作成

 左上のリスト表示ボタンから[アイデンティティ] ->[ネットワーク・ソース]と移動します。 「ネットワーク・ソースの作成」ボタンをクリックすると、作成の小ウィンドウが表示されるので作成していきます。
本記事では、自社からのみアクセスできるように設定します。
弊社のIPの頭が2ってことがバレてしまいますね... 
 「ネットワーク・タイプ」を仮想クラウド・ネットワークに変更することで、VCNをアクセス元とした設定もできます。VCNを設定する場合は、設定時にVCNのOCIDが必要になります。 f:id:k_otsuka_atom:20200410175341p:plain

作成が完了すると、一覧画面に作成したネットワーク・ソースが表示されます。
ここまででネットワーク・ソースの作成は完了です。ネットワーク・ソースの名前はポリシー設定時に使うので、覚えておいてください。
f:id:k_otsuka_atom:20200410175221p:plain

ポリシーの作成と設定

 ルートコンパートメントに、予め作成していた「Object-Storage-Access」グループに対するポリシー設定を行います。

allow group Object-Storage-Access to manage object-family in tenancy where request.networkSource.name='Cloudii-Network'

 日本語訳するとこんな感じです。
「Object-Storage-Accessグループに所属していれば、このテナンシにCloudii-Networkで設定したネットワークアドレス帯で接続している場合のみ、オブジェクト・ストレージの全てを操れます。」
本当はもっと凝ったものを作って設定するべきなのですが、今回は検証用なので...

f:id:k_otsuka_atom:20200413095518p:plain

ポリシー設定については、以下のブログをご確認ください。
cloudii.atomitech.jp

 OCIのポリシーは、グループに対して設定をすることが原則となっています。設定したグループにユーザーを参加させないと、ポリシー設定を反映させることができないので注意してください。
今回の場合は、「Object-Storage-Access」グループに「@k.otsuka」を参加させています。
例:「allow user @k.otsuka to manage ....」←のような設定はできません。 f:id:k_otsuka_atom:20200410184751p:plain

制限されているか確認

設定したソースIPアドレスからのアクセスではない場合

「You do not have authorization to perform this request, or the requested resource could not be found.」
と表示され、ObjectStorageにアクセスすることができませんでした。

f:id:k_otsuka_atom:20200410185456p:plain

設定したソースIPアドレスの場合

 自社にVPNで接続し、OCI画面のリロードを行いました。
すると、作成しているバケットが表示されることが確認できました。
f:id:k_otsuka_atom:20200410185912p:plain

ネットワーク・ソースによる制限がしっかり動作していることが確認できました!

おわりに

 本設定をすることで、特定の場所から操作をすることが可能になります。ゲストWi-Fiでは設定させたくない、他社の人間に触らせたくないといったシチュエーションは必ずあると思うので、かなり便利な機能だと思います。
 個人的にはObjectStorage限定の機能にするのはもったいないと思うので、全リソースに対して設定できるようになることを期待しています!

告知

初心者・管理者のためのOCIのユーザーグループ会が毎月第3火曜に開催されています!!
世界的ウイルスの影響で、開催の見送りが続いておりますが 落ち着きましたら、ぜひ一緒に参加しましょう!

fullenergy-oci.connpass.com