Acceso al clúster - Amazon MemoryDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso al clúster

Sus instancias de MemoryDB están diseñadas para que se pueda acceder a ellas a través de una instancia de AmazonEC2.

Puedes acceder a tu nodo MemoryDB desde una EC2 instancia de Amazon en el mismo Amazon. VPC O bien, mediante el VPC peering, puede acceder a su nodo MemoryDB desde un Amazon ubicado EC2 en un Amazon diferente. VPC

Conceder acceso a su clúster

Puede conectarse a su clúster de MemoryDB solo desde una EC2 instancia de Amazon que se ejecute en el mismo Amazon. VPC En este caso, necesitará conceder acceso de red al clúster.

Para conceder la entrada de red desde un grupo de VPC seguridad de Amazon a un clúster
  1. Inicia sesión en la EC2 consola de Amazon AWS Management Console y ábrela en https://console.aws.amazon.com/ec2/.

  2. En el panel de navegación de la izquierda, debajo de Network & Security, elija Security Groups.

  3. En la lista de grupos de seguridad, elige el grupo de seguridad para tu AmazonVPC. A menos que haya creado un grupo de seguridad para que lo utilice MemoryDB, este grupo de seguridad se denominará default.

  4. Elija la pestaña Inbound y haga lo siguiente:

    1. Elija Editar.

    2. Seleccione Agregar regla.

    3. En la columna Tipo, selecciona TCPRegla personalizada.

    4. En el cuadro Port range, escriba el número de puerto para su nodo de clúster. Este número debe ser el mismo que especificó cuando lanzó el clúster. El puerto predeterminado para Valkey y Redis es OSS. 6379

    5. En el cuadro Fuente, selecciona Cualquier lugar que tenga el rango de puertos (0.0.0.0/0) para que cualquier EC2 instancia de Amazon que lances en tu Amazon VPC pueda conectarse a tus nodos de MemoryDB.

      importante

      Al abrir el clúster de MemoryDB a 0.0.0.0/0, no se expone el clúster a Internet, ya que no tiene una dirección IP pública y, por lo tanto, no se puede acceder a él desde fuera de. VPC Sin embargo, el grupo de seguridad predeterminado se puede aplicar a otras EC2 instancias de Amazon en la cuenta del cliente y esas instancias pueden tener una dirección IP pública. Si se está ejecutando algo en el puerto predeterminado, ese servicio podría exponerse de forma involuntaria. Por lo tanto, recomendamos crear un grupo VPC de seguridad que será utilizado exclusivamente por MemoryDB. Para obtener más información, consulte Grupos de seguridad personalizados.

    6. Seleccione Guardar.

Cuando lances una EC2 instancia de Amazon en tu AmazonVPC, esa instancia podrá conectarse a tu clúster de MemoryDB.

Acceder a los recursos de MemoryDB desde el exterior AWS

MemoryDB es un servicio diseñado para ser utilizado internamente por usted. VPC Se desaconseja el acceso externo debido a la latencia del tráfico de Internet y a los riesgos de seguridad. Sin embargo, si se requiere un acceso externo a MemoryDB para fines de prueba o desarrollo, puede hacerlo a través de un. VPN

Al utilizar el AWS clienteVPN, permite el acceso externo a sus nodos de MemoryDB con las siguientes ventajas:

  • Acceso restringido a usuarios aprobados o claves de autenticación

  • Tráfico cifrado entre el VPN cliente y el punto final; AWS VPN

  • Acceso limitado a subredes o nodos específicos

  • Revocación sencilla del acceso de los usuarios o claves de autenticación

  • Conexiones de auditoría

Los siguientes procedimientos muestran cómo:

Crear una entidad de certificación

