Configuración de un cliente para que utilice la autenticación
En este proceso, se describe cómo configurar una instancia de Amazon EC2 para utilizarla como cliente para la autenticación.
En este proceso, se describe cómo producir y consumir mensajes con la autenticación mediante la creación de un equipo cliente, la creación de un tema y la configuración de los ajustes de seguridad necesarios.
-
Cree una instancia de Amazon EC2 para utilizarla como un equipo cliente. Para simplificar, cree esta instancia en la misma VPC que utilizó para el clúster. Consulte Paso 3: creación de un equipo cliente para ver un ejemplo sobre cómo crear dicho equipo cliente.
-
Cree un tema. Para ver un ejemplo, consulte las instrucciones en Paso 4: creación de un tema en el clúster de Amazon MSK.
-
En una máquina donde tenga la AWS CLI instalada, ejecute el siguiente comando para obtener a los agentes de arranque del clúster. Sustituya
Cluster-ARN (ARN-clúster)por el ARN de su clúster.aws kafka get-bootstrap-brokers --cluster-arnCluster-ARNGuarde la cadena asociada a
BootstrapBrokerStringTlsen la respuesta. -
En la máquina de su cliente, ejecute el siguiente comando para utilizar el almacén de confianza de JVM para crear su almacén de confianza del cliente. Si su ruta de JVM es diferente, ajuste el comando en consecuencia.
cp /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-0.amzn2.x86_64/jre/lib/security/cacerts kafka.client.truststore.jks -
En la máquina de su cliente, ejecute el siguiente comando para crear una clave privada para su cliente. Reemplace
Distinguished-Name,Example-Alias,Your-Store-PassyYour-Key-Passpor las cadenas que elija.keytool -genkey -keystore kafka.client.keystore.jks -validity 300 -storepassYour-Store-Pass-keypassYour-Key-Pass-dname "CN=Distinguished-Name" -aliasExample-Alias-storetype pkcs12 -keyalg rsa -
En la máquina de su cliente, ejecute el siguiente comando para crear una solicitud de certificado con la clave privada que creo en el paso anterior.
keytool -keystore kafka.client.keystore.jks -certreq -file client-cert-sign-request -aliasExample-Alias-storepassYour-Store-Pass-keypassYour-Key-Pass -
Abra el archivo
client-cert-sign-requesty asegúrese de que comience por-----BEGIN CERTIFICATE REQUEST-----y termine por-----END CERTIFICATE REQUEST-----. Si comienza por-----BEGIN NEW CERTIFICATE REQUEST-----, elimine la palabraNEW(y el espacio único que le sigue) desde el comienzo hasta el final del archivo. -
En un equipo en el que tiene la AWS CLI instalada, ejecute el siguiente comando para firmar su solicitud de certificado. Sustituya
Private-CA-ARN (ARN-CA-privado)por el ARN de su PCA. Puede cambiar el valor de la validez si lo desea. Aquí utilizamos 300 como ejemplo.aws acm-pca issue-certificate --certificate-authority-arnPrivate-CA-ARN--csr fileb://client-cert-sign-request --signing-algorithm "SHA256WITHRSA" --validity Value=300,Type="DAYS"Guarde el ARN del certificado proporcionado en la respuesta.
nota
Para recuperar el certificado de cliente, utilice el comando
acm-pca get-certificatey especifique el ARN del certificado. Para obtener más información, consulte get-certificateen la Referencia de comandos de la AWS CLI. -
Ejecute el siguiente comando para obtener el certificado que Autoridad de certificación privada de AWS firmó para usted. Sustituya
Certificate-ARN (ARN-Certificado)por el ARN que obtuvo de la respuesta al comando anterior.aws acm-pca get-certificate --certificate-authority-arnPrivate-CA-ARN--certificate-arnCertificate-ARN -
A partir del resultado de JSON de la ejecución del comando anterior, copie las cadenas asociadas a
CertificateyCertificateChain. Pegue estas dos cadenas en un nuevo archivo llamado signed-certificate-from-acm. Pegue la siguiente cadena asociada aCertificateprimero, seguido de la cadena asociada aCertificateChain. Sustituya los caracteres\npor las nuevas líneas. La siguiente es la estructura del archivo después de pegarle el certificado y la cadena del certificado.-----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- -
Ejecute el siguiente comando en el equipo cliente para agregar este certificado a su almacén de claves para que puede presentarlo al hablar con los agentes de MSK.
keytool -keystore kafka.client.keystore.jks -import -file signed-certificate-from-acm -aliasExample-Alias-storepassYour-Store-Pass-keypassYour-Key-Pass -
Cree un archivo denominado
client.propertiescon el siguiente contenido. Ajuste las ubicaciones del almacén de confianza y de claves a las rutas en las que guardókafka.client.truststore.jks. Sustituya los marcadores de posición{YOUR KAFKA VERSION}por su versión de cliente de Kafka.security.protocol=SSL ssl.truststore.location=/tmp/kafka_2.12-{YOUR KAFKA VERSION}/kafka.client.truststore.jks ssl.keystore.location=/tmp/kafka_2.12-{YOUR KAFKA VERSION}/kafka.client.keystore.jks ssl.keystore.password=Your-Store-Passssl.key.password=Your-Key-Pass