資格証明の管理

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'
      );
    END;
    /

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

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

    リソース・プリンシパル資格証明を有効にする場合、Oracle Cloud Infrastructure Object Storeにアクセスするための資格証明を作成する必要はありません。詳細は、リソース・プリンシパルを使用した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ネイティブ資格証明スクリプトを実行する例は、例: OCIネイティブ資格証明の作成およびAutonomous Databaseでの実行を参照してください。

  1. テナンシにサインインし、「開発者ツール」アイコンを選択して、ドロップダウン・リストから「クラウド・シェル」をクリックします。
    cs_cloud_shell.pngの説明が続きます
  2. adb-create-cred.shスクリプトを実行します。


    cs_script_no_args.pngの説明が続きます

  3. 生成されたOCIネイティブ資格証明スクリプトで既存の資格証明を再利用するには、yと入力します。


    cs_existing.pngの説明が続きます

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

  4. データベースでOCIネイティブ資格証明スクリプトを実行せずにスクリプトを終了するには、nと入力します。


    cs_do_not_run.pngの説明が続きます

  5. プログラムが終了し、OCIネイティブ資格証明の名前とそれを表示するコマンドが表示されます。


    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. テナンシにサインインし、「開発者ツール」アイコンを選択して、ドロップダウン・リストから「クラウド・シェル」をクリックします。
    cs_cloud_shell.pngの説明が続きます
  2. adb-create-cred.shスクリプトを実行します。これには、データベースの検索、データベースへの接続およびユーザー指定の資格証明名に使用される引数が含まれます。


    cs_run_all_options.pngの説明が続きます

  3. 既存のAPIキーおよびフィンガープリントが見つかりました。生成された資格証明スクリプトで再利用するには、yと入力します。


    cs_existing_keys.pngの説明が続きます

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

  4. yと入力して、リージョン、コンパートメントおよびデータベースの引数で指定したデータベースで、作成した資格証明スクリプトoci_native_credential.sqlを実行します。


    cs_run_script.pngの説明が続きます

  5. Walletファイルが見つからなかったため、設定されました。Walletファイルが見つかった場合は、再利用するか、新しいファイルを設定するかを尋ねられます。指定したADMINユーザー名のパスワードを入力します。ユーザー名とパスワードは、データベースへの接続に使用されます。


    cs_pass.pngの説明が続きます

    ノート

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

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

    cs_done.pngの説明が続きます

    ノート

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

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

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

次に例を示します。
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を参照してください。