はじめに
OCI CLI には幾つか認証方法があります。
本記事では認証方法についてまとめたうえで、ユーザーを操作主体とする各認証方法の手順についてハンズオン形式でまとめます。
OCI CLI について
コマンドラインで OCI のリソースを操作するためのツール です。
AWS CLI と同じ立ち位置ですね。
後述する認証方法により認証情報取得後、操作主体(ユーザー、コンピュートインスタンス、ファンクションなどの OCI リソース)に付与されたポリシーの権限により OCI リソースを操作します。
動作環境
Mac / Windows / Linux 上で実行可能です。
また、OCI CLI は Oracle Cloud Infrastructure SDK for Python 上に構築されているため、
動作環境には Python のインストールが必要です。
2025年11月時点での、サポートされている OS 及び Python バージョンは以下の通りです。
- 上記表に記載の無い OS や Python のバージョンでの動作についての互換性テストは行われていないそうです
CLIは、記載されていないオペレーティング・システムで動作する可能性がありますが、互換性のテストは行われません。
OCI CLI でサポートされるサービス
OCI CLI で操作可能なサービス一覧のリンクを以下に掲載します。
基本的に OCI リソースの操作は REST API であり、OCI CLI はコンソールでの操作(API コール)を SDK で実装した形になります。
そのため CLI で操作可能かどうかは事前に確認する必要があります。
認証方法について
まず認証主体について以下表にまとめます。
| 主体 | 概要 |
|---|---|
| IAM ユーザー | ● アイデンティティ・ドメインにて管理するユーザーのこと |
| インスタンス | ● コンピュートのこと ● AWS で言うところの EC2 |
| OCI リソース | ● コンピュート以外の OCI リソースのこと ● OCI Functions など |
- インスタンスも OCI リソースに含まれますが、OCI のドキュメントでは分けて記載されていることが多いため分けて記載しています
上記認証主体を理解した上で、OCI CLI 認証方法を以下表にまとめます。
| 認証方法 | 主体 | 概要 |
|---|---|---|
| API キーベース認証 | IAM ユーザー | ● API キーをローカルで作成し、コンソールにて対象の IAM ユーザーと紐づける ● API キーは AWS で言うところの アクセスキーID / シークレットアクセスキー ● 権限は紐づけた IAM ユーザーに付与された IAM ポリシーに依存する ● AWS で言うところの、アクセスキーID / シークレットアクセスを発行してローカルでセットアップして利用する方法に近い |
| セッション・トークンベース認証 | IAM ユーザー | ● ブラウザ経由で認証(サインイン)し、有効期限付きのセッション・トークンを取得し利用 ● API キーの作成は不要 ● 権限はサインインした IAM ユーザーに付与された IAM ポリシーに依存する ● AWS で言うところの、AWS IAM Identity Center を使った AWS CLI 利用方法に近い |
| インスタンス・プリンシパル認証 | インスタンス | ● インスタンス・プリンシパルによりインスタンス(コンピュート)を認証認可する ● API キーの作成は不要 ● ただし、対象インスタンスにて「oci setup instance-principal」を実行し、明示的にインスタンス・プリンシパル認証を利用するコマンドを実行する必要は有 ● 権限は動的グループに付与された IAM ポリシーに依存する ● AWS で言うところの、IAM ロールを付与して AWS STS で一時的な認証情報を取得し、その認証情報と IAM ロールに付与された IAM ポリシーの権限で操作するのに近い |
| リソース・プリンシパル認証 | インスタンス以外の OCI リソース (Functions などのコードを使用するサービス) |
● インスタンス以外の OCI リソースを認証認可する ● API キーの作成は不要 ● ただし、コード内で Oracle Resource Principal Provider から認証トークンを明示的に取得する必要は有 ● 権限は動的グループに付与された IAM ポリシーに依存する ● AWS で言うところの、IAM ロールを付与して AWS STS で一時的な認証情報を取得し、その認証情報と IAM ロールに付与された IAM ポリシーの権限で操作するのに近い |
【補足:インスタンス・プリンシパル】
- インスタンスから、OCI サービス及び OCI リソースを操作できるようにするための IAM サービス機能のこと
実践
それでは実際に試していきます。
前提
今回実施する際のローカル環境は以下の通りです。
- OS:Windows 11
- Python:3.12
- GitBash:2.47.1.2
- PowerShell:5.1.22621.1778
また、OCI 側の環境は以下の通りです。
- ルートコンパートメント配下にコンパートメント(dev)を作成
- コンパートメント(dev)にアイデンティティ・ドメイン(dev-admin)を作成
- コンパートメント作成時にデフォルトで作成されるグループ(Domain_Administrators)にユーザーが所属
- ポリシー(Admin-Policy)を作成しコンパートメント(dev)に配置
- ポリシーのステートメントは以下の通り
Allow group 'dev-admin'/'Domain_Administrators' to manage all-resources in compartment dev
OCI CLI インストール
幾つかインストール方法がドキュメントにはありますが、今回は Windows ということで PowerShell でインストールします。
PowerShell を管理者権限で起動します。
そして以下のコマンドを実行し、インストールスクリプトをダウンロードします。
# (任意)ログインユーザーのダウンロードフォルダに移動
PS C:\WINDOWS\system32> cd $env:USERPROFILE\Downloads
# 実行ポリシーを変更
PS C:\Users\hogehoge\Downloads> Set-ExecutionPolicy RemoteSigned
# インストーラーダウンロード
PS C:\Users\hogehoge\Downloads> Invoke-WebRequest https://raw.githubusercontent.com/oracle/oci-cli/master/scripts/install/install.ps1 -OutFile install.ps1
インストーラーを実行します。
-
-AcceptAllDefaultsはオプションで、インストール時の設定が全てデフォルトで良ければつけたままで実行してください - バイナリの配置先を変更したい場合や、オプションパッケージを入れたい場合は、
-AcceptAllDefaultsは付けずに実行してください
- インストーラーを実行する際、 Python がローカルにない場合は、依存関係として自動でインストールされます
PS C:\Users\hogehoge\Downloads> .\install.ps1 -AcceptAllDefaults
~~~
省略
~~~
-- Run the CLI with C:\Users\hogehoge\bin\oci.exe --help
詳細: Successfully installed OCI CLI!
PATH が通ってないので、追加します。
bin ディレクトリのインストール先を変更した方は適宜修正してください。
Win+R で sysdm.cpl と入力し「OK」をクリックします。

