アクセス管理用のDBMS_CLOUD

この項では、アクセス管理に使用されるDBMS_CLOUDサブプログラムについて説明します。

前提条件

開発者は、Oracle Public Cloud、MulticloudまたはExadata Cloud@CustomerにデプロイされたAutonomous AI DatabaseでDBMS_CLOUDプロシージャを使用できます。

デプロイメントの選択に応じて、DBMS_CLOUDプロシージャをAmazon S3、Azure Blob StorageおよびGoogle Cloud Storageサービス・プロバイダで使用するには、次の前提条件を満たす必要があります。

アクセス管理用のDBMS_CLOUDサブプログラムの要約

資格証明の作成、削除および更新など、DBMS_CLOUDパッケージ内の資格証明管理のためのサブプログラム。

サブプログラム 説明
CREATE_CREDENTIALプロシージャ このプロシージャでは、クラウド・サービス資格証明をAutonomous AI Databaseに格納します
DROP_CREDENTIALプロシージャ このプロシージャは、既存の資格証明をAutonomous AIデータベースから削除します。
UPDATE_CREDENTIALプロシージャ このプロシージャは、Autonomous AI Database内のクラウド・サービス資格証明属性を更新します。

CREATE_CREDENTIALプロシージャ

このプロシージャでは、クラウド・サービス資格証明をAutonomous AI Databaseに格納します

データのロード、クラウド内の外部データの問合せ、または他のケースでDBMS_CLOUDプロシージャをcredential_nameパラメータとともに使用する場合、格納されているクラウド・サービス資格証明を使用して、クラウド・サービスにアクセスします。

構文

DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name   IN VARCHAR2,
      username          IN VARCHAR2,
      password          IN VARCHAR2 DEFAULT NULL);


DBMS_CLOUD.CREATE_CREDENTIAL (
      credential_name IN VARCHAR2,
      user_ocid       IN VARCHAR2,
      tenancy_ocid    IN VARCHAR2,
      private_key     IN VARCHAR2,
      fingerprint     IN VARCHAR2);

Parameters

パラメータ 説明
credential_name 格納する資格証明の名前。credential_nameパラメータは、スペースやハイフンを使用できないOracleオブジェクトのネーミング規則に準拠している必要があります。
username username引数とpassword引数の両方で、クラウド・サービス資格証明を指定します。様々なクラウド・サービスに関してusernameおよびpasswordに指定する内容については、使用時のノートを参照してください。
password username引数とpassword引数の両方で、クラウド・サービス資格証明を指定します。
user_ocid ユーザーのOCIDを指定します。ユーザーのOCIDの取得の詳細は、テナンシのOCIDおよびユーザーのOCIDの取得場所を参照してください。
tenancy_ocid テナンシのOCIDを指定します。テナンシのOCIDの取得の詳細は、テナンシのOCIDおよびユーザーのOCIDの取得場所を参照してください。
private_key 生成された秘密キーを指定します。パスフレーズを設定して生成された秘密キーはサポートされていません。パスフレーズなしで秘密キーを生成する必要があります。PEMフォーマットのキー・ペアの生成の詳細は、API署名キーの生成方法を参照してください。
fingerprint フィンガープリントを指定します。生成された公開キーがユーザーのアカウントにアップロードされると、コンソールにフィンガープリントが表示されます。表示されたフィンガープリントをこの引数に使用します。詳細は、キーのフィンガープリントの取得方法およびAPI署名キーの生成方法を参照してください。

使用上のノート

Oracle Cloud Infrastructure資格証明(認証トークン)

Oracle Cloud Infrastructureの場合、usernameはOracle Cloud Infrastructureのユーザー名です。passwordはOracle Cloud Infrastructureの認証トークンです。認証トークンの作業を参照してください。

たとえば:

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'DEF_CRED_NAME',
    username => 'adb_user@example.com',
    password => 'password' );
END;
/

OCIオブジェクト・ストレージへのコールを認証する場合は、認証トークン・ベースの資格証明を使用します。他のタイプのOracle Cloud Infrastructureクラウド・サービスへのコールには、Oracle Cloud Infrastructure署名キー・ベースの資格証明を使用します。

Oracle Cloud Infrastructure署名キー・ベースの資格証明

Oracle Cloud Infrastructure署名キー認証を使用している場合、user_ocidtenancy_ocidprivate_keyfingerprintなど、Oracle Cloud Infrastructure署名キー関連のパラメータを使用します。

たとえば:

BEGIN
   DBMS_CLOUD.CREATE_CREDENTIAL (
       credential_name => 'OCI_KEY_CRED',
       user_ocid       => 'ocid1.user.oc1..aaaaaaaauq54mi7zdyfhw33ozkwuontjceel7fok5nq3bf2vwetkpqsoa',
       tenancy_ocid    => 'ocid1.tenancy.oc1..aabbbbbbaafcue47pqmrf4vigneebgbcmmoy5r7xvoypicjqqge32ewnrcyx2a',
       private_key     => 'MIIEogIBAAKCAQEAtUnxbmrekwgVac6FdWeRzoXvIpA9+0r1.....wtnNpESQQQ0QLGPD8NM//JEBg=',
       fingerprint     => 'f2:db:f9:18:a4:aa:fc:94:f4:f6:6c:39:96:16:aa:27');
END;
/

パスフレーズを設定して生成された秘密キーはサポートされていません。パスフレーズなしで秘密キーを生成する必要があります。詳細は、API署名キーの生成方法を参照してください。

Amazon Web Services (AWS)の資格証明

ソース・ファイルがAmazon S3に存在する場合、またはAWS APIをコールしている場合、usernameはAWSのアクセス・キーIDで、passwordはAWSのシークレット・アクセス・キーです。AWS Identity and Access Managementを参照してください。

Microsoft Azureの資格証明

ソース・ファイルがAzure Blob Storageに存在する場合、またはAzure APIをコールしている場合、usernameはAzureのストレージ・アカウント名で、passwordはAzureのストレージ・アカウント・アクセス・キーです。Azureストレージ・アカウントについてを参照してください。

Amazon S3互換資格証明

サービス 資格証明情報
Google Cloudストレージ

ソース・ファイルがGoogle Cloud Storageに存在する場合、またはGoogle Cloud Storage APIをコールしている場合は、デフォルトのGoogleプロジェクトを設定し、HMACキーを取得して、Google Cloud Storage S3互換URLを提供する資格証明を作成する必要があります。ユーザー名としてHMACキーIDを使用し、パスワードとしてHMACシークレットを使用します。

詳細は、プロジェクトおよびHMACキーを参照してください。

C3オブジェクト・ストレージに対して認証するためのDBMS_CLOUD資格証明の管理

DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用して、C3オブジェクト・ストレージ・バケットへの接続に必要な認証情報をAutonomous AI Databaseに提供できます。Oracle Cloud Infrastructure署名キー認証を使用している場合のみ、user_ocidtenancy_ocidprivate_keyfingerprintなどのOracle Cloud Infrastructure署名キー関連パラメータを使用します。

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL (
    credential_name => 'OBJECT_STORAGE_CREDENTIAL',
    user_ocid       => 'ocid1.user.oc1..abcdedfxxxxx',
    tenancy_ocid    => 'ocid1.tenancy.oc1..abcdefxyyyyyy',
    private_key     => 'MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDku_Rest_of_PrivateKey_no_spaces_no_newlines',
    fingerprint     => '3d:ba:f9:aa:bb:cc:dd:ee:ff:gg:hh:ii:jj:xa:xb:xc'
  );
END;
/

DROP_CREDENTIALプロシージャ

このプロシージャは、既存の資格証明をAutonomous AIデータベースから削除します。

構文

DBMS_CLOUD.DROP_CREDENTIAL (
   credential_name     IN VARCHAR2);

Parameters

パラメータ 説明
credential_name 削除する資格証明の名前。

UPDATE_CREDENTIALプロシージャ

このプロシージャにより、指定したcredential_nameの新しい値で属性が更新されます。

データのロード、クラウド内の外部データの問合せ、またはcredential_nameパラメータでDBMS_CLOUDプロシージャを使用する場合には、格納されている資格証明を使用します。

構文

DBMS_CLOUD.UPDATE_CREDENTIAL (
    credential_name   IN VARCHAR2,
    attribute         IN VARCHAR2,
    value             IN VARCHAR2);

Parameters

パラメータ 説明
credential_name 更新する資格証明の名前。
attribute

更新する属性の名前。

ユーザー名/パスワード・タイプの資格証明の場合、有効なattribute値はUSERNAMEおよびPASSWORDです。

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

value 指定された属性の新しい値。

使用上のノート

BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'OBJ_STORE_CRED',
     attribute => 'PASSWORD',
     value => 'password');
END;
/
BEGIN
  DBMS_CLOUD.UPDATE_CREDENTIAL(
     credential_name => 'ARN_CRED',
     attribute => 'aws_role_arn',
     value => 'NEW_AWS_ARN');
END;
/

関連コンテンツ