Acceda a sus recursos de AWS de forma privada
Hoy en este blog, configuraremos nuestros recursos de AWS para acceder de forma privada con tres casos de uso diferentes. ¡Empecemos juntos!
1° Caso: configure sus funciones de Lambda para acceder a AWS RDS:
Como sabe, sus bases de datos siempre deben estar en la subred privada y no deben ser de acceso público. Debe conectar sus bases de datos desde sus funciones de AWS Lambda. Como puedes hacer eso?
¿Qué hacer? Usar AWS Lambda en VPC
Configure una función Lambda con una VPC para crear una red privada, como conectar nuestras bases de datos o servicios internos.
En primer lugar, debe verificar que nuestro RDS no sea de acceso público.
- En la consola de AWS Lambda, debe elegir VPC → Editar.
- Podrá seleccionar VPC y subredes desde aquí. Para alta disponibilidad, elija al menos 2 subredes.
- Probablemente obtendrá un error como este. Debe agregar una política a su rol de ejecución de AWS Lambda.
- AWS tiene una política administrada llamada “AWSLambdaVPCAccessExecutionRole”. Puede usar esto para evitar errores.
Después de eso, puede configurar con éxito su Lambda con la configuración de AWS VPC que especificó.
Pruebe la conectividad desde su función AWS Lambda. Este es un código de prueba de ejemplo, no use credenciales codificadas en su código, puede usar AWS Secrets Manager para eso.
2° Caso: use la lista blanca de IP para sus URL de funciones de AWS Lambda:
Quiere acceder a las URL de la función AWS Lambda solo desde su EC2. ¿Como puedes hacer eso?
Solución: verifique la IP de origen del encabezado y utilícela para la lista blanca de IP
Con las URL de función de AWS Lambda, solo puede acceder a través de la Internet pública. Para la lista blanca de IP, encontré un recurso muy útil que puede incluir en la lista blanca sus IP de recursos para usar las URL de la función Lambda.
Acá debe verificar la IP de origen que invoca a Lambda. Si las IP pertenecen a su rango de IP, Lambda devuelve 200; de lo contrario, devuelve 500 mensajes “No autorizados”. Puedes consultar todos los códigos fuente desde aquí.
3° Caso: acceda a su DynamoDB de forma privada
Acceda a sus tablas de DynamoDB desde una función de Lambda que se encuentra en la subred privada. Sus funciones de AWS Lambda deben ser internas, no accesibles públicamente desde Internet. ¿Cómo puedes hacer esto?
¿Qué hacer? Configurar puntos de enlace de la VPC para DynamoDB
- Desde VPC → Endpoints, debe seleccionar DynamoDB como servicio.
- Seleccione la VPC a la que están asociados los recursos. También puede configurar una política que controle su acceso. Por ahora, podemos configurar el acceso completo (no lo haga en producción).
- Luego de eso, no necesita hacer nada desde el lado del código. Puede acceder a su recurso de DynamoDB desde AWS Lambda con Boto3 SDK.
Gracias por llegar hasta aquí, si encuentras esto útil no olvides aplaudir 👍🏼suscribirse para recibir más contenido.
Si le interesa, puede echar un vistazo a algunos de los otros artículos que he escrito recientemente sobre AWS y Laravel: