アクセス管理用の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サービス・プロバイダで使用するには、次の前提条件を満たす必要があります。
アウトバウンド接続は、次に説明するようにフリート管理者がNATゲートウェイを使用して構成されている必要があります。
-
Oracle Cloud InfrastructureドキュメントのNAT Gatewayの作成の手順に従って、Autonomous AI Databaseリソースが存在しているVirtual Cloud Network (VCN)にNAT Gatewayを作成します。
-
NATゲートウェイを作成したら、Autonomous AI Databaseリソースが存在する各サブネット(VCN内)にルート・ルールおよびエグレス・セキュリティ・ルールを追加して、これらのリソースがゲートウェイを使用してAzure ADインスタンスから公開キーを取得できるようにします:
-
サブネットの「サブネットの詳細」ページに移動します。
-
「サブネット情報」タブで、サブネットの「ルート表」の名前をクリックして、その「ルート表の詳細」ページを表示します。
-
既存のルート・ルールの表では、次の特性を持つルールがすでに存在するかどうかを確認します:
-
宛先: 0.0.0.0/0
-
ターゲット・タイプ: NAT Gateway
-
ターゲット: VCN内に作成したNATゲートウェイの名前
そのようなルールが存在しない場合は、「ルート・ルールの追加」をクリックし、これらの特性を持つルート・ルールを追加します。
-
-
サブネットの「サブネットの詳細」ページに戻ります。
-
サブネットの「セキュリティ・リスト」表で、サブネット セキュリティ・リストの名前をクリックして、その「セキュリティ・リストの詳細」ページを表示します。
-
サイド・メニュー内の「リソース」で、「エグレス・ルール」をクリックします。
-
既存のエグレス・ルールの表では、次の特性を持つルールがすでに存在するかどうかを確認します:
-
宛先タイプ:CIDR
-
宛先:0.0.0.0/0
-
IPプロトコル:TCP
-
ソース・ポート範囲:443
-
宛先ポート範囲:すべて
そのようなルールが存在しない場合は、「エグレス・ルールの追加」をクリックし、これらの特性を持つエグレス・ルールを追加します。
-
-
ご使用の環境のHTTPプロキシ設定では、データベースがクラウド・サービス・プロバイダにアクセスできるようにする必要があります。
これらの設定は、コンソールを使用したExadata Database Service on Cloud@Customerのプロビジョニングの説明に従って、Exadata Cloud@Customerインフラストラクチャの作成時にフリート管理者によって定義されます。
ノート: HTTPプロキシを含むネットワーク構成は、Exadataインフラストラクチャが「アクティブ化が必要」状態になるまで編集できます。アクティブ化した後は、これらの設定を編集できません。
すでにプロビジョニングされているExadataインフラストラクチャのHTTPプロキシを設定するには、My Oracle Supportでサービス・リクエスト(SR)が必要です。詳細は、My Oracle Supportでのサービス・リクエストの作成を参照してください。
アクセス管理用の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署名キーの生成方法を参照してください。 |
使用上のノート
-
この操作によって、資格証明が暗号化された形式でデータベースに格納されます。
-
ユーザーは、
user_credentials表を問い合せることにより、自分のスキーマ内の資格証明を確認できます。 -
ADMINユーザーは、dba_credentials表を問い合せることにより、すべての資格証明を表示できます。 -
クラウド・サービス資格証明が変更されないかぎり、資格証明を作成する必要があるのは1回のみです。資格証明を1回格納したら、
credential_nameパラメータを必要とするDBMS_CLOUDプロシージャに対して同じ資格証明名を使用できます。 -
このプロシージャはオーバーロードされています。キー・ベースの認証属性
user_ocid、tenancy_ocid、private_keyまたはfingerprintのいずれかを指定すると、コールはOracle Cloud Infrastructure署名キー・ベースの資格証明であるとみなされます。 -
ALL_CREDENTIALSビューから資格証明をリストできます。たとえば、次のコマンドを実行して資格証明をリストします。SELECT credential_name, username, comments FROM all_credentials;
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_ocid、tenancy_ocid、private_key、fingerprintなど、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シークレットを使用します。 |
C3オブジェクト・ストレージに対して認証するためのDBMS_CLOUD資格証明の管理
DBMS_CLOUD.CREATE_CREDENTIALプロシージャを使用して、C3オブジェクト・ストレージ・バケットへの接続に必要な認証情報をAutonomous AI Databaseに提供できます。Oracle Cloud Infrastructure署名キー認証を使用している場合のみ、user_ocid、tenancy_ocid、private_key、fingerprintなどの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 |
更新する属性の名前。 ユーザー名/パスワード・タイプの資格証明の場合、有効な 詳細は、「CREATE_CREDENTIALプロシージャ」を参照してください。 |
value |
指定された属性の新しい値。 |
使用上のノート
-
ユーザー名の値は大/小文字が区別されます。二重引用符や空白を含めることはできません。
-
ADMINユーザーは、dba_credentialsを問い合せて、すべての資格証明を参照できます。 -
クラウド・サービス資格証明が変更されないかぎり、資格証明を作成する必要があるのは1回のみです。資格証明を1回格納したら、
credential_nameパラメータを必要とするDBMS_CLOUDプロシージャに対して同じ資格証明名を使用できます。 -
ALL_CREDENTIALSビューから資格証明をリストできます。たとえば、次のコマンドを実行して資格証明をリストします。SELECT credential_name, username, comments FROM all_credentials;
例
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;
/