PCにログインしているユーザーに追加するので、上段の「Path」をクリックし、「編集」をクリックします。

「新規」をクリックし、%USERPROFILE%\bin を入力後、「OK」をクリックします。

追加した PATH を読み込ませるために PowerShell を再起動します。(一般ユーザー権限で大丈夫です)
その後以下のコマンドでバージョンが表示されれば完了です。
PS C:\Users\hogehoge> oci -v
3.69.0
- ちなみにアンインストールは各種ディレクトリを削除します
- 以下のディレクトリはデフォルト設定でインストールした場合なので、インストール先をカスタムした場合は変更先のディレクトリを削除してください
- %USERPROFILE%\lib\oracle-cli
- %USERPROFILE%\bin\oci.exe
- %USERPROFILE%\bin\oci-cli-scripts
API キーベース認証
API キーの実態は、公開鍵と秘密鍵のペアのことです。
その API キーの作成方法は以下 2 通りあります。
- コンソールから秘密鍵をダウンロードして、ローカルにて設定する
- ローカルで API キー (公開鍵/秘密鍵のペア) を作成して、公開鍵をコンソールにてアップロードする
今回は後者の方法で実施します。
加えて実運用を見据えて以下条件のもと実施します。
- 複数ユーザーの API キーを利用する前提とし、プロファイルを分ける
-
DEFAULTプロファイルは使わず、明示的にプロファイルを指定することで誤操作をなくしたい
まず、手動で %USERPROFILE% 配下に .oci フォルダを作成し、
その中に config ファイルを作成します。

次に config ファイルに [DEFAULT] と記述して保存します。
※ [DEFAULT] としていますが、おそらくここは何かしら記載があれば良いと思います。

