Google CloudのOracle AI Database上のAutonomous Databaseをプライベート・サービス接続を介したGoogle Cloud Storageに接続 (2026/03/30)
Google CloudのOracle AI Database上のAutonomous Databaseをプライベート・サービス接続を介したGoogle Cloud Storageに接続 (2026/03/30)
https://www.ateam-oracle.com/connect-adbs-to-gcs-psc
投稿者:Catalin Andrei | Master Principal Cloud Architect
Julien Silverston | Solution Architect Multicloud
この記事では、Google API のプライベート サービス コネクト (PSC) エンドポイントを使用して、Google Cloud 上の Oracle AI Database の Autonomous AI Database を Google Cloud Storage バケットに接続する方法をご紹介します。この設定では、データベースをプライベート エンドポイントに保持し、送信データベース トラフィックをそのプライベート エンドポイントを使用するように強制し、オブジェクト ストレージ ホスト名のプライベート DNS レコードを公開し、オブジェクト ストアの認証情報を使用して DBMS_CLOUD を使用します。
Google Cloud における主な違いは、Azure Blob のプライベート エンドポイントと同様にサービス固有のプライベート エンドポイントではなく、Google API 用の PSC エンドポイントを介して Cloud Storage にアクセスする点です。Oracle Autonomous AI Database 側では、プライベート エンドポイントのアウトバウンド ルーティングに OCI VCN リゾルバーが使用されるため、プライベート DNS コントロール ポイントは OCI 内に残ります。
以下の手順では、Autonomous AI Database が既にプライベートエンドポイントを使用しており、Oracle が管理するネットワークと PSC エンドポイントが作成される Google Cloud VPC との間にプライベートネットワーク接続が確立されていることを前提としています。
このデプロイメントのネットワーク概念を理解しておく必要があります。まずは、 プライベートエンドポイントに関する ADB-Sドキュメント、 DBMS_CLOUDドキュメント、 および 「プライベートエンドポイントを使用したアウトバウンド接続のセキュリティ強化」ドキュメントを読むことをお勧めします。
データベースの「ROUTE_OUTBOUND_CONNECTIONS」プロパティを変更すると、ADB-S によって開始されるすべての接続は、子サイトの VCN 内のプライベートエンドポイントを使用するようになることにご注意ください。ROUTE_OUTBOUND_CONNECTIONS データベースプロパティの値に基づいたアウトバウンド接続の処理と DNS 解決の概要については、ドキュメントの表を参照して ください。
アーキテクチャ概要
最終状態は次のようになります。
- ファイルはGoogle Cloud Storageのバケットに保存されます。
- Google Cloud VPC 内に、すべての Google API 用のプライベート Service Connect エンドポイントが作成されます。
- PSCエンドポイントは内部IPアドレスを受け取ります。
- OCIプライベートDNSレコードは、バケットのホスト名をそのPSCのIPアドレスにマッピングします。
- Autonomous AI Database は、ROUTE_OUTBOUND_CONNECTIONS = ENFORCE_PRIVATE_ENDPOINT で構成されています。
- DBMS_CLOUDは、Google Cloud StorageのHMAC認証情報を使用してバケットに接続します。

前提条件
- プライベートエンドポイントを備えた、Google Cloud上のOracle AI DatabaseにデプロイされたAutonomous AI Database。
- DNSおよびAutonomous AI Databaseの設定を行うためのOCIコンソールへのアクセス。
- バケットとPSCエンドポイントが作成されるGoogle Cloudプロジェクトへのアクセス権。
- バケットへのアクセス権を付与でき、かつHMACキーを所有できるGoogle Cloudサービスアカウント。
- Autonomous AI DatabaseのプライベートエンドポイントがTCP 443でPSCエンドポイントIPにアクセスできるようにするネットワーク接続。
ステップ1:Google Cloud Storageバケットを作成する
Google Cloud コンソールで、Cloud Storage > バケットを開き、新しいバケットを作成します。グローバルに一意な名前を使用してください。この例では、以下のバケット名を使用します。
adb-private-gcs-demo
ステップ2:Google Cloud Serviceアカウントにバケットへのアクセス権を付与する
Autonomous Databaseとの統合用に、専用のGoogle Cloudサービスアカウントを作成するか、既存のアカウントを選択してください。バケットに対して、必要最小限の権限のみを付与してください。
- 読み取り専用アクセスには、ストレージオブジェクトビューアを使用してください。
- アップロード、削除、または更新も必要な場合は、ストレージオブジェクト管理者を使用してください。
この投稿の例では、DBMS_CLOUD.LIST_OBJECTS を使用して構成を検証するため、読み取り専用アクセスで十分です。

