やりたいこと

RスクリプトからAmazon RedshiftへSSL(証明書の検証アリ)で接続したい。

やりかた

RからRedshiftへの接続方法については、下記の資料が参考になります。

RからAmazon Redshiftに接続する

SSLでの接続方法 / サーバ認証については、下記の資料が参考になります。

接続のセキュリティオプションを設定する - Amazon Redshift

コード

library(RJDBC, quietly = TRUE)

connectRedshift <- function() {
    driver <- JDBC('com.amazon.redshift.jdbc.Driver', './redshift/RedshiftJDBC42-1.2.1.1001.jar', identifier.quote="`")
    url <- sprintf(
        'jdbc:redshift://%s:%s/%s?ssl=true&sslMode=verify-full&sslrootcert=%s&user=%s&password=%s',
        Sys.getenv('REDSHIFT_HOST'),
        Sys.getenv('REDSHIFT_PORT'),
        Sys.getenv('REDSHIFT_DB'),
        './redshift/redshift-ssl-ca-cert.pem',
        Sys.getenv('REDSHIFT_USER'),
        Sys.getenv('REDSHIFT_PASS')
    )
    return(dbConnect(driver, url))
}

一応GitHubにも上げました。
https://github.com/pinkumohikan/gocha-gocha/tree/master/r/redshift-connector

参考にした資料