資格証明の管理

Autonomous Databaseで資格証明を作成したり、資格証明をリストしたり、資格証明を削除できます。

クラウド・サービスにアクセスするための資格証明の作成

クラウド・オブジェクト・ストアなどのクラウド内のサービスにアクセスするには、まずAutonomous Databaseに資格証明を作成する必要があります。

  1. プロシージャDBMS_CLOUD.CREATE_CREDENTIALを使用して資格証明を作成および格納します。たとえば:
    SET DEFINE OFF
    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DEF_CRED_NAME',
        username => 'adb_user@example.com',
        password => 'password',
        comments => 'credential to access object store'
      );
    END;
    /

    この操作によって、資格証明が暗号化された形式でデータベースに格納されます。資格証明には任意の名前を使用できます。オブジェクト・ストアの資格証明を変更しないかぎり、このステップが必要なのは1回のみです。資格証明を格納した後は、すべてのデータ・ロードで同じ資格証明名を使用できます。

    パラメータの詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructureオブジェクト・ストアにアクセスするための資格証明の作成は必要ありません。詳細は、リソース・プリンシパルを使用したOracle Cloud Infrastructureリソースへのアクセスを参照してください。

    ノート

    SQL*PlusやSQL Developerなどのツールの中には、アンパサンド文字(&)を特殊文字として使用するものもあります。パスワードにアンパサンド文字が含まれる場合、例に示されているとおり、それらのツールでSET DEFINE OFFコマンドを使用して特殊文字を無効化し、資格証明を適切に作成します。
  2. ステップ1で作成した資格証明を使用して、データ・パイプラインを使用している場合、DBMS_CLOUD.COPY_DATADBMS_CLOUD.EXPORT_DATADBMS_CLOUD_PIPELINEなどのプロシージャ、またはDBMS_CLOUD資格証明を必要とするその他のプロシージャを使用して、Autonomous Databaseからオブジェクト・ストアまたはその他のクラウド・リソースにアクセスできます。

Cloud Shellでクラウド・サービスにアクセスするための資格証明の作成

クラウド・シェルを使用して、Autonomous DatabaseにOCIネイティブ資格証明および認証トークンを作成するスクリプトを実行します。

DBMS_CLOUDパッケージを使用して資格証明を作成するには、クラウド・サービスにアクセスするための資格証明の作成およびCREATE_CREDENTIALプロシージャを参照してください。

資格証明クラウド・シェルの作成スクリプトについて

クラウド・シェル開発者ツールで資格証明クラウド・シェルの作成スクリプトを実行して、Autonomous Databaseで実行する資格証明スクリプトを生成します。

資格証明の作成スクリプトadb-create-cred.shを使用して、フィンガープリントを含むRSAキー・ペアを含む、新しいOCIネイティブ資格証明の作成または既存のOCIネイティブ資格証明の再利用を行います。資格証明は、Autonomous Databaseで実行できるスクリプトoci_native_credential.sqlおよびoci_native_credential.jsonの形式でユーザーに提供されます。新しい資格証明が作成されると、既存の資格証明がバックアップされます。

adb-create-cred.shスクリプトを使用して、Autonomous Databaseで生成された資格証明スクリプトを実行するか、プログラムを終了して、選択したSQLまたはJSON互換ツールまたはユーティリティを使用してデータベース内のスクリプトを実行します。詳細および例は、例: OCIネイティブ資格証明の作成および例: OCIネイティブ資格証明の作成およびAutonomous Databaseでの実行を参照してください。

オプションで、adb-create-cred.shを使用して認証トークン/Swift資格証明を作成します。Oracleでは、OCIネイティブ資格証明の使用をお薦めします。ただし、認証トークン/Swift資格証明を作成する場合は、このシェル・スクリプトでサポートされます。詳細は、Swift資格証明に使用される認証トークンの作成を参照してください。

ノート

クラウド・シェル開発者ツールへのアクセス権がない場合は、adb-create-cred.shスクリプトを使用せずにOCIネイティブ資格証明を作成します。詳細は、Oracle Cloud Infrastructureネイティブ資格証明の作成を参照してください。

例: OCIネイティブ資格証明の作成

この例では、クラウド・シェルを使用して資格証明の作成スクリプトを実行し、OCIネイティブ資格証明スクリプトを作成します。

