スマートスタイル TECH BLOG|データベース&クラウドの最新技術情報を配信

OCIのオブジェクトストレージにIPアドレス制限をかける

2月のリリースになってしまいますが、OCI の オブジェクトストレージ にIPアドレスでアクセス制限をかける事ができるようになりました。

リファレンスに記載されている内容だけでは、少し分かりにくかったので、備忘録ついでに紹介したいと思います。
手順としては、アクセスを許可するIPアドレスを設定した ネットワーク・ソース を作成し、制限をかけるユーザグループに ポリシー 定義する事で実現します。

※本記事の執筆時点で ネットワーク・ソース で制限をかけられるのはオブジェクトストレージのみとなっています。

それでは、設定方法を確認していきます。

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

左メニューの「アイデンティティ」-「ネットワーク・ソース」を選択し、ネットワーク・ソース画面へ遷移します。

ネットワーク・ソース画面で、「ネットワーク・ソースの作成」ボタンを押下し、ネットワーク・ソース作成を表示します。

ネットワーク・ソースの作成で、以下の項目を設定し、「作成」ボタンを押下します。

  • 名前:ネットワーク・ソース名
  • 説明:ネットワーク・ソースの説明
  • ソース
    • 「OCIサービスの許可」をチェック
    • ネットワークタイプ:「パブリック・ネットワーク」を選択
      (他に「仮想クラウド・ネットワーク」の選択が可能で、VCNからのアクセスを制御する場合は、こちらを選択して下さい。)
    • IPアドレス/CIDRブロック:アクセスを許可するIPアドレスとCIDRブロック
      (弊社のグローバルIPアドレスを設定しています)

以上でネットワーク・ソースが作成されます。

2.検証用ユーザの作成

今回の検証用に IAMユーザ を作成します。
手順は省略しますが、以下のユーザを作成しました。

  • ユーザ名:blog-user
  • ユーザグループ:blog_group
    (ユーザグループは新たに作成したもので、Policy は何も設定されておりません。)

3.ネットワーク・ソースの Policy を定義

検証ユーザのグループにネットワーク・ソースの Policy を定義します。
左メニューの「アイデンティティ」-「ポリシー」を選択し、ポリシー画面へ遷移します。

ポリシー画面の左にあるコンパートメントでルートコンパートメントを選択し、「ポリシーの作成」ボタンを押下します。

ポリシーの作成で、以下の項目を設定し、「作成」ボタンを押下します。

  • 名前:ポリシー名
  • 説明:ポリシーの説明
  • ポリシーのバージョニング
    • 「ポリシーを最新の状態に維持」を選択
  • ポリシー・ステートメント
    • allow group blog_group to manage object-family in Tenancy where
      request.networkSource.name='NWR_PUB'
      (グループの指定には検証用に作成したユーザのグループ名 blog_group を指定し、request.networkSource.nameには作成したネットワーク・ソース名 NWR_PUB を指定します。)

「作成」ボタン押下後、設定したポリシーが確認できます。

以上の設定で、blog_group グループのユーザは、ネットワーク・ソースで指定したIPアドレスからの接続のみオブジェクトストレージを操作する事が可能となります。

4.確認(アクセス許可したIPアドレス)

ネットワーク・ソースで定義したグローバルIPアドレスが割り振られている状態である事を確認しておきます。
まずは、作成した検証用ユーザでコンソール画面にログインします。

ログイン後、オブジェクトを配置しているコンパートメント・リージョンのオブジェクト・ストレージ画面を表示します。
ネットワーク・ソースで定義したIPアドレスからの接続である為、バケットの一覧が表示される事が確認できます。

検証用のユーザ情報で、OCI CLI からもバケット一覧が取得できる事が確認できます。
(下記コマンドで指定の必要なコンパーメントIDは、~/.oci/oci_cli_rc で指定しています。)

5.確認(アクセス許可した以外のIPアドレス)

ネットワーク・ソースで定義したグローバルIPアドレス以外からのアクセスを確認してみます。
(弊社には、通常使用している回線とは別に副回線があるので、回線を切り替える事で、グローバルIPアドレスが変更されます。)

検証用ユーザでコンソール画面にログインし、先程と同様にオブジェクト・ストレージ画面を表示します。

リクエストを実行する権限がない旨のメッセージが表示され、バケットの一覧表示ができない事が確認できました。
「バケットの作成」ボタンが表示されてはいますが、作成しようとしても作成する事ができません。

また、OCI CLI からもアクセスし、情報が取得できない事を確認します。

6.まとめ

アクセス元のIPアドレスでアクセスの可否が制御できるようになった事で、同じユーザであっても、特定の環境からしかアクセスできなくする等、より強固にセキュリティ面の調整が可能となりました。

また、嬉しい事に、本手順でポリシーを設定したユーザグループに属するユーザで 事前認証済みリクエスト を作成すれば、事前認証済みリクエストでもIPアドレスの制限が可能となります。
これによって、相手がOCIユーザでない場合にも、IP制限を設けてオブジェクトストレージを介してファイルを連携する事が可能となります。

現時点では、ネットワーク・ソースの適用はオブジェクトストレージのみとなっていますが、今後、ネットワークセキュリティグループ等で制御できないリソースが追加されていく予感がします。

今後のリリースにも注目していきたいと思います。


Oracle Cloud
Return Top