OCI SDKの認証方法

OCI SDKおよびCLIでは、次の認証方法がサポートされています:
  • APIキーベース認証
  • セッション・トークンベース認証
  • インスタンス・プリンシパル
  • リソース・プリンシパル

この項では、それぞれの方法について詳しく説明し、例を示します。

APIキーベース認証

この認証方法では、構成ファイルを作成してローカル・ディスクに格納します。構成ファイルには、ユーザーOCID、テナンシOCID、リージョン、秘密キーのパス、フィンガープリントなどの詳細が含まれます。この認証方法では、マシンに永続構成ファイルが作成されます。これは、セキュアなネットワークで作業していて、秘密キーや構成をローカルに保存することに問題がない場合に使用します。

次の項では、APIキーベース認証の例を示します。

CLI

次のCLIコマンドを使用して、APIキーベース認証を設定できます:

oci setup bootstrap: このコマンドは構成ファイルの設定に役立ちます。ブラウザを使用してログインすると、構成ファイルが自動的に作成され、コンソールにアップロードされます。詳細は、oci setup bootstrapを参照してください

oci setup config: このコマンドは、ブラウザのサポートは使用せず、情報(ユーザーOCID、テナンシOCID、リージョン名など)の入力を求める対話型のCLIコマンドで、コマンドライン・セッションから構成ファイルを設定し、秘密キーを作成する場合に便利です。ファイルが作成されたら、公開キーをコンソールにアップロードする必要があります。詳細は、oci setup configを参照してください

Python

Pythonの使用例については、Githubのこの例を参照してください。

Java

Javaの使用に関する簡単な例については、Githubのこの例を参照してください。

Java SDKでの構成ファイルの使用例については、Githubのこの例を参照してください。

.NET

.NETの使用例については、Githubのこの例を参照してください。

PowerShell

共通モジュールのSet-OCIClientConfigコマンドレットでは、構成ファイルの設定が順を追って説明されます。詳細は、PowerShellに関するドキュメントの「構成ファイル」の項を参照してください。

Ruby

Rubyの使用例については、Githubのこの例を参照してください。

TypeScript

TypeScriptの使用例については、Githubのこの例を参照してください。

Go

Goの使用例については、必ずREADMEファイルを読んでから、Githubのこの例を参照してください。

セッション・トークンベース認証

セッション・トークンベース認証を使用する場合は、ユーザーOCID、テナンシOCID、リージョン、秘密キーのパスおよび一時セッション・トークンのファイル・パスなどの情報を含むローカル構成ファイルを作成します。この方法では、1時間(デフォルト)で期限切れになる一時セッション・トークンとこの情報が一緒に使用されます。セッション・トークンベース認証は、一時的に手早い認証が必要な場合に使用できます。

次の項では、セッション・トークンベース認証の例を示します。

CLI

次のCLIコマンドを使用して、セッション・トークンベース認証を設定できます:

oci session authentication: このコマンドは一時セッション・トークンを設定します。ブラウザ経由でサインインすると、セッションが終了するまでの間、認証に使用できるセッション構成ファイルが自動的に作成されます(デフォルトの有効期限は60分です)。セッションが期限切れになったら、セッション・トークンをリフレッシュする必要があります。詳細は、oci session authenticationを参照してください。

Python

Pythonの使用例については、ブラウザがないコンピュータでのスクリプトの実行を参照してください。

Java

Javaの使用例については、Githubのこの例を参照してください。

.NET

.NETの使用例については、Githubのこの例を参照してください。

PowerShell

サポートされていません。

Ruby

サポートされていません。

TypeScript

TypeScriptの使用例については、Githubのこの例を参照してください。

Go

Goの使用例については、Githubのこの例を参照してください。

インスタンス・プリンシパル認証

インスタンス・プリンシパル認証を使用すると、インスタンスを認可することで、Oracle Cloud Infrastructureサービスに対してAPIコールを実行できます。必要なリソースおよびポリシーの設定後、インスタンスで実行されているアプリケーションは、Oracle Cloud Infrastructureパブリック・サービスをコールでき、ユーザー資格証明または構成ファイルを構成する必要がなくなります。詳細は、「インスタンス・プリンシパル」を参照してください。

インスタンス・プリンシパル認証は、構成ファイルを格納しないインスタンスまたはVMから使用できます。

次の項では、インスタンス・プリンシパル認証の例を示します。

CLI

次のCLIコマンドを使用して、インスタンス・プリンシパルベース認証を設定できます:

oci setup instance-principal :このコマンドは、OCI CLI認証がすでに構成されているマシンから、既存のインスタンスにインスタンス・プリンシパル認証を設定する際に便利です。たとえば、このコマンドをクラウド・シェル(委任トークンを使用して認証)から実行して、インスタンスにインスタンス・プリンシパルを設定できます。詳細は、oci setup instance-principalを参照してください。

インスタンス・プリンシパルの動的グループおよびポリシーを手動で設定するには、「インスタンスからのサービスのコール」を参照してください。

Python

Pythonの使用例については、Githubのこの例を参照してください。

Java

Javaの使用例については、Githubのこの例を参照してください。

.NET

.NETの使用例については、Githubのこの例を参照してください。

Ruby

Rubyの使用例については、Githubのこの例を参照してください。

TypeScript

TypeScriptの使用例については、Githubのこの例を参照してください。

Go

Go SDKを使用してインスタンス・プリンシパル認証を作成および構成する方法の例は、Githubのこの例を参照してください。

インスタンス・プリンシパル認証の使用例については、Githubのこの例を参照してください。

リソース・プリンシパル認証

リソース・プリンシパル認証はインスタンス・プリンシパル認証とよく似ていますが、サーバーレス・ファンクションなど、インスタンスではないリソースに使用することを目的としています。

次の項では、リソース・プリンシパル認証の例を示します。

CLI

CLIの例については、ファンクションを使用したOCIリソースへのアクセスに関する項を参照してください。

Python

Pythonの使用例については、Githubのこの例を参照してください。

Java

Javaの使用例については、Githubのこの例を参照してください。

.NET

.NETの使用例については、GitHubのこの例を参照してください。

PowerShell

例はありません。

Ruby

RPv1.1を使用したRubyの使用例については、Githubのこの例を参照してください。

RPv2.2を使用したRubyの使用例については、Githubのこの例を参照してください。

TypeScript

TypeScriptの使用例については、Githubのこの例を参照してください。

Go

Goの使用例については、Githubのこの例を参照してください。