Рубрики
Uncategorized

Создание EMR с Presto SSL

Эта статья посвящена добавлению SSL в существующую среду Presto. Конфигурация Presto и … с меткой AWS, DevOps, EMR, Presto.

Эта статья посвящена добавлению SSL в существующую среду Presto. Конфигурация Presto и Hive Metastore предполагается как завершенная. Мы также освещаем, как подключиться к нему с помощью JDBC.

Однако на некоторое время мы использовали PRESTO без SSL, нам нужно было подключить нашу платформу для анализа микропротегии к PRESTO, и это требовало использования SSL -соединения.

  • Создать сертификат самостоятельно подписанного
  • Конфигурация безопасности EMR
  • Создать EMR
  • Подключите и загрузите TrustStore
  • Подключите с помощью JDBC

Создать сертификат самостоятельно подписанного

Следуйте инструкциям Здесь Чтобы создать сертификат, подписанный. Мне также нужен был адрес псевдонима DNS Route53 для EMR, presto.mydomain.com. Это позволяет мне настроить клиент JDBC для использования presto.mydomain.com в качестве URL без необходимости обновлять клиента при восстановлении EMR. EMR обновит запись Route53 с помощью IP Master Node во время начальной загрузки. Я расширил запрос на сертификат, чтобы включить этот дополнительный домен.

cp /etc/ssl/openssl.cnf .
echo '[ subject_alt_name ]' >> openssl.cnf
echo 'subjectAltName = DNS:presto.mydomain.com, DNS:*.us-west-2.compute.internal'>> openssl.cnf
openssl req -x509 -newkey rsa:1024 -keyout privateKey.pem -out certificateChain.pem -days 365 -nodes -config openssl.cnf -extensions subject_alt_name -subj '/C=US/ST=Washington/L=Seattle/O=MyOrg/OU=MyDept/CN=*.us-west-2.compute.internal'
cp certificateChain.pem trustedCertificates.pem
zip -r -X prestosslcerts.zip certificateChain.pem privateKey.pem trustedCertificates.pem

Теперь загрузите сертификат в место S3, которое EMR может прочитать.

aws s3 cp prestosslcerts.zip s3://my-emr-bucket/prestosslcerts.zip

Конфигурация безопасности EMR

Создайте новую конфигурацию безопасности EMR, которая использует ZIP сертификата для шифрования в транзите.

Создать EMR

Создайте свой EMR, но используйте его новую конфигурацию безопасности.

Подключите и загрузите TrustStore

SSH в ваш мастер EMR

[hadoop@ip-10-100-10-10 ~]$ cat /etc/hadoop/conf/ssl-client.xml


  
    ssl.client.keystore.keypassword
    xxxxxxxxxx
  

  
    ssl.client.truststore.reload.interval
    10000
  

  
    ssl.client.keystore.location
    /usr/share/aws/emr/security/conf/keystore.jks
  

  
    ssl.client.truststore.password
    xxxxxxxxxx
  

  
    ssl.client.truststore.type
    jks
  

  
    ssl.client.truststore.location
    /usr/share/aws/emr/security/conf/truststore.jks
  

  
    ssl.client.keystore.password
    xxxxxxxxxx
  

  
    ssl.client.keystore.type
    jks
  

Обратите внимание на следующее:

  • ssl.client.truststore.location
  • ssl.client.truststore.password

Тот же файл TrustStore.jks можно использовать для подключения к любому EMR, если они используют ту же конфигурацию безопасности.

Посмотреть TrustStore

Необязательно: используйте команду ниже, чтобы просмотреть сертификат TrustStore

keytool -list -v -keystore /usr/share/aws/emr/security/conf/truststore.jks
[ssl.client.truststore.password]

Измените пароль TrustStore

Необязательно: если вам потребуется, пароль TrustStore может быть изменен. Это полезно, если вы хотите загрузить сертификат снова без необходимости обновлять пароли клиентов.

cp /usr/share/aws/emr/security/conf/truststore.jks /root/truststore.jk
keytool -storepasswd -keystore /root/truststore.jks 
Enter keystore password:  <== ssl.client.truststore.password
New keystore password:   <== user specified password 

Подключите с помощью JDBC

Скопируйте файл TrustStore.jks из TrustStore.Location, обычно /USR/Share/aws/emr/security/conf/truststore.jks вашему клиенту.

Либо скачать драйвер Presto JDBC https://prestosql.io/download.html Или копирование из EMR/USR/LIB/PRESTO/PRESTO-JDBC/

URL -адрес соединения будет выглядеть как jdbc: presto://presto.mydomain.com: 8446/hive/product_usage? ssl = true & ssltruststorepath = & ssltruststorepassword = ;

Использование SQL Workbench/J

Откройте SQL Workbench/J File> Управление драйверами

  • Создать новую запись
  • Имя: Presto JDBC Driver
  • Библиотека: C: \ local \ path \ presto-jdbc-0.228.jar
  • ХОРОШО

Файл> Окно подключения

  • Имя: Prestossl
  • Водитель: Presto JDBC Driver
  • URL: JDBC: Presto://presto.mydomain.com: 8446/каталог/схема
  • Имя пользователя: Hadoop
  • Пароль: пусто

Расширенные свойства

  • SSL True
  • Ssltruststorepath C: \ local \ path \ truststore.jks
  • SsltrustStorePassword [ssl.client.truststore.password]

Оригинал: «https://dev.to/theyoungones2/creating-an-emr-with-presto-ssl-4091»