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 “Other 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.