Menggunakan SSL/TLS dengan Amazon RDS untuk instans Db2 DB - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan SSL/TLS dengan Amazon RDS untuk instans Db2 DB

SSL adalah sebuah protokol standar industri untuk mengamankan koneksi jaringan antara klien dan server. Setelah SSL versi 3.0, namanya diubah menjadi TLS, tetapi kami masih sering merujuk ke protokol ini dengan SSL. Amazon RDS mendukung enkripsi SSL untuk instans basis data RDS for Db2. Dengan SSL/TLS, Anda dapat mengenkripsi koneksi antara klien aplikasi dan instans basis data RDS for Db2 Anda. Dukungan SSL/TLS tersedia di semua Wilayah AWS untuk RDS untuk Db2.

Untuk mengaktifkan enkripsi SSL/TLS bagi instans basis data RDS for Db2, tambahkan opsi SSL Db2 ke grup parameter yang terkait dengan instans basis data. Amazon RDS menggunakan port kedua, sebagaimana diperlukan oleh Db2, untuk koneksi SSL/TLS. Melakukan hal ini memungkinkan komunikasi baik teks jelas maupun berenkripsi SSL terjadi serentak antara instans basis data dan klien Db2. Misalnya, Anda dapat menggunakan port dengan komunikasi teks jelas untuk berkomunikasi dengan sumber daya lain di dalam VPC sambil menggunakan port komunikasi berenkripsi SSL untuk berkomunikasi dengan sumber daya di luar VPC.

Membuat koneksi SSL/TLS

Untuk membuat koneksi SSL/TLS, pilih otoritas sertifikat (CA), unduh bundel sertifikat untuk semua Wilayah AWS, dan tambahkan parameter ke grup parameter khusus.

Langkah 1: Pilih CA dan unduh sertifikat

Pilih otoritas sertifikat (CA) dan unduh bundel sertifikat untuk semua Wilayah AWS. Untuk informasi selengkapnya, lihat .

Langkah 2: Perbarui parameter-parameter dalam grup parameter kustom

penting

Jika Anda menggunakan model Bawa Lisensi Sendiri (BYOL) untuk RDS for Db2, ubah grup parameter kustom yang Anda buat untuk IBM Customer ID dan IBM Site ID Anda. Jika Anda menggunakan model pelisensian yang lain untuk RDS for Db2, maka ikuti prosedur untuk menambahkan parameter ke grup parameter kustom. Untuk informasi selengkapnya, lihat Amazon RDS untuk opsi lisensi Db2.

Anda tidak dapat mengubah grup parameter default untuk instans basis data RDS for Db2. Oleh karena itu, Anda harus membuat grup parameter kustom, mengubahnya, dan lalu melampirkannya pada instans basis data RDS for Db2 Anda. Lihat informasi yang lebih lengkap tentang grup parameter di Bekerja dengan grup parameter DB dalam instance DB.

Gunakan setelan parameter dalam tabel berikut.

Parameter Nilai
DB2COMM TCPIP,SSL
SSL_SVCENAME <any port number except the number used for the non-SSL port>
Untuk memperbarui parameter-parameter dalam grup parameter kustom
  1. Buat grup parameter kustom dengan menjalankan perintah create-db-parameter-group.

    Sertakan opsi-opsi yang diperlukan berikut:

    • --db-parameter-group-name – Nama untuk grup parameter yang sedang Anda buat.

    • --db-parameter-group-family – Edisi mesin dan versi utama Db2. Nilai-nilai yang valid: db2-se-11-5, db2-ae-11.5.

    • --description – Deskripsi untuk grup parameter ini.

    Lihat informasi yang lebih lengkap tentang cara membuat grup parameter basis data di Membuat grup parameter DB.

  2. Ubah parameter-parameter dalam grup parameter kustom yang Anda buat dengan menjalankan perintah modify-db-parameter-group.

    Sertakan opsi-opsi yang diperlukan berikut:

    • --db-parameter-group-name – Nama grup parameter yang Anda buat.

    • --parameters – Array nama parameter, nilai parameter, dan metode aplikasi untuk pembaruan parameter.

    Lihat informasi yang lebih lengkap tentang mengubah grup parameter di Memodifikasi parameter dalam grup parameter DB.

  3. Kaitkan grup parameter dengan instans basis data RDS for Db2 Anda. Untuk informasi selengkapnya, lihat Mengaitkan grup parameter DB dengan instans DB.

Hubungi server basis data Db2 Anda

Petunjuk untuk menghubungi server basis data Db2 Anda bersifat spesifik bahasa.

