SlideShare ist ein Scribd-Unternehmen logo
1 von 41
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Construyendo APIs Seguras y Escalables
Demostración usando Amazon API Gateway y AWS Lambda
Mauricio Muñoz
Enterprise Solutions Architect, LATAM
Abril, 2016
¿Qué vamos a ver en esta sesión?
1. Nuevo modelo de desarrollo: Completamente
gerenciado
2. Declarar APIs con Amazon API Gateway
3. Lógica de la aplicación en AWS Lambda
4. APIs de Login y Registro, utilizando Amazon Cognito
5. Autorización utilizando AWS IAM (STS)
6. Generación de SDK para cliente
Totalmente Gerenciado
API: Modelo Totalmente gerenciado
InternetMobile apps
Funciones
AWS Lambda
AWS
API Gateway
cache
Endpoints en
Amazon EC2
Cualquier otro
endpoint público
Amazon
CloudWatch
Amazon
CloudFront
API
Gateway
API Gateway
Otros
Servicios
AWS
Funciones
AWS Lambda
Puntos Principales
AWS Lambda + Amazon API Gateway =
0 (cero) infraestructura para administrar
Seguridad = Prioridad:
Aproveche la integración con AWS Identity and
Access Management
Swagger + client SDK = Automatización de workflows
Servicios que vamos a utilizar
Amazon API Gateway AWS Lambda Amazon Cognito Amazon DynamoDB
Publica las APIs y
enruta las llamadas
Ejecuta: Lógica de
autenticación y lógica
de la aplicación
Gerencia de
identidades y entrega
credenciales AWS
Almacén de datos:
Usuarios y Mascotas
Arquitectura de la aplicación:
Mascotas
No-Autenticadas
Flujo de las llamadas
Mobile apps
AWS Lambda lambdaHandler
Register (/user-POST)
Login (/login-POST)
API Gateway
Autenticadas
Mobile apps AWS Lambda lambdaHandler
ListPets (/pets – GET)
GetPet (/pets/{petId}-GET
API Gateway
Assume Role
CreatePet (/pets – POST)
Sigv4
Usando las
credenciales AWS
Invoca con las
credenciales AWS Autorizado por IAM
Recibe
credenciales AWS
APIs:
/user
/login
APIs:
/pets
/pets/{petId}
Table: petstoreapp-users
IdentityPool: PetStoreApp
Table:
petstoreapp-pets
¿Qué tiene de diferente este modelo?
“Serverless” – La aplicación puede usar muchos
servidores, pero no necesito administrar ninguno.
Autorización: Realizada por AWS, basada en Roles
Definición e implementación de APIs usando
Swagger
Parte I: APIs – Definición y
Publicación
Amazon API Gateway - Conceptos
Gerenciamiento de
implementaciones –
múltiples versiones y
ambientes (stages)
Definición y
Publicación de APIs
Usa las credenciales de
AWS IAM para el control
de acceso a sus recursos
(Como si fueran servicios
AWS)
Aprovecha los mecanismos
de Autorización de AWS
Gestión de tráfico de
red
Protección DDoS y
“Throttling”
Modelo de API: Recursos, Métodos e Integración
rest-api-id
resou
rce-id
ARN
Recursos y Métodos
• POST – Recibe usuario y
contraseña; registra (crea) el
nuevo usuario en DynamoDB
/users
• POST – Recibe usuario y
contraseña; autentica; solicita
credenciales AWS a cognito y las
retorna a la App
/login
• POST – Recibe los datos de la
mascota;los guarda en DynamoDB
• GET – Retorna una lista de
mascotas desde DynamoDB
/pets
• GET – Retorna la información de la
mascota, a partir de su petID/pets/{petId}
No Autenticado
Autenticado
rest-api-id
resou
rce-id
ARN
Usando Swagger para automatizar el proceso
Method Response
Integration
(Req. & Resp)
Method Request
Method
Usando Swagger para automatizar el proceso
/users:
post:
summary: Registers a new user
consumes:
- application/json
produces:
- application/json
parameters:
- name: NewUser
in: body
schema:
$ref: '#/definitions/User’
x-amazon-apigateway-integration:
type: aws
uri: arn:aws:apigateway:us-east-1:lambda:path/2015-03-31...
credentials: arn:aws:iam::964405213927:role/pet_store_lambda_invoke
...
responses:
200:
schema:
$ref: '#/definitions/RegisterUserResponse'
Usando Swagger para automatizar el proceso
Usando AWS CLIaws apigateway import-rest-api --body file://swagger.yaml
Usando la Consola
Beneficios de usar Swagger
• Las definiciones de las API permanecen en su
repositorio, con el resto del código de la aplicación.
• Pueden ser usadas en conjunto con otras utilidades de
Swagger (por ejemplo, generación de documentación).
• Las APIs pueden ser importadas e implementadas en
su propio script.
Parte II: Ejecución de la lógica de
la aplicación (Back-End)
Escalabilidad y Alto desempeño;
Eficiente y Económica
No hay infraestructura para
administrar
Pague solo por lo que use: Lambda
adecúa automáticamente la
capacidad para responder a los
volúmenes de solicitudes.
Use su propio código
Funciones Lambda : Ejecución de código basada en eventos, Stateless
Ejecute su código en una variedad
de lenguajes estándar. Use threads,
procesos, archivos y shell scripts, de
la forma usual.
Enfóquese en su lógica de negocio.
Cargue su código y AWS Lambda se
encarga del resto.
AWS Lambda - Conceptos
Lambda handler.
lambdaHandler
(en el código
Java)
Acción: Register
Acción: Login
Acción:
Create Pet
Acción:
Get Pet
Gestión de
identidades
Pet store
database
Amazon API
Gateway
Integration request
User
database
Excepciones mapeadas a HTTP Status.
Register action
Login action
Create Pet action
Get Pet action
BadRequestException
BAD_REQUEST +
Stack Trace
InternalErrorException
INTERNAL_ERROR +
Stack Trace
lambdaHandler
(en el código
Java)
Amazon API
Gateway
responses:
"default":
statusCode: "200"
"BAD.*":
statusCode: "400"
"INT.*":
statusCode: "500"
Mapping Template es una herramienta poderosa
Encuentre más acerca de nuestros ”mapping templates”:
http://amzn.to/1L1hSF5
Parte III: Gerenciando identidades
y autorizando accesos
Amazon Cognito - Conceptos
Gestión de usuarios
autenticados e invitados,
entre diferentes
proveedores de identidad
Gestión de Identidad
Sincroniza datos de los
usuarios entre dispositivos
y plataformas, via nube
Sincronización de
datos
Facilita el acceso seguro
a servicios AWS desde
plataformas y
dispositivos móviles
Acceso seguro a
recursos AWS
Definición de las APIs (No Autenticadas)
• POST
• Recibe un usuario y contraseña
• Encripta la contraseña (con salt) y registra la
cuenta del usuario en DynamoDB
• Hace una llamada a Cognito, para registrar
el usuario y generar las credenciales
• Retorna las informaciones de usuario y
credenciales temporales
/users
• POST
• Recibe un usuario y contraseña
• Autentica el usuario (contra la información
en DynamoDB)
• Si la autenticación es exitosa, hace una
llamada a Cognito para generar credenciales
• Retorna las credenciales temporales
/login
Recibiendo las credenciales temporales.
Llamada a la API
login
(sin autenticación)
Cliente API
Gateway
Backend
/login
Login
action
BD
Usuarios
Credenciales OK
Solicita OIDC
Obtiene el token
OpenID
Recibe las
credenciales
AWS para firmar
las llamadas API
Usando el token
OIDC, solicita
credenciales AWS
Genera las
credenciales AWS
Access key +
secret key +
session token
/login
1.
2.
3.
Roles (AuthZ) en Cognito
Autorización de las llamadas API
APIs /pets (necesitan AuthN y AuthZ)
• POST
• Recibe información de la mascota
(nombre, tipo)
• Graba en DynamoDB
• Retorna el petID creado
• GET
• Retorna la lista de mascotas almacenada
en DynamoDB (incluyendo el petID)
/pets
• GET
• Recibe (en el path) el petID
• Usando mapping templates, se pasa el
parámetro petID a la función Lambda
• Busca la información de la mascota en
DynamoDB
• Retorna la información de la mascota
/pets/{petId}
API Gateway protege las llamadas API
rest-api-id
resou
rce-id
ARN
API Gateway repasa las autorizaciones
credentials:
arn:aws:iam::*:user/*
En la consola En el archivo Swagger
El Rol IAM define la autorización
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"dynamodb:GetItem",
"dynamodb:PutItem",
"dynamodb:Scan",
"lambda:InvokeFunction",
"execute-api:invoke"
],
"Resource": [
"arn:aws:dynamodb:us-east-1:xxxxxx:table/test_pets",
"arn:aws:lambda:us-east-1:xxxxx:function:PetStore”,
"arn:aws:execute-api:us-east-1:xxxx:API_ID/*/POST/pets"
]
}
]
}
En este ejemplo, el rol permite
accesos a:
• DynamoDB
• API Gateway
• Lambda
Y permite definir acceso
solamente a recursos
específicos en esos servicios
Y todavía hay más: Fine-grained access permissions
Internet
Cliente
API
Gateway
Funciones
AWS Lambda
Amazon
CloudFront
DynamoDB
CognitoId2
…
"Condition": {
"ForAllValues:StringEquals": {
"dynamodb:LeadingKeys": [”${cognito-
identity.amazonaws.com:sub}"],
"dynamodb:Attributes": [
"UserId","GameTitle","Wins","Losses",
"TopScore","TopScoreDateTime”
]
},
"StringEqualsIfExists": {
"dynamodb:Select": "SPECIFIC_ATTRIBUTES”
}
}
…
Ejecuta con el
rol definido
UserID Wins Losses
cognitoId1 3 2
cognitoId2 5 8
cognitoId3 2 3
Informaciones de contexto (Cognito ID) son repasadas …
Con eso, AWS Lambda & DynamoDB seguirán coherentemente la política de acceso
Flujo autenticado completo
Mobile apps AWS Lambda lambdaHandler
API Gateway
Sigv4
Usa los mismos
permisos de las
credenciales de
usuario
Llamadas a los
servicios son
autorizadas
usando un rol
IAM
Documentación acerca de FGAC:
http://amzn.to/1YkxcjR
DynamoDB
Beneficios de usar AWS IAM (AuthN & AuthZ)
• Separación de funciones – la estrategia de
autorización se delega a un servicio dedicado
• Gestión centralizada de acceso, a través de un
conjunto único de políticas
• Credenciales y Roles pueden ser modificadas o
deshabilitadas con una llamada API
Parte IV: Manejo de credenciales
AWS en el cliente
Generación de SDK desde la consola (1-click)
rest-api-id
El SDK de cliente declara todos los métodos
AWSCredentialsProvider.
Implementación de AWSCredentialsProvider
El método refresh() es llamado cuando el cliente necesite nuevas credenciales
Beneficios del SDK generado
El SDK de cliente contiene la lógica para:
• Firmar las llamadas API usando sigv4
• Manejar respuestas reguladas (throttled)
• Marshal/unmarshal solicitudes y respuestas en objetos
AWS Lambda + Amazon API Gateway =
0 (cero) infraestructura para administrar
Seguridad = Prioridad:
Aproveche la integración con AWS Identity and
Access Management
Swagger + client SDK = Automatización de workflows
¿Qué vimos hoy?
Este ejemplo está disponible en la cuenta GitHub AWSLabs
https://github.com/awslabs/api-gateway-secure-pet-store
¡Gracias !
Este ejemplo está disponible en la cuenta GitHub AWSLabs
https://github.com/awslabs/api-gateway-secure-pet-store

Weitere ähnliche Inhalte

Was ist angesagt?

REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUDPrem Sanil
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3 ArezooKmn
 
Running Microservices on Amazon ECS - AWS April 2016 Webinar Series
Running Microservices on Amazon ECS - AWS April 2016 Webinar SeriesRunning Microservices on Amazon ECS - AWS April 2016 Webinar Series
Running Microservices on Amazon ECS - AWS April 2016 Webinar SeriesAmazon Web Services
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?VMware Tanzu Korea
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...Edureka!
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20Amazon Web Services Korea
 
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
Elastic  Load Balancing Deep Dive - AWS Online Tech TalkElastic  Load Balancing Deep Dive - AWS Online Tech Talk
Elastic Load Balancing Deep Dive - AWS Online Tech TalkAmazon Web Services
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache CamelChristian Posta
 
Hexagonal architecture with Spring Boot
Hexagonal architecture with Spring BootHexagonal architecture with Spring Boot
Hexagonal architecture with Spring BootMikalai Alimenkou
 
Building Serverless Backends with AWS Lambda and Amazon API Gateway
Building Serverless Backends with AWS Lambda and Amazon API GatewayBuilding Serverless Backends with AWS Lambda and Amazon API Gateway
Building Serverless Backends with AWS Lambda and Amazon API GatewayAmazon Web Services
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...Jérôme Petazzoni
 
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...Simplilearn
 

Was ist angesagt? (20)

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
REST API and CRUD
REST API and CRUDREST API and CRUD
REST API and CRUD
 
introduction to Vue.js 3
introduction to Vue.js 3 introduction to Vue.js 3
introduction to Vue.js 3
 
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
 
Running Microservices on Amazon ECS - AWS April 2016 Webinar Series
Running Microservices on Amazon ECS - AWS April 2016 Webinar SeriesRunning Microservices on Amazon ECS - AWS April 2016 Webinar Series
Running Microservices on Amazon ECS - AWS April 2016 Webinar Series
 
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
MSA 전략 1: 마이크로서비스, 어떻게 디자인 할 것인가?
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
What Is DevOps? | Introduction To DevOps | DevOps Tools | DevOps Tutorial | D...
 
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
AWS 기반의 마이크로 서비스 아키텍쳐 구현 방안 :: 김필중 :: AWS Summit Seoul 20
 
Container Patterns
Container PatternsContainer Patterns
Container Patterns
 
Dvm
DvmDvm
Dvm
 
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
Elastic  Load Balancing Deep Dive - AWS Online Tech TalkElastic  Load Balancing Deep Dive - AWS Online Tech Talk
Elastic Load Balancing Deep Dive - AWS Online Tech Talk
 
Integrating Microservices with Apache Camel
Integrating Microservices with Apache CamelIntegrating Microservices with Apache Camel
Integrating Microservices with Apache Camel
 
Tomcat server
 Tomcat server Tomcat server
Tomcat server
 
Hexagonal architecture with Spring Boot
Hexagonal architecture with Spring BootHexagonal architecture with Spring Boot
Hexagonal architecture with Spring Boot
 
Building Serverless Backends with AWS Lambda and Amazon API Gateway
Building Serverless Backends with AWS Lambda and Amazon API GatewayBuilding Serverless Backends with AWS Lambda and Amazon API Gateway
Building Serverless Backends with AWS Lambda and Amazon API Gateway
 
From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...From development environments to production deployments with Docker, Compose,...
From development environments to production deployments with Docker, Compose,...
 
Android MVVM
Android MVVMAndroid MVVM
Android MVVM
 
Amazon SQS overview
Amazon SQS overviewAmazon SQS overview
Amazon SQS overview
 
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
How To Become A DevOps Engineer | Who Is A DevOps Engineer? | DevOps Engineer...
 

Andere mochten auch

Servicios de Bases de Datos administradas en AWS
Servicios de Bases de Datos administradas en AWS Servicios de Bases de Datos administradas en AWS
Servicios de Bases de Datos administradas en AWS Amazon Web Services LATAM
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSAmazon Web Services LATAM
 
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...Amazon Web Services
 
Sobre Blogger
Sobre BloggerSobre Blogger
Sobre Bloggerirismay
 
Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...
Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...
Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...Anibal Emiliano
 
Hofstede pdi 2012 ucv
Hofstede pdi 2012 ucvHofstede pdi 2012 ucv
Hofstede pdi 2012 ucvknalesgroup
 
Poncho en forma de hojas
Poncho en forma de hojasPoncho en forma de hojas
Poncho en forma de hojasjennyct
 
Brief seminario internacional cierre de ventas octubre 2014
Brief seminario internacional cierre de ventas octubre 2014Brief seminario internacional cierre de ventas octubre 2014
Brief seminario internacional cierre de ventas octubre 2014Liderazgo Eventos
 
Taller de toxicomanìas
Taller de toxicomanìasTaller de toxicomanìas
Taller de toxicomanìasql1973
 
Seminario taller internacional servicio al cliente 2015
Seminario taller internacional servicio al cliente 2015Seminario taller internacional servicio al cliente 2015
Seminario taller internacional servicio al cliente 2015Liderazgo Eventos
 

Andere mochten auch (20)

Servicios de Bases de Datos administradas en AWS
Servicios de Bases de Datos administradas en AWS Servicios de Bases de Datos administradas en AWS
Servicios de Bases de Datos administradas en AWS
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWS
 
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
Securing Serverless Workloads with Cognito and API Gateway Part I - AWS Secur...
 
Ppt feria
Ppt feriaPpt feria
Ppt feria
 
Brief tcp febrero 2015
Brief tcp febrero 2015Brief tcp febrero 2015
Brief tcp febrero 2015
 
Sobre Blogger
Sobre BloggerSobre Blogger
Sobre Blogger
 
Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...
Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...
Desarrollo de capacidades de actuación en los estudiantes del i, ii y iii bac...
 
Ingreso Alumnos Padres 2013
Ingreso Alumnos Padres 2013 Ingreso Alumnos Padres 2013
Ingreso Alumnos Padres 2013
 
Hofstede pdi 2012 ucv
Hofstede pdi 2012 ucvHofstede pdi 2012 ucv
Hofstede pdi 2012 ucv
 
Poncho en forma de hojas
Poncho en forma de hojasPoncho en forma de hojas
Poncho en forma de hojas
 
Brief seminario internacional cierre de ventas octubre 2014
Brief seminario internacional cierre de ventas octubre 2014Brief seminario internacional cierre de ventas octubre 2014
Brief seminario internacional cierre de ventas octubre 2014
 
[T.A.V.] Las aventuras del hombre caja
[T.A.V.] Las aventuras del hombre caja[T.A.V.] Las aventuras del hombre caja
[T.A.V.] Las aventuras del hombre caja
 
Matenuevo
MatenuevoMatenuevo
Matenuevo
 
Taller de toxicomanìas
Taller de toxicomanìasTaller de toxicomanìas
Taller de toxicomanìas
 
Indicadores prod2
Indicadores prod2Indicadores prod2
Indicadores prod2
 
Seminario taller internacional servicio al cliente 2015
Seminario taller internacional servicio al cliente 2015Seminario taller internacional servicio al cliente 2015
Seminario taller internacional servicio al cliente 2015
 
Tp 3 seg
Tp 3 segTp 3 seg
Tp 3 seg
 
Manual NTV Tablet
Manual NTV TabletManual NTV Tablet
Manual NTV Tablet
 
Profesores 3
Profesores 3Profesores 3
Profesores 3
 
Entc
EntcEntc
Entc
 

Ähnlich wie Construyendo APIs Seguras y Escalables

Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSAmazon Web Services LATAM
 
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...Amazon Web Services LATAM
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSAmazon Web Services LATAM
 
AWS para desarrolladores
AWS para desarrolladoresAWS para desarrolladores
AWS para desarrolladoresRaul Hugo
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"www.encamina.com
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHAlejandro Esquiva Rodriguez
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerCloudAppi
 
Asegurando los datos de sus clientes desde el Día 1
Asegurando los datos de sus clientes desde el Día 1Asegurando los datos de sus clientes desde el Día 1
Asegurando los datos de sus clientes desde el Día 1Amazon Web Services LATAM
 
04 17-2021 - procesando modelos tabulares global azure latam
04 17-2021 - procesando modelos tabulares global azure latam04 17-2021 - procesando modelos tabulares global azure latam
04 17-2021 - procesando modelos tabulares global azure latamGaston Cruz
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSAmazon Web Services LATAM
 
OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)marcwan
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAbimael Desales López
 
