Debugando mensajes de error en terraform con CloudTrail

Hoy me he encontrado con un mensaje de error al aplicar terraform para crear un ASG y su Launch Template en AWS que no me ha parecido intuitivo.

Error: Error creating AutoScaling Group: 
AccessDenied: You are not authorized to use launch template: name-of-the-template
	status code: 403, request id: 12425678-7890-4567-1234-14ef2ea89123

Bueno, en realidad era un «Access Denied». ¿Fácil, no? Pues no, o por lo menos no para mí. El usuario que aplicaba terraform ya tenía los permisos que a priori parecía que necesitaba para poder crear ese recurso y sus asociados.

Entonces… ¿cómo saber de qué permisos se me está quejando? Aquí es donde entra CloudTrail. Lo que he hecho es básicamente buscar los eventos para el usuario con el que estaba ejecutando el comando, pues no he encontrado la forma de usar la request-id que nos devuelve el error. Recuerda que pueden tardar varios minutos hasta que aparezcan los eventos en CloudTrail, así que paciencia.

Continuar leyendo «Debugando mensajes de error en terraform con CloudTrail»

EBS/RDS Snapshots

¿Cómo funcionan los EBS snapshots?

Los snapshots de EBS son incrementales (excepto el primero que hagas sobre un volumen EBS); únicamente incluyen los bloques modificados desde el último snapshot. Cada snapshot contiene la información necesaria para hacer un restore completo de tus datos hasta el momento de hacer el snapshot, es decir, contiene referencias a los snapshot anteriores, lo que permite realizar un full restore (hasta el momento de hacer el snapshot) a partir de ese determinado snapshot.

[Fuente]

¿Se puede eliminar un snapshot EBS de forma segura?

Cuando eliminas un snapshot, solamente se eliminan los datos únicos de ese snapshot. Es importante recalcar que aunque el snapshot se elimine, los datos referenciados por otros snapshots se mantendrán. A la práctica ésto significa que si no necesitas poder hacer restores desde las fechas/horas específicas en las que se realizaron los diferentes snapshots, puedes eliminarlos todos excepto el último, que aun así podrás realizar un restore completo.

[Fuente]

Continuar leyendo «EBS/RDS Snapshots»

Resumen para el AWS Solutions Architect Associate

Tras casi un año acumulando borradores en el blog, por fín publico algo. Dejo aquí el resumen (con notas en inglés y español) que hice para la certificación de AWS Solutions Architect Associate (que me saqué a través del curso de A Cloud Guru). Hice el examen a finales de Octubre de 2017, así que a día de hoy, debería ser útil para aquellos que quieran subir a examinarse en breve.

El resumen consta de las siguientes secciones
1. IAM
2. S3
3. EC2
4. EFS
5. Lambda
6. Route53
7. Databases
8. VPC
9. Application Services
10. Whitepaper: Security
11. Exam feedback
12. Random notes

Al final del post dejo un enlace al resumen en PDF.

1. IAM


  • Users, Groups (users heritage its policies), Roles (for aws resources) and Policies (json)
  • Global
  • Root Account (never use it) + MFA
  • By default new users have no permissions
    • Programmatic access
    • AWS Management console access
  • IAM password policy
  • Roles:
    • AWS Service Role – The usual one, and the one we are interested in
    • AWS service-linked role: for Alexa
    • Role for cross-account access: allow IAM users to access to another AWS accounts
    • Role for identity provider access: grant access from Cognito, or OpenID (facebook, google, amazon), SAML, etc

Continuar leyendo «Resumen para el AWS Solutions Architect Associate»

Configuración inicial de un servidor CentOS

centosHace ya unos años, y sin ningún software de administración tipo Puppet/Chef/Ansible, creamos un documento para que todos los técnicos pudieran decir la suya respecto a los pasos a dar tras instalar un sistema operativo Linux (CentOS en nuestro caso), con tal de no olvidarnos ninguno e ir mejorando entre todos este proceso de configuración inicial de un servidor. Eso significa que si tú, amado lector, tienes cualquier sugerencia de mejora, no dudes en dejarla en los comentarios.

Hoy en día, ese documento, muy pensado para instalaciones CentOS 6, tanto en entornos Cloud Computing como para en máquinas propias, es algo parecido a lo que listo a continuació.

NOTA: No te tomes todos los puntos al pie de la letra, seguramente querrás valorar si lo que propongo a continuación tiene sentido en tu entorno antes de aplicarlo, y seguro que más de un punto es mejorable.

