1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Network Security Group にCLI でルールを追加する

Posted at

以下の記事でOCI CLIを使用してNetwork Security Group(以下、NSG)を作成しました。
今回は作成したNSGに対してCLIでルールを追加していきます。

OCIのNetwork Security Group をCLIで作成する

前提条件

前回の記事の内容が完了していれば問題ありません。
一応この記事単体で見た場合は以下が準備できていれば問題ありません。

  • OCI CLI が利用できること
  • 作成済みのNSGがあること

作成済みのNSGを確認しておく

作成済みのNSGを確認しておきます。

OCIのコンソール画面で
ハンバーガーメニュー > ネットワーキング > 仮想クラウド・ネットワーク > 仮想クラウド・ネットワークの詳細 > ネットワーク・セキュリティ・グループ
と進むとNSGが確認できます。

ここでNSGのOCIDをコピーしておきます。後で使用するため。

スクリーンショット 2020-08-29 13.18.47.png

NSGにルールを追加する

まずはNSGにルールを追加するためのjsonフォーマットを取得します。
リファレンスは以下です。

以下のコマンドでjson フォーマットを取得します。

oci network nsg rules add --generate-full-command-json-input > add_rule.json

生成されたファイルは以下です。

add_rule.json
{
  "nsgId": "string",
  "securityRules": [
    {
      "description": "string",
      "destination": "string",
      "destinationType": "string",
      "direction": "string",
      "icmpOptions": {
        "code": 0,
        "type": 0
      },
      "isStateless": true,
      "protocol": "string",
      "source": "string",
      "sourceType": "string",
      "tcpOptions": {
        "destinationPortRange": {
          "max": 0,
          "min": 0
        },
        "sourcePortRange": {
          "max": 0,
          "min": 0
        }
      },
      "udpOptions": {
        "destinationPortRange": {
          "max": 0,
          "min": 0
        },
        "sourcePortRange": {
          "max": 0,
          "min": 0
        }
      }
    },
    {
      "description": "string",
      "destination": "string",
      "destinationType": "string",
      "direction": "string",
      "icmpOptions": {
        "code": 0,
        "type": 0
      },
      "isStateless": true,
      "protocol": "string",
      "source": "string",
      "sourceType": "string",
      "tcpOptions": {
        "destinationPortRange": {
          "max": 0,
          "min": 0
        },
        "sourcePortRange": {
          "max": 0,
          "min": 0
        }
      },
      "udpOptions": {
        "destinationPortRange": {
          "max": 0,
          "min": 0
        },
        "sourcePortRange": {
          "max": 0,
          "min": 0
        }
      }
    }
  ]
}

今回は最低限必要な項目として イングレス(INGRESS)ルールを2つ、エグレス(EGRESS)を1つ作成します。
ルールは以下の3つで、利用する jsonは以下のようになります。(IPは適当です)
OCIDは末尾をマスクしているので適宜修正してください。

  • イングレス: 153.200.200.200/32からの22番portへのsshを許可
  • イングレス: 0.0.0.0/0から80番ポートへのHTTPを許可
  • エグレス:153.200.200.201/32 の 80番portへのHTTP通信を許可
add_rule.json
{
  "nsgId": "ocid1.networksecuritygroup.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "securityRules": [
    {
      "description": "ssh",
      "direction": "INGRESS",
      "isStateless": false,
      "protocol": "6",
      "source": "153.200.200.200/32",
      "tcpOptions": {
        "destinationPortRange": {
          "max": 22,
          "min": 22
        }
      }
    },
    {
      "description": "HTTP",
      "direction": "INGRESS",
      "isStateless": false,
      "protocol": "6",
      "source": "0.0.0.0/0",
      "tcpOptions": {
        "destinationPortRange": {
          "max": 80,
          "min": 80
        }
      }
    },
    {
      "description": "ex",
      "destination": "153.200.200.201/32",
      "direction": "EGRESS",
      "isStateless": false,
      "protocol": "6",
      "tcpOptions": {
        "destinationPortRange": {
          "max": 80,
          "min": 80
        }
      }
    }
  ]
}

jsonをファイルをもとに追加するコマンドは以下。
今回はファイルの指定を相対パスで行っている。
追加のリファレンスは以下。

oci network nsg rules add --from-json file://./add_rule.json

追加されたルールはこんな感じになっています。

スクリーンショット 2020-08-29 13.40.26.png

まとめ

CLIを使ってNSGのルールを付与すれば
大量にルールがある場合や、似ているNSGを作る場合はコンソール上から作るよりも簡単にできますね。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?