Neo Humano - GTUG Labs (12-12-2009)
Neo Humano - GTUG Labs (12-12-2009)Neo Humano - GTUG Labs (12-12-2009)
Neo Humano - GTUG Labs (12-12-2009)Neo Humano
 
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...Amazon Web Services LATAM
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Miguel Ángel Sánchez Chordi
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera apiCloudAppi
 

Ähnlich wie Construyendo APIs Seguras y Escalables (20)

Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
Construya APIs seguras y escalables
Construya APIs seguras y escalables Construya APIs seguras y escalables
Construya APIs seguras y escalables
 
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
AWS Summits América Latina 2015-Mejores Prácticas de Seguridad para IAM (Iden...
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
AWS para desarrolladores
AWS para desarrolladoresAWS para desarrolladores
AWS para desarrolladores
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
Seguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developerSeguridad en las apis desde un punto de vista de developer
Seguridad en las apis desde un punto de vista de developer
 
RAML
RAMLRAML
RAML
 
Asegurando los datos de sus clientes desde el Día 1
Asegurando los datos de sus clientes desde el Día 1Asegurando los datos de sus clientes desde el Día 1
Asegurando los datos de sus clientes desde el Día 1
 
Inicie un viaje seguro a la nube
Inicie un viaje seguro a la nubeInicie un viaje seguro a la nube
Inicie un viaje seguro a la nube
 
04 17-2021 - procesando modelos tabulares global azure latam
04 17-2021 - procesando modelos tabulares global azure latam04 17-2021 - procesando modelos tabulares global azure latam
04 17-2021 - procesando modelos tabulares global azure latam
 
Comenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWSComenzando con los servicios móviles en AWS
Comenzando con los servicios móviles en AWS
 
OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)OAuth 2.0 (Spanish)
OAuth 2.0 (Spanish)
 
Aprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDBAprendiendo AWS Lambda con API Gateway y DynamoDB
Aprendiendo AWS Lambda con API Gateway y DynamoDB
 
Neo Humano - GTUG Labs (12-12-2009)
Neo Humano - GTUG Labs (12-12-2009)Neo Humano - GTUG Labs (12-12-2009)
Neo Humano - GTUG Labs (12-12-2009)
 
Servicios web
Servicios webServicios web
Servicios web
 
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
Mejores prácticas y las difíciles lecciones aprendidas con las aplicaciones S...
 
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
Qué es eso de OAuth y como se implementa en Symfony2 (y otros)
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
 

Mehr von Amazon Web Services LATAM

AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAmazon Web Services LATAM
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.Amazon Web Services LATAM
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAmazon Web Services LATAM
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSAmazon Web Services LATAM
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSAmazon Web Services LATAM
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAmazon Web Services LATAM
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAmazon Web Services LATAM
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosAmazon Web Services LATAM
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSAmazon Web Services LATAM
 

Mehr von Amazon Web Services LATAM (20)

AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Ransomware: Estratégias de Mitigación
Ransomware: Estratégias de MitigaciónRansomware: Estratégias de Mitigación
Ransomware: Estratégias de Mitigación
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWS
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administrados
 
Simplifique su BI con AWS
Simplifique su BI con AWSSimplifique su BI con AWS
Simplifique su BI con AWS
 