- 本来なら、
.ociフォルダ及びconfigファイルは事前に作成する必要はありません - 後述する
oci setup configを実行すれば自動で作成されます - ただし、その場合だと
--profileオプションを指定しても[DEFAULT]として登録されてしまい、上述した条件を満たせないためこのようにしています - そのため、上記作業は任意ですのでご了承ください
- このような方法でなくても、今回は割愛しますが、CLI構成ファイル (
oci_cli_rcファイル)や環境変数でもどうにかなります。が、今回はこの方法とします
ここからターミナルで API キーを作成します。
事前に「テナントOCID」及び「対象ユーザーのOCID」をメモ帳に控えておいてください。
ターミナルで以下コマンドを実行します。
$ oci setup config
- オプションで
--profileを指定しても意味なかったので不要です
実行するとまず初めに config ファイルの配置先を聞かれます。
デフォルトでは %USERPROFILE%\.oci 配下であり、特に問題ないので何も入力せず Enter を押します。
$ oci setup config
This command provides a walkthrough of creating a valid CLI config file.
The following links explain where to find the information required by this
script:
User API Signing Key, OCID and Tenancy OCID:
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#Other
Region:
https://docs.cloud.oracle.com/Content/General/Concepts/regions.htm
General config documentation:
https://docs.cloud.oracle.com/Content/API/Concepts/sdkconfig.htm
+ Enter a location for your config [C:\Users\hogehoge\.oci\config]:
続いて「指定の場所に config ファイルが既に存在するけど、そのファイルにプロファイルを追記する?」と問われるので「Y」と入力し Enter を押します。
+ Config file: C:\Users\hogehoge\.oci\config already exists. Do you want add a profile here? (If no, you will be prompted to overwrite the file) [Y/n]: Y
続いてプロファイル名を聞かれるので、任意のプロファイル名を入力し Enter を押します。
この時小文字で入力しても、config ファイルに記載されるプロファイル名は大文字となります。
+ Enter the name of the profile you would like to create: dev-admin
続いて対象 IAM ユーザーの OCID を聞かれるので、入力して Enter を押します。
+ Enter a user OCID: ocid1.user.oc1..aaaaaaaaeoldfx6t3dwdauopuixhvsepvvfqcv4mhogehogehogehogehoge
続いて対象 IAM ユーザーのいるテナントの OCID を聞かれるので、入力して Enter を押します。
+ Enter a tenancy OCID: ocid1.tenancy.oc1..aaaaaaaas56j5f4nrox6bml6aldq66sic7adcst6hogehogehogehogehoge
続いて OCI CLI を実行したときにデフォルトでどのリージョンを見に行くかを聞かれるので、番号もしくはリージョン名を入力して Enter を押します。
私は 東京リージョンとしています。
Enter a region by index or name(e.g.
1: af-johannesburg-1, 2: ap-batam-1, 3: ap-chiyoda-1, 4: ap-chuncheon-1, 5: ap-chuncheon-2,
6: ap-dcc-canberra-1, 7: ap-dcc-gazipur-1, 8: ap-delhi-1, 9: ap-hyderabad-1, 10: ap-ibaraki-1,
11: ap-melbourne-1, 12: ap-mumbai-1, 13: ap-osaka-1, 14: ap-seoul-1, 15: ap-seoul-2,
+ 16: ap-singapore-1, 17: ap-singapore-2, 18: ap-suwon-1, 19: ap-sydney-1, 20: ap-tokyo-1,
21: ca-montreal-1, 22: ca-toronto-1, 23: eu-amsterdam-1, 24: eu-budapest-1, 25: eu-crissier-1,
26: eu-dcc-dublin-1, 27: eu-dcc-dublin-2, 28: eu-dcc-milan-1, 29: eu-dcc-milan-2, 30: eu-dcc-rating-1,
31: eu-dcc-rating-2, 32: eu-dcc-zurich-1, 33: eu-frankfurt-1, 34: eu-frankfurt-2, 35: eu-jovanovac-1,
36: eu-madrid-1, 37: eu-madrid-2, 38: eu-madrid-3, 39: eu-marseille-1, 40: eu-milan-1,
41: eu-paris-1, 42: eu-stockholm-1, 43: eu-zurich-1, 44: il-jerusalem-1, 45: me-abudhabi-1,
46: me-abudhabi-2, 47: me-abudhabi-3, 48: me-abudhabi-4, 49: me-alain-1, 50: me-dcc-doha-1,
51: me-dcc-muscat-1, 52: me-dubai-1, 53: me-ibri-1, 54: me-jeddah-1, 55: me-riyadh-1,
56: mx-monterrey-1, 57: mx-queretaro-1, 58: sa-bogota-1, 59: sa-santiago-1, 60: sa-saopaulo-1,
61: sa-valparaiso-1, 62: sa-vinhedo-1, 63: uk-cardiff-1, 64: uk-gov-cardiff-1, 65: uk-gov-london-1,
66: uk-london-1, 67: us-ashburn-1, 68: us-ashburn-2, 69: us-chicago-1, 70: us-gov-ashburn-1,
71: us-gov-chicago-1, 72: us-gov-phoenix-1, 73: us-langley-1, 74: us-luke-1, 75: us-newark-1,
+ 76: us-phoenix-1, 77: us-saltlake-2, 78: us-sanjose-1, 79: us-somerset-1, 80: us-thames-1): 20
続いて「新規に API キーを作成しますか?」と聞かれるので、「Y」を入力して Enter を押します。
※ 仮にコンソールで事前に秘密鍵をダウンロードしている場合は「n」となります。
+ Do you want to generate a new API Signing RSA key pair? (If you decline you will be asked to supply the path to an existing key.) [Y/n]: Y
続いて API キーの配置先を聞かれます。
デフォルトでは %USERPROFILE%\.oci 配下であり、特に問題ないので何も入力せず Enter を押します。
+ Enter a directory for your keys to be created [C:\Users\hogehoge\.oci]:
続いて作成する API キーのファイル名を聞かれます。
デフォルトでは oci_api_key です。フォルダを分けるならそのままでも良いとは思いますが、私は .oci ファルダ配下にまとめる想定であるため、ファイル名を入力しています。
+ Enter a name for your key [oci_api_key]: dev_admin_oci_api_key
続いて秘密鍵に設定するパスフレーズを聞かれます。
セキュリティ的にはパスフレーズを入力した方が良いですが、CLI 実行の度に聞かれるので今回は無しにします。
無しにしたい場合は、N/A と入力し Enter を押します。
この時、入力した文字列は表示されません。
+ Enter a passphrase for your private key ("N/A" for no passphrase):
再度確認されるので、N/A と入力し Enter を押します。
+ Repeat for confirmation:
以上でローカルでの作業は完了です。
「公開鍵をアップロードしてね」って記載されているのでこの後アップロードしていきます。
Private key written to: C:\Users\hogehoge\.oci\dev_admin_oci_api_key.pem
Fingerprint: b7:fd:8c:8e:00:a8:66:d1:63:1d:ho:ge:ho:ge:ho:ge
Config written to C:\Users\hogehoge\.oci\config
If you haven't already uploaded your API Signing public key through the
console, follow the instructions on the page linked below in the section
'How to upload the public key':
https://docs.cloud.oracle.com/Content/API/Concepts/apisigningkey.htm#How2
実際に .oci フォルダには公開鍵と秘密鍵が作成されています。

