{"id":1975,"date":"2021-09-15T08:23:17","date_gmt":"2021-09-15T08:23:17","guid":{"rendered":"https:\/\/keepler.io\/2021\/09\/15\/como-comenzar-con-buen-pie-en-la-nube-de-aws\/"},"modified":"2023-09-12T11:09:24","modified_gmt":"2023-09-12T11:09:24","slug":"como-comenzar-con-buen-pie-en-la-nube-de-aws","status":"publish","type":"post","link":"https:\/\/keepler.io\/es\/2021\/09\/15\/como-comenzar-con-buen-pie-en-la-nube-de-aws\/","title":{"rendered":"C\u00f3mo comenzar con buen pie en la nube de AWS"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Para implantar una <\/span><b>soluci\u00f3n sostenible a la hora de proporcionar servicios en diferentes geograf\u00edas y\/o tipolog\u00edas de clientes<\/b><span style=\"font-weight: 400;\">, o incluso diversidad de proyectos, habitualmente proponemos la implantaci\u00f3n progresiva de una <\/span><b>Landing Zone a trav\u00e9s del servicio Control Tower<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><b>El servicio de AWS<\/b><span style=\"font-weight: 400;\">,<\/span><b> Control Tower<\/b><span style=\"font-weight: 400;\">, despliega una landing zone con 3 cuentas en una \u00fanica organizaci\u00f3n: Root, Audit y Log Archive, adem\u00e1s disponibiliza un Service Catalog compartido entre todas las cuentas con un procedimiento para crear nuevas cuentas dentro de la organizaci\u00f3n <\/span><b>de forma semi-autom\u00e1tica<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Para su funcionamiento y operativa, Control Tower propone un sistema jer\u00e1rquico en el que las cuentas se estructuran del siguiente modo:<\/span><\/p>\n<div id=\"attachment_42272\" style=\"width: 768px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-42272\" class=\" wp-image-42272\" src=\"https:\/\/keepler.io\/wp-content\/uploads\/2021\/09\/account-hirarchy-aws-control-tower-1.jpg\" alt=\"\" width=\"758\" height=\"496\" \/><p id=\"caption-attachment-42272\" class=\"wp-caption-text\">Ejemplo de jerarqu\u00eda de cuentas derivada de aplicar Control Tower.<\/p><\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Este servicio se apoya en AWS Organizations y AWS SSO para desplegar un patr\u00f3n jer\u00e1rquico de cuentas de una forma centralizada, pero sobre todo escalable y mantenible. Dicho servicio tambi\u00e9n propone formas de unificar la gesti\u00f3n de las cuentas con AWS IAM en forma de roles delegados y el cumplimiento de pol\u00edticas propias o propuestas por AWS en todas las cuentas derivadas, aumentando de forma considerable la seguridad a trav\u00e9s de mecanismos pasivos, aislamiento de cuentas y permisos ef\u00edmeros a la vez que centralizados.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Esta jerarqu\u00eda crea por defecto otras dos cuentas adicionales para la auditor\u00eda y traza del uso de servicios transversales (log), por otra parte, nuestra propuesta es completarla con una cuenta compartida para todos aquellos procesos y elementos transversales p.e. VPN, SCM, etc\u2026. En este modelo, la cuenta root \u00fanicamente posee la facturaci\u00f3n, la gesti\u00f3n de Organizaciones y SSO y el soporte (recomendamos contratar al menos business level), todas las dem\u00e1s acciones se realizan en las cuentas hijas, siempre en funci\u00f3n de su nivel de particularidad o alcance.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Finalmente, a\u00f1adir que la parte menos desarrollada de Control Tower es la automatizaci\u00f3n de la gesti\u00f3n de la propia Control Tower, sin embargo, <\/span><b>gran parte del trabajo se realiza una s\u00f3la vez en las etapas iniciales del despliegue<\/b><span style=\"font-weight: 400;\">. En el caso de ser necesario extender los comportamientos de creaci\u00f3n de nuevas cuentas, es posible a trav\u00e9s de las herramientas propias de AWS como Cloudformation y Lambda.<\/span><\/p>\n<h3><b>\u00bfQu\u00e9 retos o puntos hay que tener en cuenta a la hora de implantar una Landing Zone con Control Tower?<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Integraciones con LDAP y\/o ADFS de turno. Esta parte implica desmontar el SSO por defecto y hay que validar que tenga soporte con SSO y puede implicar bastante trabajo de integraci\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Debe quedar bien configurado el sistema de pago, una tarjeta a nombre de cliente si el importe es relativamente bajo, y si no cuenta bancaria, pero esto s\u00f3lo se puede hacer tras un primer cobro (no desde el minuto 0).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Por razones de seguridad es preferible que no se haya hecho nada en la cuenta root<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">A\u00f1adir una cuenta que ya existe es bastante complejo porque no suele reconocer los guardrail ni las UO de organizations.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Es interesante si tienen en mente alguna restricci\u00f3n que se pueda convertir en pol\u00edticas de seguridad adicionales que quieran implantar.<\/span><\/li>\n<\/ul>\n<h3><b>\u00bfQu\u00e9 personalizaciones he descubierto pueden servir de ayuda?<\/b><\/h3>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Poner alarmas de gasto acordadas con el cliente. En umbrales del 25% incrementales respecto de lo que \u00e9l estime como consumo mensual aceptable.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Suelo crear para comenzar una cuenta shared d\u00f3nde alojo cosas transversales a varias cuentas p.e. CI\/CD, SCM,\u2026<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Tambi\u00e9n suelo crear una cuenta de networking para facilitar la creaci\u00f3n de Transit Gateways o VPNs en el caso de que sean infraestructuras de nube h\u00edbrida.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Por otro lado, habitualmente suelo eliminar los grupos por defecto y crear un grupo super-admin (acceso a la cuenta root y las de auditor\u00eda), otro grupo DevOps Cross a las cuentas de entorno\/proyecto y un grupo particular para cada proyecto\/l\u00ednea de trabajo.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Contratar en la cuenta Root soporte business que nos habilita los ticket urgentes y los ticket de tipo t\u00e9cnico.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Activar el permiso IAM de billing en la cuenta Root para que los administradores de las cuentas hijas puedan ver el gasto de su cuenta.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Activo algunos controles de GuardRail adicionales, especialmente los relativos a no dejar discos hu\u00e9rfanos y otros que generan gasto innecesario.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Genero un grupo de correo y obtengo los usuarios Root con su MFA de TODAS y cada una de las cuentas hija, por si hubiese alg\u00fan problema de seguridad\/accesos. Una herramienta \u00fatil para ello son los t\u00f3picos:<\/span><\/li>\n<\/ol>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">proyecto-x-grupo@keepler.io =&gt; root<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">proyecto-x-grupo+log@keepler.io =&gt; log<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">proyecto-x-grupo+audit@keepler.io =&gt; auditor\u00eda<\/span><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3><b>\u00bfCu\u00e1nto tiempo lleva montarlo y configurarlo?<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Est\u00e1 operativo en un par de horas, dir\u00eda que para dejarlo completamente operativo, entre crear usuarios, grupos, etc,\u2026 se invierten 1 \u00f3 2 d\u00edas de trabajo. No es una labor muy exigente, en general se trata de <\/span><b>asistentes guiados que hacen casi todo el trabajo<\/b><span style=\"font-weight: 400;\">.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para implantar una soluci\u00f3n sostenible a la hora de proporcionar servicios en diferentes geograf\u00edas y\/o tipolog\u00edas de clientes, o incluso diversidad de proyectos, habitualmente proponemos la implantaci\u00f3n progresiva de una Landing Zone a trav\u00e9s del servicio Control Tower. El servicio de AWS, Control Tower, despliega una landing zone con 3 cuentas en una \u00fanica organizaci\u00f3n: [&hellip;]<\/p>\n","protected":false},"author":134360170,"featured_media":1709,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","footnotes":""},"categories":[224],"tags":[236,255,280],"class_list":["post-1975","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","tag-aws","tag-cloud-es","tag-tecnologias"],"_links":{"self":[{"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/posts\/1975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/users\/134360170"}],"replies":[{"embeddable":true,"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/comments?post=1975"}],"version-history":[{"count":0,"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/posts\/1975\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/media\/1709"}],"wp:attachment":[{"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/media?parent=1975"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/categories?post=1975"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/keepler.io\/es\/wp-json\/wp\/v2\/tags?post=1975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}