adb-create-cred.shを実行して、資格証明スクリプトoci_native_cred.sqlおよびoci_native_cred.jsonを生成します。adb-create-cred.shスクリプトは既存の資格証明を検索し、見つかった場合、資格証明はそれらを再利用するか、新しい資格証明を作成するかを尋ねられます。生成された資格証明スクリプトには、決定に応じて新しい資格証明または既存の資格証明が含められます。OCIネイティブ資格証明スクリプトをダウンロードするか、それをコピーして、任意のSQL、JSONツールまたはユーティリティを使用してデータベース内で直接実行します。

ノート

資格証明作成スクリプトでサポートされている引数のリストについては、adb-create-cred.sh --helpと入力します。

この例では、OCIネイティブ資格証明スクリプトはテナンシのスクリプトに生成され、データベースでは実行しません。データベースでOCIネイティブ資格証明スクリプトを実行する例は、例: OCIネイティブ資格証明の作成およびAutonomous Databaseでの実行を参照してください。

  1. テナンシにサインインし、開発者ツール・アイコンを選択して、ドロップダウン・リストから「クラウド・シェル」をクリックします。
  2. adb-create-cred.shスクリプトを実行します。
  3. yと入力して、生成されたOCIネイティブ資格証明スクリプトで既存の資格証明を再利用します。


    cs_existing.pngの説明が続きます
    図cs_existing.pngの説明

    新しい資格証明を作成して資格証明を上書きした後に、上書きされた資格証明を使用することを決定した場合、バックアップがあるディレクトリに戻って再利用できます。バックアップ・ファイル名またはフォルダには、_bkp_YYYYMMDD_abcという構文の接尾辞が付きます。たとえば、次のバックアップ・ファイルは2024年6月6日に作成されました: _bkp_20240603_woT

  4. データベースでOCIネイティブ資格証明スクリプトを実行せずにスクリプトを終了するには、nと入力します。
  5. プログラムが終了し、OCIネイティブ資格証明の名前とそれを表示するコマンドが表示されます。


    cs_exit_script.pngの説明が続きます
    図cs_exit_script.pngの説明

    OCIネイティブ資格証明スクリプトをダウンロードするか、それをコピーし、任意のSQLツールを使用してデータベース内で直接実行します。

例: OCIネイティブ資格証明の作成およびAutonomous Databaseでの実行

この例では、資格証明の作成スクリプトを使用して、Autonomous Databaseで実行されるOCIネイティブ資格証明スクリプトを作成します。

スクリプトを実行する前に、次の点を考慮してください。
  • (オプション)データベースのスクリプト検索を回避するために、データベース・リージョン、コンパートメントおよびデータベース名を指定します。これらのオプションは必須ではありませんが、特に多数のコンパートメントとAutonomous Databasesにまたがるテナンシでは、処理時間を節約できます。
  • このスクリプトは、データベースがホーム・リージョンにあることを前提としています。別のリージョンにある場合は、スクリプトの実行時にリージョン名引数--regionを渡す必要があります。
  • コンパートメント(--compartment)またはデータベース名(--database)を指定しない場合、スクリプトによって候補が検索され、使用可能なコンパートメントおよびデータベースのリストから選択するよう求められます。
  • 使用可能なオプションをリストするには、-hまたは--helpを入力します。

次の例では、OCIネイティブ資格証明の作成スクリプトadb-create-cred.shを使用して、既存の資格証明を含む資格証明スクリプトを生成し、指定したデータベースでスクリプトを実行します。

データベース・リージョン、コンパートメントおよび名前は、引数としてスクリプトに渡されます。--databaseオプションには、--region--compartmentの両方が必要です。これらを指定せずに--databaseのみを指定した場合、オプションは無視されます。

データベースへの接続に使用されるユーザー名も、作成された資格証明の名前とともに提供されます。
ノート