Simplifique o seu BI com a AWS
Simplifique o seu BI com a AWSSimplifique o seu BI com a AWS
Simplifique o seu BI com a AWS
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS
 

Kürzlich hochgeladen

Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 

Kürzlich hochgeladen (20)

Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 

Construyendo APIs Seguras y Escalables

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Construyendo APIs Seguras y Escalables Demostración usando Amazon API Gateway y AWS Lambda Mauricio Muñoz Enterprise Solutions Architect, LATAM Abril, 2016
  • 2. ¿Qué vamos a ver en esta sesión? 1. Nuevo modelo de desarrollo: Completamente gerenciado 2. Declarar APIs con Amazon API Gateway 3. Lógica de la aplicación en AWS Lambda 4. APIs de Login y Registro, utilizando Amazon Cognito 5. Autorización utilizando AWS IAM (STS) 6. Generación de SDK para cliente
  • 3. Totalmente Gerenciado API: Modelo Totalmente gerenciado InternetMobile apps Funciones AWS Lambda AWS API Gateway cache Endpoints en Amazon EC2 Cualquier otro endpoint público Amazon CloudWatch Amazon CloudFront API Gateway API Gateway Otros Servicios AWS Funciones AWS Lambda
  • 4. Puntos Principales AWS Lambda + Amazon API Gateway = 0 (cero) infraestructura para administrar Seguridad = Prioridad: Aproveche la integración con AWS Identity and Access Management Swagger + client SDK = Automatización de workflows
  • 5. Servicios que vamos a utilizar Amazon API Gateway AWS Lambda Amazon Cognito Amazon DynamoDB Publica las APIs y enruta las llamadas Ejecuta: Lógica de autenticación y lógica de la aplicación Gerencia de identidades y entrega credenciales AWS Almacén de datos: Usuarios y Mascotas
  • 6. Arquitectura de la aplicación: Mascotas
  • 7. No-Autenticadas Flujo de las llamadas Mobile apps AWS Lambda lambdaHandler Register (/user-POST) Login (/login-POST) API Gateway Autenticadas Mobile apps AWS Lambda lambdaHandler ListPets (/pets – GET) GetPet (/pets/{petId}-GET API Gateway Assume Role CreatePet (/pets – POST) Sigv4 Usando las credenciales AWS Invoca con las credenciales AWS Autorizado por IAM Recibe credenciales AWS APIs: /user /login APIs: /pets /pets/{petId} Table: petstoreapp-users IdentityPool: PetStoreApp Table: petstoreapp-pets
  • 8. ¿Qué tiene de diferente este modelo? “Serverless” – La aplicación puede usar muchos servidores, pero no necesito administrar ninguno. Autorización: Realizada por AWS, basada en Roles Definición e implementación de APIs usando Swagger
  • 9. Parte I: APIs – Definición y Publicación
  • 10. Amazon API Gateway - Conceptos Gerenciamiento de implementaciones – múltiples versiones y ambientes (stages) Definición y Publicación de APIs Usa las credenciales de AWS IAM para el control de acceso a sus recursos (Como si fueran servicios AWS) Aprovecha los mecanismos de Autorización de AWS Gestión de tráfico de red Protección DDoS y “Throttling”
  • 11. Modelo de API: Recursos, Métodos e Integración rest-api-id resou rce-id ARN
  • 12. Recursos y Métodos • POST – Recibe usuario y contraseña; registra (crea) el nuevo usuario en DynamoDB /users • POST – Recibe usuario y contraseña; autentica; solicita credenciales AWS a cognito y las retorna a la App /login • POST – Recibe los datos de la mascota;los guarda en DynamoDB • GET – Retorna una lista de mascotas desde DynamoDB /pets • GET – Retorna la información de la mascota, a partir de su petID/pets/{petId} No Autenticado Autenticado
  • 14. Method Response Integration (Req. & Resp) Method Request Method Usando Swagger para automatizar el proceso /users: post: summary: Registers a new user consumes: - application/json produces: - application/json parameters: - name: NewUser in: body schema: $ref: '#/definitions/User’ x-amazon-apigateway-integration: type: aws uri: arn:aws:apigateway:us-east-1:lambda:path/2015-03-31... credentials: arn:aws:iam::964405213927:role/pet_store_lambda_invoke ... responses: 200: schema: $ref: '#/definitions/RegisterUserResponse'
  • 15. Usando Swagger para automatizar el proceso Usando AWS CLIaws apigateway import-rest-api --body file://swagger.yaml Usando la Consola
  • 16. Beneficios de usar Swagger • Las definiciones de las API permanecen en su repositorio, con el resto del código de la aplicación. • Pueden ser usadas en conjunto con otras utilidades de Swagger (por ejemplo, generación de documentación). • Las APIs pueden ser importadas e implementadas en su propio script.
  • 17. Parte II: Ejecución de la lógica de la aplicación (Back-End)
  • 18. Escalabilidad y Alto desempeño; Eficiente y Económica No hay infraestructura para administrar Pague solo por lo que use: Lambda adecúa automáticamente la capacidad para responder a los volúmenes de solicitudes. Use su propio código Funciones Lambda : Ejecución de código basada en eventos, Stateless Ejecute su código en una variedad de lenguajes estándar. Use threads, procesos, archivos y shell scripts, de la forma usual. Enfóquese en su lógica de negocio. Cargue su código y AWS Lambda se encarga del resto. AWS Lambda - Conceptos
  • 19. Lambda handler. lambdaHandler (en el código Java) Acción: Register Acción: Login Acción: Create Pet Acción: Get Pet Gestión de identidades Pet store database Amazon API Gateway Integration request User database
  • 20. Excepciones mapeadas a HTTP Status. Register action Login action Create Pet action Get Pet action BadRequestException BAD_REQUEST + Stack Trace InternalErrorException INTERNAL_ERROR + Stack Trace lambdaHandler (en el código Java) Amazon API Gateway responses: "default": statusCode: "200" "BAD.*": statusCode: "400" "INT.*": statusCode: "500"
  • 21. Mapping Template es una herramienta poderosa Encuentre más acerca de nuestros ”mapping templates”: http://amzn.to/1L1hSF5
  • 22. Parte III: Gerenciando identidades y autorizando accesos
  • 23. Amazon Cognito - Conceptos Gestión de usuarios autenticados e invitados, entre diferentes proveedores de identidad Gestión de Identidad Sincroniza datos de los usuarios entre dispositivos y plataformas, via nube Sincronización de datos Facilita el acceso seguro a servicios AWS desde plataformas y dispositivos móviles Acceso seguro a recursos AWS
  • 24. Definición de las APIs (No Autenticadas) • POST • Recibe un usuario y contraseña • Encripta la contraseña (con salt) y registra la cuenta del usuario en DynamoDB • Hace una llamada a Cognito, para registrar el usuario y generar las credenciales • Retorna las informaciones de usuario y credenciales temporales /users • POST • Recibe un usuario y contraseña • Autentica el usuario (contra la información en DynamoDB) • Si la autenticación es exitosa, hace una llamada a Cognito para generar credenciales • Retorna las credenciales temporales /login
  • 25. Recibiendo las credenciales temporales. Llamada a la API login (sin autenticación) Cliente API Gateway Backend /login Login action BD Usuarios Credenciales OK Solicita OIDC Obtiene el token OpenID Recibe las credenciales AWS para firmar las llamadas API Usando el token OIDC, solicita credenciales AWS Genera las credenciales AWS Access key + secret key + session token /login 1. 2. 3.
  • 26. Roles (AuthZ) en Cognito
  • 27. Autorización de las llamadas API
  • 28. APIs /pets (necesitan AuthN y AuthZ) • POST • Recibe información de la mascota (nombre, tipo) • Graba en DynamoDB • Retorna el petID creado • GET • Retorna la lista de mascotas almacenada en DynamoDB (incluyendo el petID) /pets • GET • Recibe (en el path) el petID • Usando mapping templates, se pasa el parámetro petID a la función Lambda • Busca la información de la mascota en DynamoDB • Retorna la información de la mascota /pets/{petId}
  • 29. API Gateway protege las llamadas API rest-api-id resou rce-id ARN
  • 30. API Gateway repasa las autorizaciones credentials: arn:aws:iam::*:user/* En la consola En el archivo Swagger
  • 31. El Rol IAM define la autorización { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Scan", "lambda:InvokeFunction", "execute-api:invoke" ], "Resource": [ "arn:aws:dynamodb:us-east-1:xxxxxx:table/test_pets", "arn:aws:lambda:us-east-1:xxxxx:function:PetStore”, "arn:aws:execute-api:us-east-1:xxxx:API_ID/*/POST/pets" ] } ] } En este ejemplo, el rol permite accesos a: • DynamoDB • API Gateway • Lambda Y permite definir acceso solamente a recursos específicos en esos servicios
  • 32. Y todavía hay más: Fine-grained access permissions Internet Cliente API Gateway Funciones AWS Lambda Amazon CloudFront DynamoDB CognitoId2 … "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": [”${cognito- identity.amazonaws.com:sub}"], "dynamodb:Attributes": [ "UserId","GameTitle","Wins","Losses", "TopScore","TopScoreDateTime” ] }, "StringEqualsIfExists": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES” } } … Ejecuta con el rol definido UserID Wins Losses cognitoId1 3 2 cognitoId2 5 8 cognitoId3 2 3 Informaciones de contexto (Cognito ID) son repasadas … Con eso, AWS Lambda & DynamoDB seguirán coherentemente la política de acceso
  • 33. Flujo autenticado completo Mobile apps AWS Lambda lambdaHandler API Gateway Sigv4 Usa los mismos permisos de las credenciales de usuario Llamadas a los servicios son autorizadas usando un rol IAM Documentación acerca de FGAC: http://amzn.to/1YkxcjR DynamoDB
  • 34. Beneficios de usar AWS IAM (AuthN & AuthZ) • Separación de funciones – la estrategia de autorización se delega a un servicio dedicado • Gestión centralizada de acceso, a través de un conjunto único de políticas • Credenciales y Roles pueden ser modificadas o deshabilitadas con una llamada API
  • 35. Parte IV: Manejo de credenciales AWS en el cliente
  • 36. Generación de SDK desde la consola (1-click) rest-api-id
  • 37. El SDK de cliente declara todos los métodos
  • 38. AWSCredentialsProvider. Implementación de AWSCredentialsProvider El método refresh() es llamado cuando el cliente necesite nuevas credenciales
  • 39. Beneficios del SDK generado El SDK de cliente contiene la lógica para: • Firmar las llamadas API usando sigv4 • Manejar respuestas reguladas (throttled) • Marshal/unmarshal solicitudes y respuestas en objetos
  • 40. AWS Lambda + Amazon API Gateway = 0 (cero) infraestructura para administrar Seguridad = Prioridad: Aproveche la integración con AWS Identity and Access Management Swagger + client SDK = Automatización de workflows ¿Qué vimos hoy? Este ejemplo está disponible en la cuenta GitHub AWSLabs https://github.com/awslabs/api-gateway-secure-pet-store
  • 41. ¡Gracias ! Este ejemplo está disponible en la cuenta GitHub AWSLabs https://github.com/awslabs/api-gateway-secure-pet-store

