SSLTLSMenggunakan/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.

SSLTLSMenggunakan/dengan Amazon RDS untuk instans Db2 DB

SSLadalah protokol standar industri untuk mengamankan koneksi jaringan antara klien dan server. Setelah SSL versi 3.0, namanya diubah menjadiTLS, tetapi kita masih sering menyebut protokol sebagaiSSL. Amazon RDS mendukung SSL enkripsi untuk Amazon RDS untuk instans Db2 DB. MenggunakanSSL/TLS, Anda dapat mengenkripsi koneksi antara klien aplikasi Anda dan instans Db2 DB AndaRDS. SSL/TLSdukungan tersedia di semua Wilayah AWS RDS untuk Db2.

Untuk SSL TLS mengaktifkan/enkripsi RDS untuk instance Db2 DB, tambahkan SSL opsi Db2 ke grup parameter yang terkait dengan instans DB. Amazon RDS menggunakan port kedua, seperti yang dipersyaratkan oleh Db2, untukSSL/TLSkoneksi. Melakukan hal ini memungkinkan teks yang jelas dan komunikasi SSL -terenkripsi terjadi pada saat yang sama antara instance DB dan klien Db2. Misalnya, Anda dapat menggunakan port dengan komunikasi teks yang jelas untuk berkomunikasi dengan sumber daya lain di dalam VPC sementara menggunakan port dengan komunikasi SSL -terenkripsi untuk berkomunikasi dengan sumber daya di luar. VPC

Membuat TLS koneksiSSL/

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

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 Bring Your Own License (BYOL) RDS untuk Db2, ubah grup parameter kustom yang Anda buat untuk Anda IBM Customer ID dan Anda. IBM Site ID Jika Anda menggunakan model lisensi yang berbeda RDS untuk Db2, ikuti prosedur untuk menambahkan parameter ke grup parameter khusus. Untuk informasi selengkapnya, lihat Amazon RDS untuk opsi lisensi Db2.

Anda tidak dapat memodifikasi grup parameter default RDS untuk instance Db2 DB. Oleh karena itu, Anda harus membuat grup parameter kustom, memodifikasinya, dan kemudian melampirkannya ke instans Db2 DB AndaRDS. Lihat informasi yang lebih lengkap tentang grup parameter di Grup parameter DB untuk instans RDSAmazon DB Amazon.

Gunakan setelan parameter dalam tabel berikut.

Parameter Nilai
DB2COMM TCPIP,SSL atau 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 di Amazon RDS Amazon.

  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 di Amazon RDS Aurora.

  3. Kaitkan grup parameter dengan instans Db2 DB AndaRDS. Untuk informasi selengkapnya, lihat Mengaitkan grup parameter DB dengan instans DB di Amazon RDS Aurora.

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. Unduh JDBC drivernya. Untuk informasi selengkapnya, lihat Versi dan Unduhan DB2 JDBC Driver di dokumentasi IBM Support.

  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 AndaJava KeyStore.

    ./shell_file_name.sh global-bundle.pem password truststore.jks
  4. Untuk menghubungi server Db2 Anda, jalankan perintah berikut. Ganti placeholder berikut dalam contoh dengan informasi instans Db2 DB AndaRDS.

    • ip_address — Alamat IP untuk titik akhir instans DB Anda.

    • port — Nomor port untuk SSL koneksi. Ini bisa berupa nomor port apa pun kecuali nomor yang digunakan untuk SSL non-port.

    • database_name — Nama database Anda dalam instans DB Anda.

    • master_username — Nama pengguna utama untuk instans DB Anda.

    • master_password — Kata sandi utama untuk instans DB 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 placeholder berikut dalam contoh dengan informasi instans Db2 DB AndaRDS.

    • ip_address — Alamat IP untuk titik akhir instans DB Anda.

    • master_username — Nama pengguna utama untuk instans DB Anda.

    • master_password — Kata sandi utama untuk instans DB Anda.

    • database_name — Nama database Anda dalam instans DB Anda.

    • port — Nomor port untuk SSL koneksi. Ini bisa berupa nomor port apa pun kecuali nomor yang digunakan untuk SSL non-port.

    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 placeholder berikut dalam contoh dengan informasi instans Db2 DB AndaRDS.

    • port — Nomor port untuk SSL koneksi. Ini bisa berupa nomor port apa pun kecuali nomor yang digunakan untuk SSL non-port.

    • master_username — Nama pengguna utama untuk instans DB Anda.

    • master_password — Kata sandi utama untuk instans DB Anda.

    • database_name — Nama database Anda dalam instans DB Anda.

    • ip_address — Alamat IP untuk titik akhir instans DB 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 Python skrip 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