資格証明作成スクリプトでサポートされている引数のリストについては、adb-create-cred.sh --helpと入力します。
  1. テナンシにサインインし、開発者ツール・アイコンを選択して、ドロップダウン・リストから「クラウド・シェル」をクリックします。
  2. データベースの検索に使用する引数を含むadb-create-cred.shスクリプトを実行し、データベースおよびユーザー指定の資格証明名に接続します。
  3. 既存のAPIキーおよびフィンガープリントが見つかりました。yと入力して、生成された資格証明スクリプトで再利用します。


    cs_existing_keys.pngの説明が続きます
    図cs_existing_keys.pngの説明

    新しい資格証明を作成して資格証明を上書きした後に、上書きされた資格証明を使用することを決定した場合は、バックアップがあるディレクトリに戻って再利用できます。バックアップ・ファイル名またはフォルダには、_bkp_YYYYMMDD_abcという構文の接尾辞が付きます。たとえば、次のバックアップ・ファイルは2024年6月6日に作成されました: _bkp_20240603_woT

  4. yと入力して、リージョン、コンパートメントおよびデータベース引数を使用して指定したデータベースで、作成した資格証明スクリプトoci_native_credential.sqlを実行します。
  5. Walletファイルが見つからなかったため、ファイルを設定しました。Walletファイルが見つかった場合は、再利用するか、新しいファイルを設定するかを尋ねられます。指定したADMINユーザー名のパスワードを入力します。データベースへの接続に使用するユーザー名およびパスワード。


    cs_pass.pngの説明が続きます
    図cs_pass.pngの説明

    ノート

    Virtual Cloud NetworkにAutonomous Databaseプライベート・エンドポイントがある場合、adb-create-cred.shスクリプトによってSQLおよびJSONスクリプトが生成されます。ただし、Autonomous Databaseプライベート・エンド・ポイントへのアクセスに必要なステップは実行されません。かわりに、cat ~/oci_native_credential.sqlを実行して、Bastionまたはジャンプ・ホストを介してアクセス可能なSQLツールにSQLをコピーするように求められます。

  6. ログインに成功し、指定したデータベースにMYOCICRED資格証明が作成されます。既存の資格証明が削除され、新しい資格証明が作成されます。別のデータベースで資格証明を実行しない場合は、nと入力します。スクリプトが存在し、作成されたoci_native_credential.sqlスクリプトのパスを提供します。


    ノート

    Autonomous Databaseへの接続が失敗した場合は、cat ~/oci_native_credential.sqlを実行し、SQLをコピーして、任意のSQLツールを使用してSQLを直接データベースで実行できます。

Swift資格証明に使用される認証トークンの作成

認証トークン/Swift資格証明を作成する場合、OracleではOCIネイティブ資格証明の使用を推奨しますが、OCIネイティブ資格証明を生成するスクリプトの実行時に--all引数と認証トークン/Swift資格証明を含めます。

たとえば:
adb-create-cred.sh --all

このフラグを使用すると、スクリプトによって認証トークンを含めるかどうかが尋ねられます。yに回答すると、認証トークン・キーが生成され、OCIプロファイルにアップロードされ、oci_auth_token_credential.sqlおよびauth_token.tokスクリプトが作成されます。

認証トークン・キーの表示には、次の2つのオプションを使用できます。
  • クラウド・シェルからoci_auth_token_credential.sqlスクリプトを実行して、データベースに認証トークン・キーを作成します。認証トークン・キーは、DBMS_CLOUD_CREATE_CREDENTIALpasswordパラメータの値です。
  • クラウド・シェルからauth_token.tokを表示します。認証トークンは、tokenの値です。

資格証明のリスト

DBMS_CLOUDは、プロシージャDBMS_CLOUD.CREATE_CREDENTIALを使用して資格証明を格納する機能を提供します。ビューALL_CREDENTIALSから資格証明をリストできます。

たとえば、資格証明をリストするには、次のコマンドを実行します:

SELECT credential_name, username, comments FROM all_credentials;

CREDENTIAL_NAME                                            USERNAME    
---------------------------–-----------------------------  --------------------
COMMENTS
---------------------------–-----------------------------  --------------------
ADB_TOKEN                                                  user_name@example.com
{"comments":"Created via DBMS_CLOUD.create_credential"}
DEF_CRED_NAME                                              user_name@example.com
{"comments":"Created via DBMS_CLOUD.create_credential"}
 

詳細は、「ALL_CREDENTIALS」を参照してください。

資格証明の削除

DBMS_CLOUDは、プロシージャDBMS_CLOUD.CREATE_CREDENTIALを使用して資格証明を格納する機能を提供します。DBMS_CLOUD.DROP_CREDENTIALを使用して資格証明を削除できます。

たとえば、DEF_CRED_NAMEという名前の資格証明を削除するには、次のコマンドを実行します。

BEGIN
   DBMS_CLOUD.DROP_CREDENTIAL('DEF_CRED_NAME');
END;

DBMS_CLOUDプロシージャおよびパラメータの詳細は、「DBMS_CLOUDサブプログラムおよびREST API」を参照してください。