LoginSignup
11
3

More than 5 years have passed since last update.

Oracle Cloud Infrastructure(OCI) のCLIを鍵認証無しで実行可能にしてみた

Last updated at Posted at 2019-01-30

はじめに

今回は、Oracle Cloud InfrastructureのComputeインスタンスにコマンド・ライン・インターフェース(CLI)をインストールし、また、下記のURLを参考に"Dynamic Groups"、"Policies"の設定で「Instance Principal」の構成をすることで鍵認証無しでCLIを実行可能 にしてみた。
Calling Services from an Instance

1. CLIのインストール

Install方法は以下のマニュアルに記載有。
CLI Install方法

1-1. Python確認

OCIのComputeインスタンスは必要なPythonが導入されているため確認をする。
(2.7.5 or 3.5以上)

[opc@hostname ~]$ python -V
Python 2.7.5

1-2. Installの実施

今回はopcユーザーでInstallする。

[opc@hostname ~]$ bash -c "$(curl -L https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.sh)"
          ~省略~
===> In what directory would you like to place the install? (leave blank to use '/home/opc/lib/oracle-cli'):     ←そのままEnter
          ~省略~
===> In what directory would you like to place the 'oci' executable? (leave blank to use '/home/opc/bin'):     ←そのままEnter
          ~省略~
===> In what directory would you like to place the OCI scripts? (leave blank to use '/home/opc/bin/oci-cli-scripts'):     ←そのままEnter
          ~省略~
===> Modify profile to update your $PATH and enable shell/tab completion now? (Y/n): Y     ←Yを入力してEnter
          ~省略~
===> Enter a path to an rc file to update (leave blank to use '/home/opc/.bashrc'):      ←そのままEnter
 -- ** Run `exec -l $SHELL` to restart your shell. **
 -- 
 -- Installation successful.
 -- Run the CLI with /home/opc/bin/oci --help

### 上記の出力の通り下記を最後に実行
[opc@hostname ~]$ exec -l $SHELL

1-3. CLIの設定

[opc@hostname ~]$ oci setup config
          ~省略~
Enter a location for your config [/home/opc/.oci/config]:       ←そのままEnter
Enter a user OCID:       ←ユーザーのOCIDを入力
Enter a tenancy OCID:       ←TenancyのOCIDを入力
Enter a region (e.g. ca-toronto-1, eu-frankfurt-1, uk-london-1, us-ashburn-1, us-phoenix-1):       ←Regionを入力
Do you want to generate a new RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: Y     ←Yを入力してEnter
Enter a directory for your keys to be created [/home/opc/.oci]: ←そのままEnter
Enter a name for your key [oci_api_key]: ←そのままEnter
Public key written to: /home/opc/.oci/oci_api_key_public.pem
Enter a passphrase for your private key (empty for no passphrase): ←そのままEnter
Private key written to: /home/opc/.oci/oci_api_key.pem
Fingerprint: 29:05:32:08:81:20:04:ae:d9:f9:c1:0b:61:bd:49:64
Config written to /home/opc/.oci/config
     ~省略~

[opc@hostname ~]$ ls -la
dr-xr-x---.  9 opc opc 4096 Jan 30 05:45 .
dr-xr-xr-x. 17 opc opc 4096 Jan 15 23:22 ..
-rw-------.  1 opc opc  208 Jan 30 04:51 .bash_history
-rw-r--r--.  1 opc opc   18 Apr 30  2014 .bash_logout
-rw-r--r--.  1 opc opc  176 Apr 30  2014 .bash_profile
-rw-r--r--.  1 opc opc  391 Jan 30 04:51 .bashrc
-rw-r--r--.  1 opc opc  176 Jan 30 04:51 .bashrc.backup
drwxr-xr-x.  3 opc opc   52 Jan 30 04:50 bin
drwxr-xr-x.  4 opc opc   29 Jan 30 04:50 .cache
drwxr-xr-x.  3 opc opc   18 Jan 30 04:47 .config
-rw-r--r--.  1 opc opc  100 Apr 30  2014 .cshrc
drwxr-xr-x.  3 opc opc   24 Jan 30 04:50 lib
drwx------.  2 opc opc   73 Jan 30 05:46 .oci
drwxr-----.  3 opc opc   19 Jan 30 04:49 .pki
drwx------.  2 opc opc   29 Jan 30 04:42 .ssh
-rw-r--r--.  1 opc opc  129 Apr 30  2014 .tcshrc
### Installでbin、lib、.ociディレクトリ等が作成されている

2. Instance Principalの構成

構成は以下のマニュアルに記載。
Calling Services from an Instance

2-1. Dynamic Groupsの作成

まずは、Dynamic Groupsを作成する。
Identity > Dynamic Groupsと遷移し、Create Dynamic Groupを押す。

【Create Dynamic Groupの画面】
001.PNG
NAME,DESCRIPTIONを入力してLaunch Rule Builderを押す

【Create Matching Ruleの画面】
002.PNG
ATTRIBUTEMatch instances in Compartment IDを選択してComputeインスタンスが所属するコンパートメントのOCIDを入力しAdd Ruleを押す。

そうするとRULEに値が入力されるので、Create Dynamic Groupを押す

2-2. Policyの作成

Identity > Policiesと遷移し、Create Policyを押す。

【Create Policyの画面】
003.PNG
NAMEDESCRIPTIONを入力、KEEP POLICY CURRENTを選択し、STATEMENTに以下の記載をする。

Allow dynamic-group <作成したDynamic Group名> to manage all-resources in compartment <Instanceに使用させたいコンパートメント名>

上記の内容は、実際にInstance Principalで有効にさせたい項目によって変更をする必要がある。Policyの参考などについては以下を参照。
Common Policies

実はここまでで、最低限の構成は完了している。

3. 最終設定と確認

3-1. 最終設定

CLIは現在、鍵を使用する前提で構成されているため、その箇所を削除する。(念の為)

[opc@hostname ~]$ vi /home/opc/.oci/config
### 以下の部分をコメントアウト ###
#user=XXX
#fingerprint=XXX
#key_file=XXX
# 他は特に変更しない

3-2. 確認

コマンドで確認をする。(マニュアルのコマンドを実行することにする)
確認方法(実行方法)は以下の2パターンとなる。

  • --auth instance_principal のオプションを付与する
    or
  • OCI_CLI_AUTH=instance_principal を環境変数に入れてから実行する
[opc@hostname ~]$ oci os ns get --auth instance_principal
 {
   "data": "XXX"
 }
# 成功

[opc@hostname ~]$ export OCI_CLI_AUTH=instance_principal
[opc@hostname ~]$ oci os ns get
 {
   "data": "XXX"
 }
# こちらも成功

これで、鍵がなくてもCLIが実行可能になった。

11
3
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
11
3