Conceptos generales de seguridad

1

Ciberseguridad para Desarrolladores: Protege tus Proyectos y Datos

2

Principales Riesgos de Seguridad en Empresas y C贸mo Mitigarlos

3

Principios de Seguridad en AWS: Autenticaci贸n, Autorizaci贸n y Auditor铆a

Funciona en mi local

4

Configuraci贸n de Webhooks y API REST con Go y ngrok

5

Creaci贸n de repositorios seguros y prevenci贸n de SQL Injection

6

Creaci贸n de M茅todos Testeables con Mocks en Go

Introducci贸n a DevSecOps

7

Implementaci贸n de DevSecOps con GitHub Actions para Desarrolladores

8

Automatizaci贸n de Pruebas en Go con GitHub Actions

9

Pruebas Unitarias con Mocks en GitHub Actions

10

Gesti贸n de Permisos y Presupuestos en AWS para Nuevas Arquitecturas

Seguridad en la arquitectura

11

Integraci贸n de GitHub Webhooks y AWS para Gesti贸n de Commits

12

Gesti贸n de Infraestructura como C贸digo con Terraform en AWS

13

Infraestructura como C贸digo con Terraform y Makefiles

14

Automatizaci贸n de Infraestructura con Terraform: Roles y Pol铆ticas en AWS

15

Implementaci贸n de buckets y funciones Lambda con Terraform y AWS S3

16

Configuraci贸n de Bases de Datos en AWS con VPC y Seguridad IP

17

Configuraci贸n de Lambdas en VPC usando Terraform

18

Configuraci贸n de API Gateway para Lambdas en AWS

Evitando vulnerabilidades en el c贸digo

19

Configuraci贸n de Autenticaci贸n con Auth0 en Aplicaciones Web

20

Implementaci贸n de Authorizer con Auth0 en AWS Lambda

21

Conexi贸n y Configuraci贸n de Lambda con AWS y Postgres

22

Configuraci贸n de Endpoints y Pol铆ticas en AWS con Terraform

23

Validaci贸n de Webhooks desde GitHub usando User Agent

24

Validaci贸n de Webhooks de GitHub con AWS Secrets Manager

Controles de seguridad sobre datos

25

Seguridad de Datos y Certificados SSL en AWS

26

Protecci贸n de Datos en Reposo con AWS KMS

Monitoring y alertas

27

Creaci贸n de un Sistema de Logs en Go para Observabilidad

28

Monitoreo y Auditor铆a en AWS con CloudWatch y CloudTrail

29

Creaci贸n de Alertas en AWS CloudWatch

CORS y cierre

30

Manejo de CORS en Desarrollo Web Seguro

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Implementaci贸n de buckets y funciones Lambda con Terraform y AWS S3

15/30
Recursos

驴C贸mo crear un bucket S3 utilizando Terraform?

Para almacenar nuestros archivos de funciones Lambda, es crucial contar con un bucket en Amazon S3, y la forma automatizada y eficiente de hacerlo es utilizando Terraform. Este enfoque no solo facilita el proceso, sino que asegura mantener la infraestructura como c贸digo. Sigue estos pasos para crear tu bucket:

  1. Crea un nuevo m贸dulo de infraestructura:

    • Dentro de tu m贸dulo, a帽ade un directorio llamado S3.
    • Dentro de este directorio, crea un archivo de configuraci贸n para definir el bucket.
  2. Configura el bucket en Terraform:

    • Define un recurso AWS bucket en Terraform, por ejemplo, lambda_bucket.
    • Establece un nombre arbitrario para tu bucket, tal como CamilaLenisLambdaPlatzi.
    resource "aws_s3_bucket" "lambda_bucket" {
      bucket = "CamilaLenisLambdaPlatzi"
    }
    
  3. Habilita el versionamiento:

    • A帽ade el recurso versioning para el bucket para mantener un control de versiones.
    resource "aws_s3_bucket_versioning" "versioning" {
      bucket = aws_s3_bucket.lambda_bucket.id
      versioning_configuration {
        status = "Enabled"
      }
    }
    
  4. Integra el m贸dulo en tu proyecto:

    • Aseg煤rate de incluir este m贸dulo en el archivo principal de Terraform para que sea parte de tu infraestructura.
    module "s3" {
      source = "./S3"
    }
    
  5. Ejecuta comandos Terraform:

    • Inicia el m贸dulo con terraform init.
    • Planea la creaci贸n del bucket con terraform plan.
    • Implementa con terraform apply.

