したいこと
デフォルトの状態だと、ID/パスワードが漏れてしまえば、世界中どこからでも侵入されてしまうので、無償の範囲でOCIへのコンソール・ログインをセキュアにして、安心して眠りたい。
制御の対象
IDCS経由でログインした場合と直接ログインした場合では、制御対象のユーザが異なるため、分けて考える必要がある。
-
制御ポイント①は、IDCSの機能によって制御する。IDCSの無償機能と有償機能より、接続元IP制限を無償の範囲で利用できる。ただし、MFAを使いたい場合は有償ライセンスが必要
-
制御ポイント②は、OCIの機能によって制御する。こちらはMFAが標準機能として提供されている。( Managing Multi-Factor Authentication )
-
2020/9/2 Update
OCIローカル認証も、ソースIPによるコンソールログインの制御ができるようになったようです。
https://docs.cloud.oracle.com/en-us/iaas/releasenotes/changes/e5cc1ae9-089b-478c-84e6-539f7435db4c/
制御方法の選択
両方を同時に使用するのは煩雑なので、IP ( 場所 )で制限したいか、個人所有のデバイスを使用したMFA ( 人 )で制限したいかによって、どちらをメインで使うか考える。( IDCSのライセンス持っているなら、IDCSに統一したほうがより細かい制御ができるだろう。 )
私は、企業アカウントの管理者ではないので、個人登録のアカウントを前提とする。その場合、ログインしている「人」を確実に識別できることが望ましい。そのため、OCIのMFA機能を使う。(企業アカウントの場合は、IP ( 場所 ) で制限したいこともあるだろう)
その場合、以下が懸念される。
- IDCS経由でログインされた場合、MFAの制御をバイパスされる。
- デバイスを紛失したら、詰む。(SR上げたらなんとかしてくれるのかな。。)
1.に対しては、グループマッピングをデフォルトから変更して、Administratorsが付与されないように変更する
2.に対しては、複数のデバイスを登録することで対応する。(会社貸与携帯と個人携帯)
やってみた
MFAを有効にする
- MFAに利用するデバイスに、オーセンティケータ・アプリケーション(Oracle Mobile Authenticatorなど)をインストールする ※ 検証では、Oracle Mobile Authenticatorを使いました。
- OCIコンソールに、制御対象のユーザを使ってログインする
- 左上のメニューから、ログイン・アカウントのリンクを押下する
4.「マルチファクタ認証の有効化」ボタンを押下する
5. 表示されるQRコードを、端末にインストールしたオーセンティケータ・アプリケーションで読み取る
6. オーセンティケータ・アプリケーションに表示される数値を入力して「有効化」ボタンを押下する
7. いったんログアウトし、もう一度ログオンする
8. ログオン時に以下の画面が表示される。オーセンティケータ・アプリケーションに表示されている文字列を入力して、ログインできれば成功
もう一人管理者を登録する
- OCIの管理者を作成する場合は、メニュー→[アイデンティティ]→「ユーザ」を選択し、「ユーザの作成」ボタンから新規ユーザを作成。作成後、作成したユーザのリンクを押下して、「パスワードの作成/リセット」ボタンを押下すると初期パスワードが生成される。
- メニュー→[アイデンティティ]→「グループ」を選択し、Administratorsグループを押下。「ユーザをグループに追加する」を選択して、上記で追加したユーザを選択する
- 新規作成したユーザでログインできることを確認する
- もう一つのデバイスに対し、「MFAを有効にする」の手順をもう一度実行する
グループマッピングをデフォルトから変更する
-
まずは、新規にグループを作成する
OCIのWEBコンソールから、メニュー→[アイデンティティ]→[グループ]を選択して、「グループの作成」→ "USER_IDCS" (命名は任意) という名前のグループを作成する。( このグループには何の権限も付与しない )
-
マッピングを変更する
OCIのWEBコンソールから、メニュー→[アイデンティティ]→[フェデレーション]を選択する。デフォルトで存在する"OracleIdentityCloudService"のリンクを押下して、「マッピングの編集」を押下し、マッピングを変更する
-
IDCS経由でログインして、いろいろとメニューを触ってみる。ログインはできるが、リソースが何も表示されなければ成功
これで、管理ユーザのログインは、MFA必須になっているはず。。