Es posible crear una entidad de certificación (CA) utilizando diferentes técnicas o herramientas. Sugerimos la utilidad easy-rsa, proporcionada por el proyecto Open. VPN Independientemente de la opción que elija, asegúrese de mantener protegidas las claves. El siguiente procedimiento descarga los scripts de easy-rsa, crea la autoridad de certificación y las claves para autenticar al primer cliente: VPN

  • Para crear los certificados iniciales, abra un terminal y proceda del modo siguiente:

    • git clonehttps://github.com/OpenVPN/easy-rsa

    • cd easy-rsa

    • ./easyrsa3/easyrsa init-pki

    • ./easyrsa3/easyrsa build-ca nopass

    • ./easyrsa3/easyrsa build-server-full server nopass

    • ./easyrsa3/easyrsa build-client-full client1.domain.tld nopass

    Se creará un subdirectorio pki que contiene los certificados bajo easy-rsa.

  • Envíe el certificado del servidor al administrador de AWS certificados (): ACM

    • En la ACM consola, seleccione Certificate Manager.

    • Seleccione Importar certificado.

    • Especifique el certificado de clave pública disponible en el archivo easy-rsa/pki/issued/server.crt en el campo Cuerpo del certificado.

    • Pegue la clave privada disponible en easy-rsa/pki/private/server.key en el campo Clave privada del certificado. Asegúrese de seleccionar todas las líneas entre BEGIN AND END PRIVATE KEY (incluidas las líneas END y BEGIN).

    • Pegue la clave pública de CA disponible en el archivo easy-rsa/pki/ca.crt en el campo Cadena de certificados.

    • Seleccione Revisar e importar.

    • Seleccione Importar.

    Para enviar los certificados del servidor a ACM través del AWS CLI, ejecute el siguiente comando: aws acm import-certificate --certificate fileb://easy-rsa/pki/issued/server.crt --private-key file://easy-rsa/pki/private/server.key --certificate-chain file://easy-rsa/pki/ca.crt --region region

    Anote el certificado ARN para usarlo en el futuro.

Configuración de los VPN componentes AWS del cliente

Uso de la AWS consola

En la AWS consola, selecciona Servicios y, a continuación, VPC

En Red privada virtual, seleccione VPNPuntos finales de cliente y haga lo siguiente:

Configuración de los componentes AWS del cliente VPN

  • Seleccione Crear VPN punto final de cliente.

  • Especifique las opciones siguientes:

    • Cliente IPv4 CIDR: utilice una red privada con una máscara de red de al menos un rango de /22. Asegúrese de que la subred seleccionada no entre en conflicto con las direcciones de las VPC redes. Ejemplo 10.0.0.0/22.

    • En Certificado de servidor ARN, seleccione el certificado ARN importado anteriormente.

    • Seleccione Utilizar la autenticación mutua.

    • En Certificado de cliente ARN, seleccione ARN el certificado importado anteriormente.

    • Seleccione Crear VPN punto final de cliente.

Uso del AWS CLI

Ejecute el siguiente comando:

aws ec2 create-client-vpn-endpoint --client-cidr-block "10.0.0.0/22" --server-certificate-arn arn:aws:acm:us-east-1:012345678912:certificate/0123abcd-ab12-01a0-123a-123456abcdef --authentication-options Type=certificate-authentication,,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:012345678912:certificate/123abcd-ab12-01a0-123a-123456abcdef} --connection-log-options Enabled=false

Ejemplo de salida:

"ClientVpnEndpointId": "cvpn-endpoint-0123456789abcdefg", "Status": { "Code": "pending-associate" }, "DnsName": "cvpn-endpoint-0123456789abcdefg.prod.clientvpn.us-east-1.amazonaws.com" }

Asocie las redes de destino al VPN punto final

  • Seleccione el nuevo VPN punto final y, a continuación, seleccione la pestaña Asociaciones.

  • Seleccione Asociar y especifique las siguientes opciones.

    • VPC: Seleccione el clúster de MemoryDB. VPC

    • Seleccione una de las redes del clúster de MemoryDB. En caso de duda, revise las redes en Grupos de subredes en el panel de MemoryDB.

    • Seleccione Asociar. Si es necesario, repita los pasos para las redes restantes.

Utilización del AWS CLI

Ejecute el siguiente comando:

aws ec2 associate-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --subnet-id subnet-0123456789abdcdef

Ejemplo de salida:

"Status": { "Code": "associating" }, "AssociationId": "cvpn-assoc-0123456789abdcdef" }

Revise el grupo VPN de seguridad

El VPN Enpoint adoptará automáticamente el grupo de seguridad predeterminado VPC del mismo. Compruebe las reglas de entrada y salida y confirme si el grupo de seguridad permite el tráfico desde la VPN red (definida en la configuración del VPN punto final) a las redes MemoryDB en los puertos de servicio (de forma predeterminada, 6379 para Redis).

Si necesita cambiar el grupo de seguridad asignado al punto final, proceda de la VPN siguiente manera:

  • Seleccione el grupo de seguridad actual

  • Seleccione Aplicar grupo de seguridad.

  • Seleccione el nuevo grupo de seguridad.