1. Actualización del SO

Tras la instalación, es una buena idea forzar un update para estar a la última de los paquetes de nuestro SO.

yum update

2. Deshabilitar selinux

Selinux es una herramienta útil, pero que no compensa, y proporciona más dolores de cabeza de los que pretende solucionar. Es por eso que proveedores como RackSpace o Hetzner proveen sistemas con Selinux deshabilitado de fábrica. Si aún así quieres trabajar con Selinux, seguramente este sea el momento de configurarlo adecuadamente. En caso contrario, símplemente deshabilitalo tal y como sigue:

vi /etc/selinux/config
SELINUX=disabled

Tras deshabilitarlo, será necesario reinciar el sistema para activar los cambio. Así pues, reinicia para evitar tener problemas con los próximos pasos.

Continuar leyendo «Configuración inicial de un servidor CentOS»

RDNS PTR IPv6 en AWS Route53

Cloud Amazon Route53Título duro y críptico donde los haya, pero si estás aquí es por una razón: quieres saber cómo configurar una zona Reverse DNS donde crear tus registros PTR de tus direcciones IPv6 con Amazon Route 53.

Primero de todo, para poder gestionar tú mismo los registros PTR, deberás confirmar que te pueden delegar la gestión del RDNS. Para ello, deberás confirmar con tu ISP que efectivamente, te puede delegar la gestión de los RDNS de tu rango de IPs públicas, ya que en otro caso, no podrás auto-gestionarte el RDNS.

Reverse Zone Name

Tras confirmar que el ISP nos podrá delegar la gestión del RDNS, lo primero que haremos, será pedirle a nuestro ISP que nos dé el nombre de la reverse zone que deberemos crear. El nombre de la zona, será la parte fija de nuestra IP pública, al revés, acabada en «.ip6.arpa». Ejemplo:

IPv6 range: 1234:5678:9ABC::/48
Reverse zone name: C.B.A.9.8.7.6.5.4.3.2.1.ip6.arpa

Con estos datos ya podremos entrar en el panel de AWS para la gestión de Route53.

Continuar leyendo «RDNS PTR IPv6 en AWS Route53»

Cloud Computing VS Servidor Dedicado

Cloud ComputingGran pregunta. Difícil Respuesta. La fácil es… depende. Hasta aquí estaba claro. Pero no sólo depende de cuales sean tus necesidades, también depende de qué proveedor vayas a elegir.

Cloud Computing

He trabajado mucho durante los últimos dos años, con dos de las empresas de Cloud Computing más importantes, Amazon AWS y RackSpace. ¿Cómo me ha ido?

Bueno, para empezar he aprendido que Cloud Computing es sinónimo de flexibilidad y agilidad. Es trementamente útil para proyectos que reciben cargas de trabajo extremadamente diferentes en función del día o la hora, o en función del resultado de determinada campaña de márketing. Por ejemplo, puedes aumentar o disminuir los recursos de tu máquina, según necesites, en cuestión de minutos. Incluso Amazon tiene un servicio llamado «Cloud Watch Auto Scaling» que te permite aumentar o disminuir recursos de forma totalmente automática, en función de la carga del servidor. Escalado vertical tremendamente fácil y rápido.

Continuar leyendo «Cloud Computing VS Servidor Dedicado»

Gestión de Amazon S3 con s3cmd

cloud computingAmazon AWS ofrece un sistema de almacenamiento de archivos llamado S3. Este sistema se puede aprovechar para gestionar archivos de forma automática desde un servidor Linux, para, por ejemplo, realizar copias de seguridad o almacenar otros datos.

Para ayudarnos a gestionar S3 desde una terminal de un servidor Linux, disponemos de herramientas como s3cmd, lista para instalar con yum:

[root@server]# yum info s3cmd
Paquetes instalados
Nombre : s3cmd
Arquitectura : noarch
Versión : 1.0.1
Lanzamiento : 1.fc15
Tamaño : 319 k
Repositorio : installed
Desde el repositorio : updates
Resumen : Tool for accessing Amazon Simple Storage Service
URL : http://s3tools.logix.cz/s3cmd
Licencia : GPLv2
Descripción :S3cmd lets you copy files from/to Amazon S3
: (Simple Storage Service) using a simple to use
: command line client.

Continuar leyendo «Gestión de Amazon S3 con s3cmd»