Configuração de um endpoint do Apache Livy seguro com TLS/SSL
Consulte as seções a seguir para saber mais sobre como configurar o Apache Livy para Amazon EMR no EKS com criptografia TLS e SSL de ponta a ponta.
Configuração da criptografia TLS e SSL
Para configurar a criptografia SSL no endpoint do Apache Livy, siga estas etapas.
-
Instale o driver CSI do Secrets Store e o AWS Secrets and Configuration Provider (ASCP): o driver CSI do Secrets Store e o ASCP armazenam com segurança os certificados e senhas JKS do Livy que o pod do servidor Livy precisa para habilitar o SSL. Você também pode instalar apenas o driver CSI do Secrets Store e usar qualquer outro provedor de segredos compatível.
-
Crie um certificado do ACM: esse certificado é necessário para proteger a conexão entre o cliente e o endpoint do ALB.
-
Configure um certificado do JKS, uma senha de chave e uma senha de keystore para o AWS Secrets Manager: necessários para proteger a conexão entre o endpoint do ALB e o servidor Livy.
-
Adicione permissões à conta de serviço do Livy para recuperar segredos do AWS Secrets Manager: o servidor Livy precisa dessas permissões para recuperar segredos do ASCP e adicionar as configurações do Livy para proteger o servidor Livy. Para adicionar permissões do IAM a uma conta de serviço, consulte Setting up access permissions with IAM roles for service accounts (IRSA).
Configuração de um certificado do JKS com uma chave e uma senha do keystore para AWS Secrets Manager
Siga estas etapas para configurar um certificado do JKS com uma chave e uma senha do keystore.
-
Gere um arquivo do keystore para o servidor Livy.
keytool -genkey -alias
<host>
-keyalg RSA -keysize 2048 –dname CN=<host>
,OU=hw,O=hw,L=<your_location>
,ST=<state>
,C=<country>
–keypass<keyPassword>
-keystore<keystore_file>
-storepass<storePassword>
--validity 3650 -
Crie um certificado.
keytool -export -alias
<host>
-keystore mykeystore.jks -rfc -filemycertificate.cert
-storepass<storePassword>
-
Crie um arquivo da truststore.
keytool -import -noprompt -alias
<host>
-file<cert_file>
-keystore<truststore_file>
-storepass<truststorePassword>
-
Salve o certificado do JKS no AWS Secrets Manager. Substitua
livy-jks-secret
pelo segredo efileb://mykeystore.jks
pelo caminho para o certificado do JKS do keystore.aws secretsmanager create-secret \ --name
livy-jks-secret
\ --description "My Livy keystore JKS secret" \ --secret-binaryfileb://mykeystore.jks
-
Salve o a senha do keystore e da chave no Secrets Manager. Use seus próprios parâmetros.
aws secretsmanager create-secret \ --name
livy-jks-secret
\ --description "My Livy key and keystore password secret" \ --secret-string "{\"keyPassword\":\"<test-key-password>
\",\"keyStorePassword\":\"<test-key-store-password>
\"}" -
Crie um namespace de servidor do Livy com o comando a seguir.
kubectl create ns
<livy-ns>
-
Crie o objeto
ServiceProviderClass
para o servidor Livy que tem o certificado do JKS e as senhas.cat >livy-secret-provider-class.yaml << EOF apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: aws-secrets spec: provider: aws parameters: objects: | - objectName: "livy-jks-secret" objectType: "secretsmanager" - objectName: "livy-passwords" objectType: "secretsmanager" EOF kubectl apply -f livy-secret-provider-class.yaml -n
<livy-ns>
Conceitos básicos do Apache Livy habilitado por SSL
Depois de habilitar o SSL no servidor Livy, você deve configurar a serviceAccount
para ter acesso aos segredos de keyStore
e keyPasswords
no AWS Secrets Manager.
-
Crie o namespace do servidor Livy.
kubectl create namespace
<livy-ns>
Configure a conta de serviço do Livy para ter acesso aos segredos no Secrets Manager. Para obter mais informações sobre como configurar o IRSA, consulte Setting up IRSA while installing Apache Livy.
aws ecr get-login-password \--region region-id | helm registry login \ --username AWS \ --password-stdin ECR-registry-account.dkr.ecr.region-id.amazonaws.com
-
Instale o Livy. Para o parâmetro de versão do chart do Helm, use o rótulo de lançamento do Amazon EMR, como
7.1.0
. Você também deve substituir o ID da conta de registro do Amazon ECR e o ID da região por seus próprios IDs. Você pode encontrar o valor correspondente deECR-registry-account
para as Região da AWS das contas de registro do Amazon ECR por região.helm install
<livy-app-name>
\ oci://895885662937.dkr.ecr.region-id.amazonaws.com/livy \ --version 7.3.0 \ --namespacelivy-namespace-name
\ --set image=<ECR-registry-account.dkr.ecr>.<region>
.amazonaws.com/livy/emr-7.3.0:latest \ --set sparkNamespace=spark-namespace
\ --set ssl.enabled=true --set ssl.CertificateArn=livy-acm-certificate-arn --set ssl.secretProviderClassName=aws-secrets --set ssl.keyStoreObjectName=livy-jks-secret --set ssl.keyPasswordsObjectName=livy-passwords --create-namespace -
Continue a partir da etapa 5 em Installing Apache Livy on Amazon EMR on EKS.