Usando el AWS CLI

Ejecute el siguiente comando:

aws ec2 apply-security-groups-to-client-vpn-target-network --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefga  --vpc-id vpc-0123456789abdcdef --security-group-ids sg-0123456789abdcdef

Ejemplo de salida:

"SecurityGroupIds": [ "sg-0123456789abdcdef" ] }

nota

El grupo de seguridad MemoryDB también debe permitir el tráfico procedente de los VPN clientes. Las direcciones de los clientes se enmascararán con la dirección del VPN punto final, según la red. VPC Por lo tanto, tenga en cuenta la VPC red (no la red VPN de los clientes) al crear la regla de entrada en el grupo de seguridad de MemoryDB.

Autoriza el VPN acceso a las redes de destino

En la pestaña Autorización seleccione Autorizar entrada y especifique lo siguiente:

  • Red de destino para habilitar el acceso: utilice 0.0.0.0/0 para permitir el acceso a cualquier red (incluido Internet) o restrinja las redes o hosts de MemoryDB.

  • En Conceder acceso a:, seleccione Permitir el acceso a todos los usuarios.

  • Seleccione Añadir reglas de autorización.

Usando el AWS CLI

Ejecute el siguiente comando:

aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --target-network-cidr 0.0.0.0/0 --authorize-all-groups

Ejemplo de salida:

{ "Status": { "Code": "authorizing" } }

Permitir el acceso a Internet desde los VPN clientes

Si necesita navegar por Internet a través deVPN, debe crear una ruta adicional. Seleccione la pestaña Route Table (Tabla de ruteo) y, a continuación, seleccione Create Route (Crear ruta):

  • Destino de la ruta: 0.0.0.0/0

  • ID de VPC subred de destino: seleccione una de las subredes asociadas con acceso a Internet.

  • Seleccione Create Route (Crear ruta).

Utilización del AWS CLI

Ejecute el siguiente comando:

aws ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abdcdef

Ejemplo de salida:

{ "Status": { "Code": "creating" } }

Configure el VPN cliente

En el VPN panel de control del AWS cliente, seleccione el VPN punto final creado recientemente y seleccione Descargar la configuración del cliente. Copie el archivo de configuración y los archivos easy-rsa/pki/issued/client1.domain.tld.crt y easy-rsa/pki/private/client1.domain.tld.key. Edite el archivo de configuración y cambie o agregue los siguientes parámetros:

  • cert: agregue una nueva línea con el parámetro cert apuntando al archivo client1.domain.tld.crt. Utilice la ruta completa al archivo. Ejemplo: cert /home/user/.cert/client1.domain.tld.crt

  • cert: key: agregue una nueva línea con el parámetro key apuntando al archivo client1.domain.tld.key. Utilice la ruta completa al archivo. Ejemplo: key /home/user/.cert/client1.domain.tld.key

Establezca la VPN conexión con el comando: sudo openvpn --config downloaded-client-config.ovpn

Revocar el acceso

Si necesita invalidar el acceso de una clave de cliente concreta, la clave debe revocarse en la CA. A continuación, envíe la lista de revocaciones al AWS ClienteVPN.

Revocar la clave con easy-rsa:

  • cd easy-rsa

  • ./easyrsa3/easyrsa revoke client1.domain.tld

  • Especifique "yes" (sí) para continuar o escriba cualquier otra entrada para cancelar.

    Continue with revocation: `yes` ... * `./easyrsa3/easyrsa gen-crl

  • Se CRL ha creado una actualización. CRLarchivo: /home/user/easy-rsa/pki/crl.pem

Importación de la lista de revocaciones al AWS ClienteVPN:

  • En el AWS Management Console, selecciona Servicios y, a continuación, VPC.

  • Seleccione Client VPN Endpoints.

  • Seleccione el VPN punto final del cliente y, a continuación, seleccione Acciones -> Importar certificado CRL de cliente.

  • Pegue el contenido del archivo crl.pem.

Utilización del AWS CLI

Ejecute el siguiente comando:

aws ec2 import-client-vpn-client-certificate-revocation-list --certificate-revocation-list file://./easy-rsa/pki/crl.pem --client-vpn-endpoint-id cvpn-endpoint-0123456789abcdefg

Ejemplo de salida:

Example output: { "Return": true }