Estos pasos configuran tu entorno para recibir y mantener los binarios de tus funciones Lambda.

驴C贸mo crear y organizar funciones Lambda en tu proyecto?

Tener organizadas tus funciones Lambda es esencial para un desarrollo eficiente. Crear y estructurar tus funciones desde el inicio puede facilitar mucho el trabajo futuro. Aqu铆 te mostramos c贸mo hacerlo:

  1. Configura el entorno del proyecto:

    • Dentro de tu proyecto, crea un directorio denominado Functions.
    • Dentro de este directorio, realiza subcarpetas para cada funci贸n que vas a manejar. Por ejemplo, getMetrics y handleGithubNotifications.
  2. Desarrolla las funciones b谩sicas:

    • Crea archivos para tus funciones Lambda tomando como base ejemplos o mediante la asistencia de inteligencia artificial.
    • Utiliza la librer铆a AWS Lambda para definir las funciones.
  3. Manejo de dependencias en Go:

    • Asegura que todas las dependencias se encuentren sincronizadas ejecutando go mod vendor. Si es necesario, primero realiza go get.
    go mod vendor
    
  4. Desarrolla un archivo make:

    • Configura un Makefile para automatizar el proceso de compilaci贸n y empaquetado.
    • Los comandos aseguran la compilaci贸n del c贸digo en binarios, la creaci贸n de archivos .zip y su subida a S3.
  5. Publica las funciones:

    • Utiliza el comando make publish para compilar y subir tus funciones Lambda a S3.

驴C贸mo integrar las funciones Lambda con Terraform?

Despu茅s de tener tus funciones Lambda listas, el siguiente paso es integrarlas con Terraform, para garantizar que se gestionen y desplieguen autom谩ticamente como parte de tu infraestructura.

  1. Crea un nuevo m贸dulo para computar:

    • Agrega un directorio llamado compute donde guardar谩s tus configuraciones Lambda.
  2. Crea archivos de configuraci贸n por funci贸n:

    • Cada funci贸n tendr谩 su propio archivo de configuraci贸n en Terraform. Por ejemplo, getMetrics y handleGithubNotifications.
    resource "aws_lambda_function" "get_metrics" {
      function_name = "GetMetrics"
      s3_bucket     = var.lambda_bucket
      s3_key        = "getMetrics.zip"
      handler       = "bootstrap"
      runtime       = "go1.x"
      role          = var.repo_collector_role_arn
      ...
    }
    
  3. Integra el m贸dulo de las funciones en el main:

    • A帽ade el m贸dulo compute dentro de tu configuraci贸n principal para asegurar su despliegue junto con otras partes de la infraestructura.
  4. Publica la infraestructura:

    • Inicializa los m贸dulos, planifica su actualizaci贸n y despliegue con Terraform utilizando los comandos habituales: terraform init, terraform plan, y terraform apply.
  5. Verifica y prueba en AWS:

    • Una vez desplegados, aseg煤rate de que tus funciones aparezcan en el panel de Lambda de AWS y realiza pruebas B谩sicas para garantizar su correcto funcionamiento.

Mediante estos pasos, no solo estar谩s creando funciones Lambda eficientes, sino que estar谩s utilizando las mejores pr谩cticas al integrar tu desarrollo con la infraestructura como c贸digo. 隆Mantente motivado y sigue aprendiendo para optimizar tus proyectos!

Aportes 2

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

Comandos: `go install github.com/aws/aws-lambda-go/cmd/build-lambda-zip@latest` Recomendaci贸n: tener instalada la versi贸n estable de Go en mi caso 1.21 y modificar la versi贸n en el archivo de go.mod y guardar cambios Adicionalmente si estas en Windows lo mejor es utilizar una versi贸n desde power shell de WSL para instalar cualquier distribuci贸n de linux
me salia un error al realizar la prueba ``/var/task/bootstrap: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /var/task/bootstrap)`` ``/var/task/bootstrap: /lib64/libc.so.6: version `GLIBC_2.32' not found (required by /var/task/bootstrap)`` tuve que cambiar en el makefile de las lambdas `GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o bootstrap`