ステップ3:クラウドストレージ相互運用性のためのHMACキーを作成する
Cloud Storage > 設定 > 相互運用性を開き、前の手順で作成したサービスアカウントの新しい HMAC キーを作成します。Google Cloud は、次の 2 つの重要な値を生成します。
- アクセスID
- シークレット
キーを作成する際に、両方の値を安全に保管してください。シークレットは一度だけ表示され、Autonomous AI DatabaseでDBMS_CLOUD認証情報を作成する際に必要になります。

ステップ4:Google API用のプライベートサービスコネクトエンドポイントを作成する
Google Cloud コンソールで、[ネットワーク サービス] > [プライベート サービス コネクト] > [接続済みエンドポイント]を開き、新しいエンドポイントを作成します。ターゲットとして[すべての Google API]を選択します。エンドポイントに内部 IP アドレスを割り当てるか、予約します。
PSCエンドポイントのIPアドレスを記録します。この例では、以下を使用します。
10.13.13.6これは、Autonomous AI Database が OCI プライベート DNS を介してバケットホスト名に対して解決する IP アドレスです。

ステップ5:バケットホスト名のOCIプライベートDNSレコードを作成する
これはOCI側で最も重要な設定手順です。アウトバウンドトラフィックがAutonomous AI Databaseのプライベートエンドポイントを経由するように強制される場合、名前解決にはOCI VCNリゾルバが使用されます。そのため、バケットホスト名はOCI内部でプライベートに解決される必要があります。
DBMS_CLOUDがGoogle Cloud Storageで使用するバケットURLは、次の形式に従います。
https://<bucket-name>.storage.googleapis.com/</bucket-name>この例のバケットの場合、ホスト名は次のとおりです。
adb-private-gcs-demo.storage.googleapis.comOCIで、以下の項目を完了してください。
- Autonomous AI Databaseのプライベートエンドポイントに関連付けられているVCNを開きます。
- VCN DNSリゾルバを開きます。
- そのリゾルバで使用されるプライベートビューを作成または選択します。
- storage.googleapis.com という名前のプライベートゾーンを作成します。
- 10.13.13.6 を指す adb-private-gcs-demo という名前の A レコードを追加します。
結果は、以下のDNSマッピングと同等になるはずです。
adb-private-gcs-demo.storage.googleapis.com IN A 10.13.13.6
代替案として、 OCI から Google Cloud への DNS 転送を設定することもできます。 ドキュメント (OCI からの解決セクション)を参照してください。
ステップ6:Autonomous AI Databaseのプライベートエンドポイントから送信ルールを確認
Autonomous AI Databaseのプライベートエンドポイントに関連付けられているNSGまたはセキュリティリストが、PSCエンドポイントIP、またはPSCエンドポイントIPが存在するサブネットCIDRへのTCP 443アウトバウンドトラフィックを許可していることを確認してください。
この送信がブロックされた場合、DNS構成は正しく解決される可能性がありますが、オブジェクトストレージへの接続は依然として失敗します。
ステップ7:プライベートエンドポイント経由でのアウトバウンドデータベース接続を強制
先に進む前に、Oracle DatabaseツールからADBへの接続が正常に確立されている必要があります。特定のツールの設定方法やADBへの接続設定については、このブログの範囲外です。
Oracle Databaseツールについてさらに詳しく知りたい場合は、 公式ドキュメントをお読みください。
データベースに接続するには、SQLクライアントが必要です。このブログでは、ADB-Sを含むODBネットワークがピアリングされているのと同じVPCにプロビジョニングされたGCPのCompute EngineのLinux VMを使用しました。ADB-Sへの接続に使用したSQLクライアントは、こちらからダウンロードしました。
管理者としてAutonomous AI Databaseに接続し、送信ルーティングモードをENFORCE_PRIVATE_ENDPOINTに設定してください。これは、ターゲットがDBMS_CLOUDによってアクセスされる外部オブジェクトストアである場合に推奨される設定です。
ALTER DATABASE PROPERTY SET ROUTE_OUTBOUND_CONNECTIONS = 'ENFORCE_PRIVATE_ENDPOINT';プロパティ値を検証する:
SELECT property_name, property_value
FROM database_properties
WHERE property_name = 'ROUTE_OUTBOUND_CONNECTIONS';
ステップ8:バケットホスト名のネットワークACLを追加
データベースユーザーに、バケットホスト名を解決して接続する権限を付与します。次の例では、ADMINユーザーに必要なACL権限を付与しています。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'adb-private-gcs-demo. storage.googleapis.com',
ace => xs$ace_type(
privilege_list => xs$name_list('connect', 'resolve'),
principal_name => 'ADMIN',
principal_type => xs_acl.ptype_db
)
);
END;
/
ステップ9:DBMS_CLOUD認証情報を作成
認証情報ユーザー名としてGoogle Cloud StorageのHMACアクセスIDを、パスワードとしてHMACシークレットを使用してください。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'GCP_GCS_PSC_CRED',
username => 'ACCESS_ID',
password => 'SECRET'
);
END;
/ACCESS_IDとSECRETを、ステップ3で生成された値に置き換えてください。