また、config ファイルには指定したプロファイル名と情報が追記されています。

- プロファイル名及び値は後から直接編集可能です
では、公開鍵をアップロードします。
OCI コンソールにて対象のユーザーを選択します。

「公開キー・ファイルの選択」にチェックを入れ、公開鍵をアップロードして「追加」をクリックします。
公開鍵は ファイル名に _public がついているファイルです。

アップロードするとプレビューが表示されますが、特に気にする必要はありません。

最後に動作確認をします。
以下のコマンドを実行し、結果が表示されればOKです。
プロファイル名はご自身のものに置き換えてください。
$ oci iam region list --profile DEV-ADMIN
- ちなみに、公開鍵はローカルで保持する必要はありません
- アップロードが完了したら削除しても大丈夫です
- ただ公開鍵なので、漏洩してもリスクは少ないのとサイズも小さいので残しておいても気にはならないと思います
セッション・トークンベース認証
セッション・トークンベース認証は、ローカルでAPI キーを作成し、その API キーを使ってトークンファイルを作成します。そしてそのトークンファイルを使って認証する方法です。
API キーベース認証 と異なる点は、API キーを作成する点は同じですが、「公開鍵をアップロードしない点」と「有効期限付きのトークンファイルで認証している点」です。
それではセッション・トークンベース認証を試していきます。
今回はAPI キーベース認証 実施後の config ファイル及び .oci フォルダ配下ファイル群とします。
- もちろん事前に
.ociフォルダ及びconfigファイルが無くても問題ありません - その場合は自動で作成されます
- その時のプロファイル名は
DEFAULTです
まず、以下コマンドを実行します。
$ oci session authenticate
- オプションで
--profileを指定しても意味なかったので不要です
すると、デフォルトでどのリージョンを見に行くかを聞かれるので、番号もしくはリージョン名を入力して Enter を押します。
私は 東京リージョンとしています。
Enter a region by index or name(e.g.
1: af-johannesburg-1, 2: ap-batam-1, 3: ap-chiyoda-1, 4: ap-chuncheon-1, 5: ap-chuncheon-2,
6: ap-dcc-canberra-1, 7: ap-dcc-gazipur-1, 8: ap-delhi-1, 9: ap-hyderabad-1, 10: ap-ibaraki-1,
11: ap-melbourne-1, 12: ap-mumbai-1, 13: ap-osaka-1, 14: ap-seoul-1, 15: ap-seoul-2,
+ 16: ap-singapore-1, 17: ap-singapore-2, 18: ap-suwon-1, 19: ap-sydney-1, 20: ap-tokyo-1,
21: ca-montreal-1, 22: ca-toronto-1, 23: eu-amsterdam-1, 24: eu-budapest-1, 25: eu-crissier-1,
26: eu-dcc-dublin-1, 27: eu-dcc-dublin-2, 28: eu-dcc-milan-1, 29: eu-dcc-milan-2, 30: eu-dcc-rating-1,
31: eu-dcc-rating-2, 32: eu-dcc-zurich-1, 33: eu-frankfurt-1, 34: eu-frankfurt-2, 35: eu-jovanovac-1,
36: eu-madrid-1, 37: eu-madrid-2, 38: eu-madrid-3, 39: eu-marseille-1, 40: eu-milan-1,
41: eu-paris-1, 42: eu-stockholm-1, 43: eu-zurich-1, 44: il-jerusalem-1, 45: me-abudhabi-1,
46: me-abudhabi-2, 47: me-abudhabi-3, 48: me-abudhabi-4, 49: me-alain-1, 50: me-dcc-doha-1,
51: me-dcc-muscat-1, 52: me-dubai-1, 53: me-ibri-1, 54: me-jeddah-1, 55: me-riyadh-1,
56: mx-monterrey-1, 57: mx-queretaro-1, 58: sa-bogota-1, 59: sa-santiago-1, 60: sa-saopaulo-1,
61: sa-valparaiso-1, 62: sa-vinhedo-1, 63: uk-cardiff-1, 64: uk-gov-cardiff-1, 65: uk-gov-london-1,
66: uk-london-1, 67: us-ashburn-1, 68: us-ashburn-2, 69: us-chicago-1, 70: us-gov-ashburn-1,
71: us-gov-chicago-1, 72: us-gov-phoenix-1, 73: us-langley-1, 74: us-luke-1, 75: us-newark-1,
+ 76: us-phoenix-1, 77: us-saltlake-2, 78: us-sanjose-1, 79: us-somerset-1, 80: us-thames-1): 20
すると、割愛しますが、ブラウザが起動しユーザー認証を求められます。
該当ユーザーで認証を実施してください。
ユーザー認証が完了すると、今回のように、既に config ファイルがありプロファイル名が記載されている場合、作成するプロファイル名が聞かれます。そのため、プロファイル名を記入し Enter を押します。
私は Session-Dev-Admin としました。
$ oci session authenticate
Enter a region by index or name(e.g.
1: af-johannesburg-1, 2: ap-batam-1, 3: ap-chiyoda-1, 4: ap-chuncheon-1, 5: ap-chuncheon-2,
6: ap-dcc-canberra-1, 7: ap-dcc-gazipur-1, 8: ap-delhi-1, 9: ap-hyderabad-1, 10: ap-ibaraki-1,
11: ap-melbourne-1, 12: ap-mumbai-1, 13: ap-osaka-1, 14: ap-seoul-1, 15: ap-seoul-2,
16: ap-singapore-1, 17: ap-singapore-2, 18: ap-suwon-1, 19: ap-sydney-1, 20: ap-tokyo-1,
21: ca-montreal-1, 22: ca-toronto-1, 23: eu-amsterdam-1, 24: eu-budapest-1, 25: eu-crissier-1,
26: eu-dcc-dublin-1, 27: eu-dcc-dublin-2, 28: eu-dcc-milan-1, 29: eu-dcc-milan-2, 30: eu-dcc-rating-1,
31: eu-dcc-rating-2, 32: eu-dcc-zurich-1, 33: eu-frankfurt-1, 34: eu-frankfurt-2, 35: eu-jovanovac-1,
36: eu-madrid-1, 37: eu-madrid-2, 38: eu-madrid-3, 39: eu-marseille-1, 40: eu-milan-1,
41: eu-paris-1, 42: eu-stockholm-1, 43: eu-zurich-1, 44: il-jerusalem-1, 45: me-abudhabi-1,
46: me-abudhabi-2, 47: me-abudhabi-3, 48: me-abudhabi-4, 49: me-alain-1, 50: me-dcc-doha-1,
51: me-dcc-muscat-1, 52: me-dubai-1, 53: me-ibri-1, 54: me-jeddah-1, 55: me-riyadh-1,
56: mx-monterrey-1, 57: mx-queretaro-1, 58: sa-bogota-1, 59: sa-santiago-1, 60: sa-saopaulo-1,
61: sa-valparaiso-1, 62: sa-vinhedo-1, 63: uk-cardiff-1, 64: uk-gov-cardiff-1, 65: uk-gov-london-1,
66: uk-london-1, 67: us-ashburn-1, 68: us-ashburn-2, 69: us-chicago-1, 70: us-gov-ashburn-1,
71: us-gov-chicago-1, 72: us-gov-phoenix-1, 73: us-langley-1, 74: us-luke-1, 75: us-newark-1,
76: us-phoenix-1, 77: us-saltlake-2, 78: us-sanjose-1, 79: us-somerset-1, 80: us-thames-1): 20
Please switch to newly opened browser window to log in!
You can also open the following URL in a web browser window to continue:
https://login.ap-tokyo-1.oraclecloud.com/v1/oauth2/authorize?action=login&client_id=iaas_console&response_type=token+id_token&nonce=555dc309-2cf5-4ce3-9b5c-bb7de223ef6c&scope=openid&public_key=eyJrdHkiOiAiUlNBIiwgIm4iOiAieG5penR2bnowT0FVSmdMNkVaMUFiSi1iU3k5eHFqaTY4ZUxfdmZwNGtHdVV0d09RWTFkX0twSHlacS1qU1MxZ3FGMTB4TUgyQkFKTHgwMkdUdWlzckdia3Z4Nnp1MVF4MUMzU0NZZTJMVlVHZDZEZzdCMmdZMTFSdzVwSlI5UWpuWk8tT2o0VHRScmo4RHN6TG1YR0tpMFo0bmVMZnlGUS1Dd0NCWXNEM1lFT1VDTFFqa2tjcGdQaWc3NHFRX3VoeFlVR1lkUjZwak9jNTJFSWxSWWthRFAtT2NjVmJKWDVfTzNudVMwajE2NVF4Wkcwb3dUc01DaF91OURwTnBlSmhPQzhwTTlxOUQ1SkowdE1wamVibDhnTXRsNF9LQVNuOWYyVW1UWnFwczJRLUJsZHpVZ3gzTWpoRllYVHR3eWMzNjd1QXpjOTlsRDlOLTRzeVAwWkJRIiwgImUiOiAiQVFBQiIsICJraWQiOiAiSWdub3JlZCJ9&redirect_uri=http%3A%2F%2Flocalhost%3A8181
Completed browser authentication process!
+ Enter the name of the profile you would like to create: Session-Dev-Admin
すると config ファイルに追記した旨のプロンプトが表示されます。
これでトークンファイルの生成が完了しました。
Config written to: C:\Users\hogehoge\.oci\config
Try out your newly created session credentials with the following example command:
oci iam region list --config-file C:\Users\hogehoge\.oci\config --profile Session-Dev-Admin --auth security_token
config ファイルは以下の通りです。
API キーベース認証で作成したプロファイルの値と比較すると、user が無いのと、新しく security_token_file が追加されていますね。
- ちなみに
user情報は後ほど出てくるtokenファイル内に情報があります
.oci フォルダ配下は以下の通りです。
まず、sessions というフォルダ作成されています。

