[Oracle Cloud] コンソールログインを IP アドレスで制限する

# はじめに

Oracle Cloud Infrastructure(以下OCI) のコンソールは、デフォルトではどこの IP アドレスからもログイン可能です。悪意をもったユーザのログインを防ぐための1つの方法で、IP アドレスで制限する設定があります。社内のネットワークからのみログインを許可させて、それ以外のIPアドレスからはアクセスを遮断できます。今回は、この設定方法を簡単に紹介します。

余談ですが、MFA を使ってさらにセキュリティを高める方法もお勧めです。OCI IAM User では、無料で MFA が使えるので、とりあえず設定しておくのも良いと思います。

それでは、IPアドレスの制限方法をご紹介します。



# 注意事項！

IPアドレスの範囲を間違って設定すると、管理者ユーザーでもログインが出来なくなります。間違って設定しても復旧出来るように、OCI CLI の実行環境を用意しておくのを強くお勧めします。OCI CLI を使うことで、コンソールログインを使わずに、IPアドレスのログイン制限を解除できます。

また、OCI CLI の設定も忘れて、どうしようもなくなった場合は、Support に連絡すると解除出来るようなことがドキュメントに書いてます。最後の手段で覚えておくとよいです。
https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/managingpasswordrules.htm#unique_1221096998



# Network Source 作成

許可するIPアドレスの範囲を定義するために、Network Source を使います。Network Sources のメニューを選択します。

![1602770604886.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/7551e07e-ce13-8171-bbb2-a462bcf2ab3e.png)



Create を押します。

![1602770647425.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/deb75f4f-7f1f-4b08-8330-eeac358a083f.png)



この記事では、ログイン出来ないことを確認するために、Dummy のIPアドレス範囲を指定しています。本来は、社内ネットワークの Public IPアドレスを指定することになります。

![1602822742182.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/2df5087a-8658-7103-f817-c1e28889c1e3.png)



作成完了しました。

![1602822760654.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/a6ed476e-ba63-03f5-eb94-4ffdc02bfaae.png)



# ログインIPアドレス制限

次に、コンソールログインに関する、IP アドレス制限を有効化していきます。Authentication Settings を開きます。

![1602770864941.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/85a2c121-b7c4-0197-8d48-6ad53fb26915.png)



Edit を押します。

![1602770896445.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/adb0c4af-f1b3-96c9-49d7-3381c93bc10b.png)



定義した Network Source を選択した上で、Save を押します。
**この手順を実行すると、Network Source で定義した IP アドレス以外はコンソールログイン出来なくなるので注意してください**
**設定をする前に、OCI CLI が動作することを確認することを強くお勧めします。**

![1602822805447.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/d1993a56-cdaf-d829-753b-7728712065e0.png)



# Login 失敗確認

はい、それではダミーの IP アドレスを入れていたので、実際にログインが失敗するか確認しましょう。ログイン画面で ID, Password を選択しても、赤文字で怒られてエラーになります。IAM User も IDCS User も両方ともログインが出来ません。

![1602822877016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/4917e3e6-2d37-ed96-862e-42d1382f3c42.png)



# 設定解除方法

それでは、間違って設定したときに解除する時の手順を確認していきましょう。OCI CLI が実行出来ることが必要です。 

まず、現状の設定を確認します。`network-source-ids` で書かれている部分が、ログイン制限の箇所です。ここを解除していきます。

```
$ oci iam authentication-policy get
{
  "data": {
    "compartment-id": "ocid1.tenancy.oc1..aaaaaaaahysodjbc46bsbxjwtu4hcxos6uxhhldgeeq5yvw4vrwsdz34sfta",
    "network-policy": {
      "network-source-ids": [
        "ocid1.identitynetworksource.oc1..aaaaaaaaw7auxkeylvbbdpy6iegfqzfl6c6jggvdaq72cfafebpdo2axe3ca"
      ]
    },
    "password-policy": {
      "is-lowercase-characters-required": true,
      "is-numeric-characters-required": true,
      "is-special-characters-required": true,
      "is-uppercase-characters-required": true,
      "is-username-containment-allowed": false,
      "minimum-password-length": 8
    }
  },
  "etag": "695c2b0336c9375396286e514cf3584751927ea3"
}
```



設定解除コマンドです。

```
$ oci iam authentication-policy update --from-json '
{
  "force": true,
  "networkPolicy": {
    "networkSourceIds": []
  },
  "passwordPolicy": {
    "isLowercaseCharactersRequired": true,
    "isNumericCharactersRequired": true,
    "isSpecialCharactersRequired": true,
    "isUppercaseCharactersRequired": true,
    "isUsernameContainmentAllowed": false,
    "minimumPasswordLength": 8
  }
}'
```



確認すると空白になっています。

```
$ oci iam authentication-policy get
{
  "data": {
    "compartment-id": "ocid1.tenancy.oc1..aaaaaaaahysodjbc46bsbxjwtu4hcxos6uxhhldgeeq5yvw4vrwsdz34sfta",
    "network-policy": {
      "network-source-ids": []
    },
    "password-policy": {
      "is-lowercase-characters-required": true,
      "is-numeric-characters-required": true,
      "is-special-characters-required": true,
      "is-uppercase-characters-required": true,
      "is-username-containment-allowed": false,
      "minimum-password-length": 8
    }
  },
  "etag": "e247d3bcb6515b284fbf182fef51455c6c206473"
}
```



解除したことで、無事にログイン出来るようになりました。

![1602824248284.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/fcac2f52-86c5-3dbe-cec2-980b7434db4e.png)



# 参考URL

https://docs.cloud.oracle.com/en-us/iaas/Content/Identity/Tasks/managingpasswordrules.htm#unique_1221096998