OCIにはインスタンスなどの単位でアクセスを制御することができるNetwork Security Groups(NSG) という機能があります。
こちらのリソースの作成はOCIのコンソール画面からは簡単にできますが
OCI CLIから作成するときはjsonの書き方や指定の方法でハマることもあったので
今回はその方法を紹介します。
この記事ではNSGの作成部分を紹介します。
次の記事で作成したNSGへのルールの適用までを紹介します。
前提条件
- OCI CLI が利用できること
NSG作成
まずはNSGを作成する際に必要になるjsonフォーマットを取得します。
CLIでcreateする場合のリファレンスは以下です。
今回はjsonフォーマットを取得するために以下のコマンドでjsonのフォーマットを取得します
oci network nsg create --generate-full-command-json-input > create.json
```
jsonのフォーマットがcreate.jsonに出力されたので中身を確認します。
```create.json
{
"compartmentId": "string",
"definedTags": {
"tagNamespace1": {
"tagKey1": "tagValue1",
"tagKey2": "tagValue2"
},
"tagNamespace2": {
"tagKey1": "tagValue1",
"tagKey2": "tagValue2"
}
},
"displayName": "string",
"freeformTags": {
"tagKey1": "tagValue1",
"tagKey2": "tagValue2"
},
"maxWaitSeconds": 0,
"vcnId": "string",
"waitForState": [
"PROVISIONING|AVAILABLE|TERMINATING|TERMINATED"
],
"waitIntervalSeconds": 0
}
```
今回は最低限の項目でいいため、以下まで項目を削り必要な項目を入力します。
compartmentIdにはNSG作成対象のコンパートメントのOCID
vcnIdにはNSG作成対象のVCNのOCIDを記載します。
今回はOCID部分はマスクしています。
```create.json
{
"compartmentId": "ocid1.compartment.oc1..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"displayName": "cli_create",
"vcnId": "ocid1.vcn.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}
```
jsonファイルをinputにしてNSGを作成します。
使用するコマンドは以下です。
今回はOCI上のLinuxのデフォルトユーザのホームディレクトリで作業しているため
ファイルの場所は適宜読み読み替えてください。
```
oci network nsg create --from-json file:///home/opc/create.json
```
以下のような出力が表示されば正常にNSGの作成が開始されているはずです。
```
{
"data": {
"compartment-id": "ocid1.compartment.oc1..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"display-name": "cli_create",
"freeform-tags": {},
"id": "ocid1.networksecuritygroup.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"lifecycle-state": "AVAILABLE",
"time-created": "2020-07-22T17:02:10.069000+00:00",
"vcn-id": "ocid1.vcn.oc1.ap-tokyo-1.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
},
"etag": "aa248bce"
}
```
実際にコンソール画面にアクセスして確認してみましょう。
OCIのコンソール画面で
ハンバーガーメニュー > ネットワーキング > 仮想クラウド・ネットワーク > 仮想クラウド・ネットワークの詳細 > ネットワーク・セキュリティ・グループ
と進むと今回作成したNSGが確認できるはずです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62936/daea1eec-aa5a-143c-e7e7-339bd5d6c321.png)
# まとめ
まずは今回はCLIを使用してNSGを作ってみました。
次の記事ではこのNSGへのルール適用をCLIから行っていきます。
(本当は1つの記事にしようと思いましたが眠気に負けて半分に・・・)