17.3 オブジェクト・ストアの資格証明および場所パラメータの設定

資格証明オブジェクトを作成し、オブジェクト・ストアURIを指定します。

17.3.1 オブジェクト・ストアの資格証明の作成方法

資格証明オブジェクトを作成するには、DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用します。

資格証明オブジェクトには、オブジェクト・ストアにアクセスするために必要なユーザー名とパスワード情報が含まれています。ユースケースに応じて、認可トークン(auth)を使用するか、Oracle Cloud Infrastructure (OCI)ネイティブ資格証明を使用できます。OCI Object Storageを使用する場合、OracleではOCIネイティブ・メソッドを使用することをお薦めします。

ノート:

DBMS_CLOUDパッケージをインストールしておく必要があります。

17.3.1.1 DBMS_CREDENTIAL.CREATE_CREDENTIALを使用した資格証明オブジェクトの作成

DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用すると、外部オブジェクト・ストアへのアクセスを認証できます。

17.3.1.1.1 認証トークンベースの資格証明

アクセスにユーザー名と認証トークンを必要とするクラウド・サービスを操作する場合は、この方法を使用して、値をサービスに必要な値に置き換えます。

例17-1 認証トークンベースの資格証明

BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AUTH_TOKEN_CRED',
    username        => 'username@example.com',
    password        => 'auth_token');
END;
17.3.1.1.2 ネイティブOracle Cloud Infrastructure (OCI)資格証明

OCI Object Storageを操作する場合は、この方法を使用します。

例17-2 ネイティブOracle Cloud Infrastructure (OCI)資格証明(OCIオブジェクト・ストレージに優先)

OCI資格証明を使用すると、テナンシおよびユーザーの詳細を安全な方法で提供できます。

次の例では、OCI_CREDはOracle Cloud Infrastructureユーザー名、ocid1.user.oc1..aaaaa...はOracle Cloud Identifier (OCID)、ocid1.tenancy.oc1..aabbb...はOracle Cloudテナンシ識別子、MIIEogIBAAKCAQEAtUnx...JEBg=はSSH秘密キー、f2:db:f9:18:a4:aa:...は公開キーのフィンガープリントです。

BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => ‘OCI_CRED’,
       user_ocid       => ‘ocid1.user.oc1..aaaaa...’,
       tenancy_ocid    => ‘ocid1.tenancy.oc1..aabbb...’,
       private_key     => ‘MIIEogIBAAKCAQEAtUnx...JEBg=’,
       fingerprint     => ‘f2:db:f9:18:a4:aa:...’);
END;

17.3.2 オブジェクト・ストレージのLocation句の定義方法

これらの例を使用して、ソースに応じてオブジェクト・ストアURIを指定する方法を確認します。

LOCATIONは、オブジェクト・ストア内のデータを指すURIです。現在サポートされているオブジェクト・ストアは、Oracleオブジェクト・ストア、Amazon S3およびAzure Blob Storageです。完全なリストを表示するには、Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンスCREATE_CREDENTIALプロシージャを参照してください。

DBMS_CLOUD CREATE_CREDENTIALプロシージャ

この例では次の変数が使用されています。

  • region – テナンシのリージョン
  • container – コンテナ・リソースの名前
  • namespace – リージョン内のネームスペース
  • bucket– グローバル一意識別子を持つオブジェクトを格納するための論理コンテナ
  • objectname – バケット内のオブジェクトの一意の識別子
  • storage_account– Azure Blob Storageへのアクセスに使用されるAzure Storageアカウントの名前。

例17-3 ネイティブOracle Cloud Infrastructure Object Storage

location ('https://objectstorage.region.oraclecloud.com/n/namespace/b/bucket/o/objectname')

例17-4 Oracle Cloud Infrastructure Object Storage

location ('https://swiftobjectstorage.region.oraclecloud.com/v1/namespace/bucket/objectname'

例17-5 Amazon WebサービスAWS S3の記憶域形式

location ('https://s3.region.amazonaws.com/bucket/objectname')

例17-6 Microsoft Azure Blob記憶域形式

location ('https://storage_account.blob.core.windows.net/container/objectname')