SSLのサポート - Access Module

Teradata® Tools and Utilities Access Moduleリファレンス

Product
Access Module
Release Number
17.10
Published
2021年10月
Language
日本語
Last Update
2021-11-16
dita:mapPath
ja-JP/uur1608578381725.ditamap
dita:ditavalPath
ja-JP/obe1474387269547.ditaval
dita:id
B035-2425
Product Category
Teradata Tools and Utilities

Teradataのテスト環境で、SSLのサポートを有効にしてKafkaサーバーとZooKeeperサーバーを起動するために使用する手順を次に示します。

  1. 新しい秘密鍵を作成します。
    openssl req -new -x509 -keyout <CA_CERT_NAME>.key -out <CA_CERT_NAME> -days <No_of_days> -passin "pass:<password>" -passout "pass:<password>"
  2. Kafkaブローカーのトラストストアとキーストアを作成します。
    keytool -storepass <password> -keypass <password> -keystore <broker_name>_server.keystore.jks -alias localhost -validity <No_of_days> -genkey
    keytool -storepass <password> -keypass <password> -keystore <broker_name>_server.truststore.jks -alias CARoot -import -file <CA_CERT_NAME>
    keytool -storepass <password> -keypass <password> -keystore <broker_name>_server.keystore.jks -alias localhost -certreq -file <broker_name>_cert-file
    openssl x509 -req -CA <CA_CERT_NAME> -CAkey <CA_CERT_NAME>.key -in <broker_name>_cert-file -out <broker_name>_cert-signed -days <No_of_days> -CAcreateserial -passin pass:<password>
    keytool -storepass <password> -keypass <password> -keystore <broker_name>_server.keystore.jks -alias CARoot -import -file <CA_CERT_NAME>
    keytool -storepass <password> -keypass <password> -keystore <broker_name>_server.keystore.jks -alias localhost -import -file <broker_name>_cert-signed
  3. クライアントのキーを作成します。
    openssl genrsa -des3 -passout pass:<password> -out <client_name>_client.key 1024
    openssl req -passin pass:<password> -passout pass:<password> -key <client_name>_client.key -new -out <client_name>_client.req
    openssl x509 -req -passin pass:<password> -in <client_name>_client.req -CA <CA_CERT_NAME> -CAkey <CA_CERT_NAME>.key -CAserial <CA_CERT_NAME>.srl -out <client_name>_client.pem
    <>内の内容を実際の値で置き換えます。コマンドを実行し、CA証明書を作成するために必要な値を指定します。
    例: 新しい秘密鍵を作成します。
    openssl req -new -x509 -keyout MYCERT.key -out MYCERT -days 365 -passin "pass:abcd1234" -passout "pass:abcd1234"
    例: Kafkaブローカーのトラストストアとキーストアを作成します。
    keytool -storepass abcd1234 -keypass abcd1234 -keystore sdl10684_server.keystore.jks -alias localhost -validity 365 -genkey
    keytool -storepass abcd1234 -keypass abcd1234 -keystore sdl10684_server.truststore.jks -alias CARoot -import -file MYCERT
    keytool -storepass abcd1234 -keypass abcd1234 -keystore sdl10684_server.keystore.jks -alias localhost -certreq -file sdl10684_cert-file
    openssl x509 -req -CA MYCERT -CAkey MYCERT.key -in sdl10684_cert-file -out sdl10684_cert-signed -days 365 -CAcreateserial -passin pass:abcd1234
    keytool -storepass abcd1234 -keypass abcd1234 -keystore sdl10684_server.keystore.jks -alias CARoot -import -file MYCERT
    keytool -storepass abcd1234 -keypass abcd1234 -keystore sdl10684_server.keystore.jks -alias localhost -import -file sdl10684_cert-signed
    例: クライアント キーを作成します。
    openssl genrsa -des3 -passout pass:abcd1234 -out sdl14957_client.key 1024
    openssl req -passin pass:abcd1234 -passout pass:abcd1234 -key sdl14957_client.key -new -out sdl14957_client.req
    openssl x509 -req -passin pass:abcd1234 -in sdl14957_client.req -CA MYCERT -CAkey MYCERT.key -CAserial MYCERT.srl -out sdl14957_client.pem
  4. Kafkaブローカーを構成します。

    サーバーのプロパティ ファイルを更新します。

    1. リスナー パラメータを更新します。
      #Normal SSL
         listeners=SSL://<<BROKER>>:<<PORT-NO>>
      
      #SSL with Kerboros
         listeners=SASL_SSL://<<BROKER>>:<<PORT-NO>>
          
    2. 次のSSLパラメータを含めます。
                   #Normal SSL
      security.inter.broker.protocol=SSL
      
      #SSL with Kerboros
      security.inter.broker.protocol=SASL_SSL
                 
      ssl.protocol = TLS
      ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
      ssl.keystore.type = <<Keystore type>> 
      ssl.keystore.location = <<Keystore File Location>>
      ssl.keystore.password = << sslkeystorepassword>>
      ssl.key.password =      <<sslkeypassword>>
      ssl.truststore.type = <<Trust store type >> 
      ssl.truststore.location = <<Truststore File Location>>
      ssl.truststore.password = <<ssltruststorepassword>>
      # To require authentication of clients use "require", else "none" or "request"
      ssl.client.auth = required/none/request
      例えば、次のように指定します。
      security.inter.broker.protocol=SSL
      ssl.protocol = TLS
      ssl.enabled.protocols=TLSv1.2,TLSv1.1,TLSv1
      ssl.keystore.type = JKS
      ssl.keystore.location = /tmp/CA_tests/sdl10684_server.keystore.jks
      ssl.keystore.password = abcd1234
      ssl.key.password = abcd1234
      ssl.truststore.type = JKS
      ssl.truststore.location = /tmp/CA_tests/sdl10684_server.truststore.jks
      ssl.truststore.password = abcd1234
      # To require authentication of clients use "require", else "none" or "request"
      ssl.client.auth = required
  5. ZookeeperサーバーとKafkaサーバーを起動します。
次のように、TPTスクリプトのAccessModuleKafka初期化文字列に追加のSSLパラメータを更新して含めます。
#Normal SSL
AccessModuleInitStr = '-X security.protocol=ssl -X ssl.ca.location=<path-for-cacert>/<CA_CERT_NAME> 
                       -X ssl.certificate.location=<path-for-pemfile>/<.pem>
                       -X ssl.key.location=<path-for-clientkey>/<clientkey> -X ssl.key.password=<password>'
                                 
#SSL with Kerboros

AccessModuleInitStr = '-X security.protocol=SASL_SSL 
                       -X sasl.kerberos.keytab=/etc/security/keytabs/CLIENT_HOST.keytab 
                       -X sasl.kerberos.principal=CLIENT_NAME/CLIENT_HOST_FQDN 
                       -X ssl.ca.location=<path-for-cacert>/<CA_CERT_NAME> 
                       -X ssl.certificate.location=<path-for-pemfile>/<.pem>
                       -X ssl.key.location=<path-for-clientkey>/<clientkey> -X ssl.key.password=<password>'
                                 
例えば、次のように指定します。
AccessModuleInitStr = '-X security.protocol=ssl -X ssl.ca.location=/tmp/CA_tests/MYCERT 
                       -X ssl.certificate.location=/tmp/CA_tests/sdl14957_client.pem
                       -X ssl.key.location=/tmp/CA_tests/sdl14957_client.key -X ssl.key.password=abcd1234'