Hinweis der Redaktion

  1. ¿ ¡
  2. A new, fully-managed development model : Model where AWS takes care of the infrastructure. And, how the Amazon API Gateway integrates with other services: Declare an API with Amazon API Gateway Application logic in AWS Lambda Register and login API with Amazon Cognito Authorization with AWS IAM Generate and connect the Client SDK
  3. The first thing we want to look at is the standard flow of an API call, including all components in the system First, a request comes in from a client, this could be a mobile device, a web application or a backend service The requests arrives at one of our CloudFront PoP locations, it’s accepted and routed through to the API Gateway in the customer’s region The API Gateway receives the request, then checks for records in the dedicated cache (if it is configured). If there are no cached records available then it will forward the request to the backend for processing The backend can be a Lambda function, a web service running on Amazon EC2, or any other publicly accessible web service Once the backend has processed the request the API call metrics are logged in Amazon CloudWatch and the content is returned to the client
  4. First understand what has driven the decision to build API Gateway, from customer feedback to wider strategic decisions and market forces Next, look at how the service works, and helps customers with their API services Finally, open it out for Q&A at the end Key Takeaways AWS Lambda + Amazon API Gateway means no infrastructure to manage – we scale for you Security is important, and complex – make the most of AWS Identity and Access Management. Security is a priority, take advantage of Authentication (Cognito) and Authorization (IAM) integration with API Gateway. Swagger import and client SDK – we can automate most workflows
  5. API Gateway: Host the API and route API calls AWS Lambda: Execute our app’s business logic Amazon Cognito: Generate temporary AWS credentials Amazon DynamoDB: Data store
  6. It is not serverless, it is just that the application can use lots of servers, and I don’t need to manage a single one. Authorization of API calls is delegated to AWS. We just need to focus on our IAM roles. Deployment of the API is automated using Swagger.
  7. API definition and Swagger
  8. API Gateway offers an “abstraction” of API or Backend logic. Interface for developers (like a FrontEnd). You can keep the FrontEnd while doing modifications/improvements to the backend logic. Define and host APIs: Manage deployments to multiple versions and environments Manage network traffic: We have learnt a lot about manage network traffic throughout the years. DDoS protection and request throttling to safeguard your back end. (Layer 7/App (Scaling) and Layer 3 (syn flood)) Leverage AWS Auth: Leverage Identity and Access Management to authorize access to your cloud resources. Convert your API as if it were an AWS Service!!!! (every API method receives an ARN)
  9. Left side: Public-side vs Right side: Integration with backend.
  10. Demo 0: Show the User App Start with the reset app, to create a new user Then: login and Get pets) Show the Cloudwatch logs, showing the /login and the /pets calls Show the tables in DynamoDB
  11. Left side: Public-side vs Right side: Integration with backend. API Gateway handles resources as typed objects. Resources can have models associated with them. Models are simply the JSON schema representation of the request and response data models If the API Gateway is aware of the request and response models it can Generate SDKs that include actual objects for each request and response rather than generic (JSON Object) Allow JSON traversal of requests and responses in the data transformation engine
  12. aws apigateway import-rest-api --body file://swagger.yaml Map the API definition with the swagger file. Show the swagger.yaml file. - Show the credentials for auth and no-auth calls. - Swagger normally defines only the user-facing details of an API - We have extended it to also specify how the API processes a request and interacts with the backend A single file allows you to create the entire API http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-swagger-extensions.html x-amazon-apigateway-auth Object x-amazon-apigateway-authorizer Object x-amazon-apigateway-authtype Property x-amazon-apigateway-integration Object x-amazon-apigateway-integration.requestTemplates Object x-amazon-apigateway-integration.requestParameters Object x-amazon-apigateway-integration.responses Object x-amazon-apigateway-integration.response Object x-amazon-apigateway-integration.responseTemplates Object x-amazon-apigateway-integration.responseParameters Object
  13. aws apigateway import-rest-api --body file://swagger.yaml
  14. We recommend to use some definition file (like Swagger), so you can ”own” the definition (create, document, version, etc) and the API Gateway is just the tool to implement the API. API definitions live in our source repository with the rest of the app. They can be used with other utilities in the Swagger toolset (for example, documentation generation). API can be imported and deployed in our build script.
  15. Request routing and exceptions
  16. No Infrastructure to manage: Focus on business logic, not infrastructure. You upload code; AWS Lambda handles everything else. High performance at any scale; Cost-effective and efficient: Pay only for what you use: Lambda automatically matches capacity to your request rate. Purchase compute in 100ms increments. Bring Your Own Code: Run code in a choice of standard languages. Use threads, processes, files, and shell scripts normally.
  17. Show the transformation in the APIGW console Show the Java Code (lambdaHandler) – RequestRouter.java Show the actions code Demo 2: Start the App. List the pets Show DynamoDB, CloudWatch Demo 3: Create a new pet Show DynamoDB, CloudWatch
  18. Demo 4: Login with an existing user, using CURL Show CloudWatch Demo 5: Login with a non-existing user, using CURL Notice the message and the status code: 400 Show CloudWatch Show the code: RequestRouter.java (line 48) LoginDemoAction.java (line 75) exception/BadRequestException.java (line 20) configuration/ExceptionMessages.java (line 19) Show API Gateway (mapping integration response)
  19. Mapping templates are a powerful tool Talk about variables ($input (json path, body, json, params), $context, $util (encode, decode, parsing, escape), $stageVariables) Allows natively to use Apache Velocity Template Language (VTL) – use $util and $input.path to obtain an object representation (to use VTL on top of). http://amzn.to/1L1hSF5 http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html
  20. Cognito: Identity Management Service (not an authentication service) Identity management: Manage authenticated and guest users across identity providers (by assigning a unique identifier for each identity) Secure AWS access: Securely access AWS services from mobile devices and platforms Data synchronization: Synchronize users’ data across devices and platforms via the cloud
  21. Demo 1: Create a user using CURL Show Cognito, DynamoDB, CloudWatch
  22. We’ll go through a use case that leverage AWS Lambda and Amazon Cognito to retrieve temporary credentials for a particular end user and authorize access to the APIs As discussed before the API Gateway helps customers leverage AWS Sigv4 – only one open API is required and then we can verify signatures on all other calls. Show the code for LoginDemoAction.java - Explain UserIdentity and UserCredentials objects (lines 85 and 86) - Look at the code in provider/CognitoCredentialsProvider (UserIdentity in line 103 and UserCredentials in line 61) Demo 4. Login with an existing user (via CURL)
  23. Demo 2: Open the App in the simulator (to do a query on the whole pet list) Show CloudWatch logs. Demo 2a: Inside the App, look for the info on one of the pets Show CloudWatch logs
  24. We’ll go through a use case that leverage AWS Lambda and Amazon Cognito to retrieve temporary credentials for a particular end user and authorize access to the APIs As discussed before the API Gateway helps customers leverage AWS Sigv4 – only one open API is required and then we can verify signatures on all other calls.
  25. We’ll go through a use case that leverage AWS Lambda and Amazon Cognito to retrieve temporary credentials for a particular end user and authorize access to the APIs As discussed before the API Gateway helps customers leverage AWS Sigv4 – only one open API is required and then we can verify signatures on all other calls. See: http://docs.aws.amazon.com/cognito/latest/developerguide/iam-roles.html Not-related sample of a FGAC policy (just to compare): { "Version": "2012-10-17", "Statement": [ { "Sid": "Stmt1461416614573", "Action": [ "dynamodb:DeleteItem" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "dynamodb:LeadingKeys": "pet123” } } } ] }
  26. http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/FGAC_DDB.html
  27. API Gateway can generate client SDKs based on a customer’s API definition. Simply select the deployment the SDK should target, the platform, and setup a couple of parameters and the API Gateway generates an SDK and makes it available to download through an API or the management console SDK are model-aware and also come with the built-in AWS core that allows them to handle throttling responses and sign requests using AWS Credentials
  28. Show APIGSessionCredentialsProvider.m (line 58) Developer just needs to provide username + password, and the method will return the credentials The method lazily load the credentials (the SDK just call the method when there is no valid stored credentials) Show the code: AppDelegate.m (line 78)
  29. The generated client SDK knows how to: Sign API calls using AWS signature version 4 Handle-throttled responses with exponential back-off Marshal and unmarshal requests and responses to model objects
  30. First understand what has driven the decision to build API Gateway, from customer feedback to wider strategic decisions and market forces Next, look at how the service works, and helps customers with their API services Finally, open it out for Q&A at the end Key Takeaways AWS Lambda + Amazon API Gateway means no infrastructure to manage – we scale for you Security is important, and complex – make the most of AWS Identity and Access Management. Security is a priority, take advantage of Authentication (Cognito) and Authorization (IAM) integration with API Gateway. Swagger import and client SDK – we can automate most workflows