ステップ10:バケットへのアクセス権限を検証
最終検証ステップは、DBMS_CLOUDを使用してバケット内のオブジェクトを一覧表示することです。
SELECT object_name, bytes, checksum FROM DBMS_CLOUD.LIST_OBJECTS( 'GCP_GCS_PSC_CRED', 'https://adb-private-gcs-demo.storage.googleapis.com/' );
クエリがデータを返した場合、完全なプライベートパスが正常に機能しています。OCIプライベートDNSがバケットホスト名をPSCエンドポイントIPに解決し、Autonomous AI Databaseがプライベートエンドポイント経由でアウトバウンド接続をルーティングし、Google Cloud StorageがHMAC認証情報を使用してリクエストを受け入れます。

トラブルシューティングのヒント
- OCI DNSプライベートビューから、バケットのホスト名がPSCエンドポイントIPに解決されることを確認してください。
- ROUTE_OUTBOUND_CONNECTIONSがENFORCE_PRIVATE_ENDPOINTに設定されていることを確認してください。
- ACLにバケットホスト名に対する解決権限と接続権限の両方が含まれていることを確認してください。
- HMACキーが有効であること、および認証情報に正しいアクセスIDとシークレットが使用されていることを確認してください。
- Autonomous AI DatabaseのプライベートエンドポイントからPSCエンドポイントIPへのTCP 443の送信が許可されていることを確認してください。
まとめ
この記事では、ADBからGCPストレージのプライベートエンドポイントへの接続を段階的に設定する方法、送信トラフィックをプライベートネットワークパス経由で強制的に送信する方法、およびプライベートDNSを使用してオブジェクトストレージのホスト名をプライベートIPアドレスに解決する方法を詳しく説明しました。
Google Cloud では、Google API 用のプライベート サービス コネクト エンドポイントが、Cloud Storage でこの機能を実現するための重要な構成要素となります。このエンドポイントが設定されれば、残りの作業は簡単です。OCI プライベート DNS にバケット ホスト名を公開し、データベースでアウトバウンド プライベート エンドポイント ルーティングを設定し、ネットワーク ACL を追加し、DBMS_CLOUD 認証情報を作成します。
コメント
コメントを投稿