2021.08.05

DataSpiderからCloudSQL for MySQL へのアクセス方法

本記事では、DataSpiderからGoogle CloudSQL for MySQLへの接続する方法およびその事前準備について記載します。

DataSpiderは連携ツールであり、外部のDBにあるデータに対するCRUD操作のアダプタが基本的に用意されていますが、GoogleのCloudSQL for MySQLの接続アダプタはまだ用意されておりません。

そこで汎用的なJDBCアダプタを利用した接続方法についてこの記事で紹介しますので、お役に立てば幸いです。

接続全体像

接続の全体像は、以下の通りです。

・GoogleのCloudSQL for MySQL側から下記の証明書を取得
 1.server-ca.pem(サーバー証明書)
 2.client-cert.pem(クライアントの公開鍵証明書)
 3.client-key.pem(クライアント秘密鍵)
 ※キーストアファイルにインポート用のファイル

・OpenSSLのダウンロード&インストール
 証明書の暗号化などに使用
 ※証明書を結合したり、暗号化したりする

・DataSpiderのkeytool
 $DATASPIDER_HOME/jre/bin/keytool.exe
 Googleの証明をDataSpiderにインポートするためのツール

・JDBCドライバのダウンロード&インストール

・キーストアファイルの設定
 1.keystoreファイル
 2.truststoreファイル
 ※後続のJDBCのURL設定に使うファイル

・DataSpiderのJDBC接続設定グローバルリソースで詳細の設定

事前準備

CloudSQL for MySQL から以下のファイルを取得しておく

1.server-ca.pem(サーバー証明書)
2.client-cert.pem(クライアントの公開鍵証明書)
3.client-key.pem(クライアント秘密鍵)

使用する [keytool] は以下のDataSpider組み込みのツールを使用します

$DATASPIDER_HOME/jre/bin/keytool.exe
DataSpider組み込みのツール

opensslコマンドが使えるようにしておく

下記サイトで紹介されているページより、OpenSSL のインストール・設定を行います。

ライブラリの入手

MySQL Connector/J 5.1ダウンロードサイト(https://www.mysql.com/jp/products/connector/ )よりJDBCドライバをダウンロードします。

インストール手順

1.DataSpiderServerおよびDataSpider Studioを停止します。

2.$DATASPIDER_HOME/server/plugin/data_processing/modules/jdbc_adapterディレクトリ直下に<mysql-connector-java-5.1.<バージョン>-bin.jar>をコピーします。
※ダウンロードしたコネクタのバージョンを適切なバージョンフォルダ内に置いてください。
 今回、バージョンは5.1.49を使用しています。

3.DataSpiderServerおよびDataSpider Studioを起動します。

JDBCダウンロード

JDBC バージョン

JDBCを配置したフォルダのイメージ

※$DATASPIDER_HOME は実際のDataSpiderのインストール先を指定してください

DataSpiderからCloudSQL for MySQL への接続設定

サーバ証明書をtruststoreにインポート

$ keytool -import -file ./server-ca.pem -alias mysqlServerCACert -keystore "$DATASPIDER_HOME/jre/lib/security/truststore"
サーバ証明書をtruststoreにインポート
※[server-ca.pem]のファイルパスは実ファイルのパスを指定してください
パスワードの入力を求められた場合 [changeit] と入力してください

クライアント証明書をPKCS12形式 [client.p12] に変換

$ openssl pkcs12 -export -inkey ./client-key.pem -in ./client-cert.pem -name mysqlClientCert -out "$DATASPIDER_HOME/jre/lib/security/client.p12"
クライアント証明書をPKCS12形式 [client.p12] に変換
※[client-key.pem][client-cert.pem]のファイルパスは実ファイルのパスを指定してください

クライアント証明書をkeystoreにインポート

$ keytool -importkeystore -srckeystore "$DATASPIDER_HOME/jre/lib/security/client.p12" -srcstoretype pkcs12 -destkeystore "$DATASPIDER_HOME/jre/lib/security/keystore"
クライアント証明書をkeystoreにインポート
正常の場合、下記の入力が連続求められます(この手順書では、パスワードをchangeitで統一しています)
・出力先キーストアのパスワードを入力してください: changeit
・新規パスワードを再入力してください: changeit
・ソース・キーストアのパスワードを入力してください: changeit

DataSpiderのグローバルリソースを作成(JDBCアダプタの接続設定)

ドライバクラス名:com.mysql.jdbc.Driver
URL:jdbc:mysql://xx.xx.xx.xx:{port_No.}/{db_name}?useSSL=true&requireSSL=true
  &clientCertificateKeyStoreUrl=file:///$DATASPIDER_HOME\\jre\\lib\security\\keystore
  &clientCertificateKeyStoreType=JKS
  &clientCertificateKeyStorePassword=changeit
  &trustCertificateKeyStoreUrl=file:///$DATASPIDER_HOME\\jre\\lib\security\\truststore
  &trustCertificateKeyStoreType=JKS
  &trustCertificateKeyStorePassword=changeit
  &trustCertificateKeyStoreUrl=file:///$DATASPIDER_HOME\\jre\\lib\security\\truststore
  &trustCertificateKeyStoreType=JKS
  &trustCertificateKeyStorePassword=changeit
ユーザ名:DBユーザを指定
パスワード:DBパスワードを指定
jdbc:mysql://xx.xx.xx.xx:{port_No.}/{db_name}?useSSL=true&requireSSL=true
  &clientCertificateKeyStoreUrl=file:///$DATASPIDER_HOME\\jre\\lib\security\\keystore
  &clientCertificateKeyStoreType=JKS
  &clientCertificateKeyStorePassword=changeit
  &trustCertificateKeyStoreUrl=file:///$DATASPIDER_HOME\\jre\\lib\security\\truststore
  &trustCertificateKeyStoreType=JKS
  &trustCertificateKeyStorePassword=changeit
DataSpiderのグローバルリソースURL

接続成功イメージ

おわりに

今回の記事は、下記サイトを参考に作成しました。
少しでもみなさまのお役に立てば幸いです。
41 件
     
  • banner
  • banner

関連する記事