Importancia de la Infraestructura como c贸digo

1

Paso a paso para infraestructura c贸mo c贸digo

2

C贸mo desplegar infraestructura en Cloud

3

Herramientas para desplegar infraestructura como c贸digo

4

Introducci贸n y ventajas de usar Cloudformation

5

Laboratorio # 1: explorando la consola de Cloudformation

Funcionalidades y caracter铆sticas en Cloudformation

6

Anatom铆a de un template en Cloudformation

7

Clase pr谩ctica creaci贸n de un template

8

Despliegue del template en Cloudformation

9

Caracterist铆cas finales del template en Cloudformation

10

Stacks: caracter铆sticas y despliegue

11

Bonus: ejemplo de stack

12

Stack Sets: despliegues multicuenta

13

Laboratorio # 2: desplegando un Stack Set en un esquema multi-cuenta

14

Nested Stacks: composici贸n y ejemplos

15

Laboratorio # 3: creaci贸n de recursos del Stack

16

Laboratorio #3: pruebas de funcionamiento del stack

17

Laboratorio # 4: crear nuestro primer Nested Stack

18

Laboratorio #4: pruebas de funcionamiento del Nested Stack

19

Laboratorio # 5: c贸mo crear un stack de forma gr谩fica con Designer

Funciones en Cloudformation

20

Funciones intr铆nsecas: GetAtt, FindInMap, Join, Split y Select

21

Funciones intr铆nsecas: Sub, Ref y ImportValue.

22

Funciones condicionales: If, Not, And y Equals

Automatizaci贸n y despliegues de infraestructura como c贸digo

23

Importancia de la automatizaci贸n de infraestructura

24

C贸mo automatizar despliegues de infraestructura

25

Creaci贸n de pipelines para despliegue de infraestructura

26

Laboratorio #6: Estructura de repositorio para despliegue de funci贸n lambda

27

Laboratorio #6: prerequisitos para creaci贸n del pipeline

28

Laboratorio #6: despliegue de pre requisitos

29

Laboratorio #6: creaci贸n del pipeline para el despliegue de una funci贸n lambda

30

Laboratorio #6: verificaci贸n de recursos creados en el pipeline

Diagnostico de errores y seguridad en infraestructura como c贸digo.

31

Seguridad en templates

32

Troubleshooting

33

Seguridad en despliegues

34

Laboratorio # 7: identificaci贸n de errores en despliegues

Funciones lambda en Cloudformation

35

C贸mo desplegar lambda como funci贸n

36

C贸mo desplegar lambda como funci贸n serverless

37

Laboratorio # 8: puesta en producci贸n de nuestra funci贸n lambda

Conclusiones

38

Conclusiones finales

Curso de Infraestructura Como C贸digo en AWS

Curso de Infraestructura Como C贸digo en AWS

Carlos Andr茅s Zambrano Barrera

Carlos Andr茅s Zambrano Barrera

Seguridad en despliegues

33/38

Lectura

Creando infraestructura como c贸digo en AWS a trav茅s de Cloudformation es una buena pr谩ctica para cualquier tipo de proyecto, sin embargo debemos tener en cuenta diferentes aspectos que nos permitir谩n asegurar todo el proceso de despliegue de recursos y servicios.

Secrets Manager
Link: https://docs.aws.amazon.com/es_es/secretsmanager/latest/userguide/intro.html

AWS Secrets Manager es un servicio de AWS que permite administrar secretos y su ciclo de vida dentro de AWS. Pueden ser de diferentes tipos, puede controlarlos, rotarlos y cifrarlos.

Como vemos en la imagen podemos almacenar 4 tipos de secretos que se integran directamente con servicios de AWS como:
1- RDS 鈫 Bases de datos relacionales (puedes ver m谩s en nuestro curso de bases de datos en AWS).
2- **Redshift Cluster **鈫 Servicio de Datalake en AWS(puedes ver m谩s en nuestro curso de BigData en AWS)
3- DocumentDB 鈫 Base de datos de documentos (parecida a Mongo DB).
4- Otras bases de datos.

Por 煤ltimo se puede guardar otro tipo de secreto.

Store a new secret .png

Para cifrar tokens de github o informaci贸n importante en nuestros templates de cloudformation utilizaremos la opci贸n 鈥淥ther type of secrets鈥, adicionalmente debemos seleccionar la llave KMS con la que ciframos el secreto.

EJEMPLO
Necesitamos crear un Codepipeline usando Cloudformation y en una de las fases del pipeline tiene que leer el c贸digo de AWS, para esto debemos utilizar un token de conexi贸n a Github, este token debe permanecer oculto por seguridad.

Para este fin debemos crear un secret en AWS Secrets Manager.

Este secreto almacenar谩 un token de conexi贸n a GitHub.

secret key value.png

Una vez almacenemos el secreto nos pedir谩 un nombre visible para guardarlo, en este caso lo pondremos como SecretGithub.

secretgithub.png

Cuando necesitemos utilizar este secreto en cloudformation tenemos que hacerlo de la siguiente forma:

 OAuthToken:"{{resolve:secretsmanager:SecretGithub:SecretString:TokenGithub}}"

En esta definici贸n se puede observar d贸nde se utilizar谩n los nombre del secreto y la llave del mismo.

Llave del secreto: TokenGithub
**Nombre del secreto: **SecretGithub

De esta forma podremos poner todo el c贸digo del template de Cloudformation en un repositorio y no tendremos expuesto ninguna informaci贸n confidencial. Es importante aclarar que el role de Codepipeline debe tener permisos sobre secrets manager espec铆ficamente sobre GetSecretValue.

PRICING
**Por secreto: ** $0.40 d贸lares por mes.
**Por llamadas a la API: ** $0.05 d贸lares por cada 10.000 llamadas.

AWS KMS
Link: https://docs.aws.amazon.com/es_es/kms/latest/developerguide/overview.html

Este servicio permite controlar las llaves de cifrado que se utilizan para el cifrado de informaci贸n en AWS. Cuando se cree una llave KMS se deben especificar 2 niveles de permisos:

1- Quienes pueden usar la llave.
2- Quienes son los administradores de la llave.

Adicionalmente este servicio se integra con Cloudtrail en AWS el cual registra todas las llamadas a la API, es decir, nos permite identificar qui茅n, cu谩ndo y cu谩ntas veces han usado o intentado utilizar la llave.

Cuando utilizamos secrets manager podemos ver que el secreto termina siendo cifrado por KMS, podemos entonces elegir entre la llave predeterminada o alguna que nosotros hayamos creado.

EJEMPLO
Necesitamos realizar el cifrado de una cadena de conexi贸n, para este fin tendremos diferentes alternativas como:

Adicionalmente podemos utilizar otros lenguajes de programaci贸n soportados por AWS, para utilizar estas cadenas cifradas debemos garantizar que el servicio que acceder谩 a 茅l, tenga permisos para hacer actividades de Decrypt.

Aportes 6

Preguntas 1

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Deberia existir una clase para utilizar el secretmanager y realizar la practica

Cual servicio debe tener el rol con permisos sobre secrets manager CodePipeline o CloudFormation?

Excelente curso gracias carlos

Gracias 馃槂

馃槂

Gracias. Buena explicaci贸n.