Java
Untuk menghubungi server basis data Db2 Anda dengan menggunakan Java
  1. Mengunduh driver JDBC. Lihat informasi yang lebih lengkap di DB2 JDBC Driver Versions and Downloads dalam dokumentasi Dukungan IBM.

  2. Buat file skrip shell dengan konten berikut. Skrip ini menambahkan semua sertifikat dari bundel ke sebuah Java KeyStore.

    penting

    Periksa bahwa keytool ada di jalur dalam skrip sehingga skrip dapat menemukannya. Jika klien Db2 digunakan, Anda dapat menemukan keytool di bawah ~sqlib/java/jdk64/jre/bin.

    #!/bin/bash PEM_FILE=$1 PASSWORD=$2 KEYSTORE=$3 # number of certs in the PEM file CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l) for N in $(seq 0 $(($CERTS - 1))); do ALIAS="${PEM_FILE%.*}-$N" cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }" | keytool -noprompt -import -trustcacerts -alias $ALIAS -keystore $KEYSTORE -storepass $PASSWORD done
  3. Untuk menjalankan skrip shell dan mengimpor file PEM beserta bundel sertifikat ke dalam Java KeyStore, jalankan perintah berikut. Ganti shell_file_name.sh dengan nama file skrip shell Anda dan password dengan kata sandi untuk Java KeyStore Anda.

    ./shell_file_name.sh global-bundle.pem password truststore.jks
  4. Untuk menghubungi server Db2 Anda, jalankan perintah berikut. Ganti penampung-penampung nilai berikut dalam contoh dengan informasi instans basis data RDS for Db2 Anda.

    • ip_address – Alamat IP untuk titik akhir instans basis data Anda.

    • port – Nomor port untuk koneksi SSL. Ini boleh berupa sebarang nomor port selain nomor yang digunakan untuk port non-SSL.

    • database_name – Nama basis data dalam instans basis data Anda.

    • master_username – Nama pengguna master untuk instans basis data Anda.

    • master_password – Kata sandi master untuk instans basis data Anda.

    export trustStorePassword=MyPassword java -cp ~/dsdriver/jdbc_sqlj_driver/linuxamd64/db2jcc4.jar \ com.ibm.db2.jcc.DB2Jcc -url \ "jdbc:db2://ip_address:port/database_name:\ sslConnection=true;sslTrustStoreLocation=\ ~/truststore.jks;\ sslTrustStorePassword=${trustStorePassword};\ sslVersion=TLSv1.2;\ encryptionAlgorithm=2;\ securityMechanism=7;" \ -user master_username -password master_password
Node.Js
Untuk menghubungi server basis data Db2 Anda dengan menggunakan Node.js
  1. Instal driver node-ibm_db. Lihat informasi yang lebih lengkap di Installing the node-ibm_db driver on Linux and UNIX systems dalam dokumentasi IBM Db2.

  2. Buat file JavaScript berdasarkan konten berikut. Ganti penampung-penampung nilai berikut dalam contoh dengan informasi instans basis data RDS for Db2 Anda.

    • ip_address – Alamat IP untuk titik akhir instans basis data Anda.

    • master_username – Nama pengguna master untuk instans basis data Anda.

    • master_password – Kata sandi master untuk instans basis data Anda.

    • database_name – Nama basis data dalam instans basis data Anda.

    • port – Nomor port untuk koneksi SSL. Ini boleh berupa sebarang nomor port selain nomor yang digunakan untuk port non-SSL.

    var ibmdb = require("ibm_db"); const hostname = "ip_address"; const username = "master_username"; const password = "master_password"; const database = "database_name"; const port = "port"; const certPath = "/root/qa-bundle.pem"; ibmdb.open("DRIVER={DB2};DATABASE=" + database + ";HOSTNAME=" + hostname + ";UID=" + username + ";PWD=" + password + ";PORT=" + port + ";PROTOCOL=TCPIP;SECURITY=SSL;SSLServerCertificate=" + certPath + ";", function (err, conn){ if (err) return console.log(err); conn.close(function () { console.log('done'); }); });
  3. Untuk menjalankan file JavaScript, jalankan perintah berikut.

    node ssl-test.js
Python
Untuk menghubungi server basis data Db2 Anda dengan menggunakan Python
  1. Buat file Python dengan konten berikut. Ganti penampung-penampung nilai berikut dalam contoh dengan informasi instans basis data RDS for Db2 Anda.

    • port – Nomor port untuk koneksi SSL. Ini boleh berupa sebarang nomor port selain nomor yang digunakan untuk port non-SSL.

    • master_username – Nama pengguna master untuk instans basis data Anda.

    • master_password – Kata sandi master untuk instans basis data Anda.

    • database_name – Nama basis data dalam instans basis data Anda.

    • ip_address – Alamat IP untuk titik akhir instans basis data Anda.

    import click import ibm_db import sys port = port; master_user_id = "master_username" # Master id used to create your DB instance master_password = "master_password" # Master password used to create your DB instance db_name = "database_name" # If not given "db-name' vpc_customer_private_ip = "ip_address" # Hosts end points - Customer private IP Addressicert_path = "/root/ssl/global-bundle.pem" # cert path @click.command() @click.option("--path", help="certificate path") def db2_connect(path): try: conn = ibm_db.connect(f"DATABASE={db_name};HOSTNAME={vpc_customer_private_ip};PORT={port}; PROTOCOL=TCPIP;UID={master_user_id};PWD={master_password};SECURITY=ssl;SSLServerCertificate={path};", "", "") try: ibm_db.exec_immediate(conn, 'create table tablename (a int);') print("Query executed successfully") except Exception as e: print(e) finally: ibm_db.close(conn) sys.exit(1) except Exception as ex: print("Trying to connect...") if __name__ == "__main__": db2_connect()
  2. Buat skrip shell berikut, yang menjalankan file Python yang Anda buat. Ganti python_file_name.py dengan nama file skrip Python Anda.

    #!/bin/bash PEM_FILE=$1 # number of certs in the PEM file CERTS=$(grep 'END CERTIFICATE' $PEM_FILE| wc -l) for N in $(seq 0 $(($CERTS - 1))); do ALIAS="${PEM_FILE%.*}-$N" cert=`cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }"` cat $PEM_FILE | awk "n==$N { print }; /END CERTIFICATE/ { n++ }" > $ALIAS.pem python3 <python_file_name.py> --path $ALIAS.pem output=`echo $?` if [ $output == 1 ]; then break fi done
  3. Untuk mengimpor file PEM beserta bundel sertifikat dan menjalankan skrip shell, jalankan perintah berikut. Ganti shell_file_name.sh dengan nama file skrip shell Anda.

    ./shell_file_name.sh global-bundle.pem