sessions フォルダ配下には、プロファイル名 フォルダが作成されています。

プロファイル名 フォルダ配下には、トークンファイル生成用の API キー (公開鍵/秘密鍵) とトークンファイルがあります。

- つまり、
oci session authenticateコマンドでトークンファイル生成用の API キー (公開鍵/秘密鍵) とトークンファイルを生成しています
最後に動作確認をします。
以下のコマンドを実行し、結果が表示されればOKです。
プロファイル名はご自身のものに置き換えてください。
$ oci iam region list --profile Session-Dev-Admin --auth security_token
-
--auth security_tokenと明記することで、セッション・トークンベース認証で実行されます - トークン有効期限はデフォルトの 60 分です
- 明記しない場合は、デフォルトの API キーベース認証で実行されます
- 仮に
oci session authenticateで作成したプロファイル名指定で--auth security_tokenを明記せずに実行すると、デフォルトの API キーベース認証で実行しようとし、configファイル内の値にuserが無くエラーとなります
-
--no-browserオプションは確かにブラウザ認証せずにするものです - しかし前提として、既にローカルの
%USERPROFILE%\.oci\sessions\プロファイル名配下にある、 セッションファイル及びセッションを生成するために使用した公開鍵/秘密鍵が保持されていなければなりません - つまり、
--no-browserの動きとしては、以前作成されたローカルにある公開鍵/秘密鍵を利用してセッションファイルを再生成しているだけです - そのため
--no-browserを使用するには、一度ブラウザ認証を実施する必要があります
- ちなみに、
oci session authenticate実行時に指定可能な、トークン有効期限を制御するための--session-expiration-in-minutesオプションは、--no-browserオプションもセットで明記しないと動作しませんでした - ただし有効期限は 5分~60分の間でしか設定できません(デフォルトは60分です)
おわりに
本記事では認証方法についてまとめたうえで、ユーザーを操作主体とする各認証方法の手順についてハンズオン形式でまとめました。
CLI は何かと利用する機会が多いと思いますので、参考にしてみてください。
🌟この記事が誰かの役に立てば幸いです!
また、ご質問やフィードバックもお待ちしています。
番外編
pip インストール
PyPI (Python Package Index)という公式のリポジトリから、pip を使ってインストールします。
- OCI としては仮想環境にインストールすることを推奨していますが、今回は共有ディレクトリにインストールします
ターミナルで以下コマンドを実行します。
$ pip install oci-cli
~~~
省略
~~~
Installing collected packages: oci-cli
Successfully installed oci-cli-3.69.0
インストール完了後、バージョンが表示されれば OK です。
$ oci -v
3.69.0
- ちなみにアンインストールは以下のコマンドです
$ pip uninstall oci-cli
インストールエラー (this system does not have Windows Long Path support enabled)
インストールを実行した際に以下のエラーが出た方は次の方法を実行してみてください
ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory: 'C:\\Users\\hogehoge\\.pyenv\\pyenv-win\\versions\\3.12.0\\Lib\\site-packages\\oci_cli\\help_text_producer\\data_files\\text\\cmdref\\database-management\\managed-database\\enable-autonomous-database-management-feature-autonomous-database-diagnostics-and-management-feature-details.txt'
HINT: This error might have occurred since this system does not have Windows Long Path support enabled. You can find information on how to enable this at https://pip.pypa.io/warnings/enable-long-paths
PowerShell を管理者権限で起動し以下のコマンドを実行します。
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
実行後、ターミナルを再起動し、再度インストールを試してみてください。
参考資料
リファレンス
- OCI SDKの認証方法 - Oracle Cloud Infrastructureドキュメント
- コマンドライン・インタフェース(CLI) - Oracle Cloud Infrastructureドキュメント
- oci-cli - GitHub
- Oracle Cloud Infrastructure CLI Command Reference
- ファンクションの実行による他のOracle Cloud Infrastructureリソースへのアクセス - Oracle Cloud Infrastructureドキュメント
- インスタンスからのサービスのコール - Oracle Cloud Infrastructureドキュメント
- クイックスタート - Oracle Cloud Infrastructureドキュメント
- 手動およびオフライン・インストール - Oracle Cloud Infrastructureドキュメント
- Registry setting to enable long paths - Windows App Development







