<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Augusto Valdivia</title>
    <description>The latest articles on DEV Community by Augusto Valdivia (@valaug).</description>
    <link>https://dev.to/valaug</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg</url>
      <title>DEV Community: Augusto Valdivia</title>
      <link>https://dev.to/valaug</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/valaug"/>
    <language>en</language>
    <item>
      <title># En progreso. 
iam-least-priv-lambda-s3/
 README.md
 .gitignore
 lambda/
 lambda_function.py
 requirements.txt
 terraform/
 versions.tf
 provider.tf
 variables.tf
 main.tf
 outputs.tf</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Wed, 31 Dec 2025 14:52:20 +0000</pubDate>
      <link>https://dev.to/valaug/-en-progreso-iam-least-priv-lambda-s3-readmemd-gitignore-lambda--1a75</link>
      <guid>https://dev.to/valaug/-en-progreso-iam-least-priv-lambda-s3-readmemd-gitignore-lambda--1a75</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/aws-espanol" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7402%2F04f86f58-db61-410f-8eda-06b0c052f17f.jpeg" alt="AWS Español" width="600" height="600"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" alt="" width="800" height="600"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;El error de seguridad más común es “Dale Admin y Ya” Cómo solucionarlo con Terraform&lt;/h2&gt;
      &lt;h3&gt;Augusto Valdivia for AWS Español ・ Dec 22&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#terraform&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#awsseguridad&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#awsdevops&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#awsespañol&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>terraform</category>
      <category>awsseguridad</category>
      <category>awsdevops</category>
      <category>awsespañol</category>
    </item>
    <item>
      <title>iam-least-priv-lambda-s3/
 README.md
 .gitignore
 lambda/
 lambda_function.py
 requirements.txt
 terraform/
 versions.tf
 provider.tf
 variables.tf
 main.tf
 outputs.tf
---In progress---</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Wed, 31 Dec 2025 14:51:09 +0000</pubDate>
      <link>https://dev.to/valaug/iam-least-priv-lambda-s3-readmemd-gitignore-lambda-lambdafunctionpy--ap6</link>
      <guid>https://dev.to/valaug/iam-least-priv-lambda-s3-readmemd-gitignore-lambda-lambdafunctionpy--ap6</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/aws-builders" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png" alt="AWS Community Builders " width="350" height="350"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" alt="" width="800" height="600"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;IAM Least Privilege: What Everyone Gets Wrong (and How to Fix It with Terraform)&lt;/h2&gt;
      &lt;h3&gt;Augusto Valdivia for AWS Community Builders  ・ Dec 17&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#terraform&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#awssecurity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#aws&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#devops&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>terraform</category>
      <category>awssecurity</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>Optimiza tus recursos con un monitoreo efectivo de costos en AWS Lambdas usando Terraform

¡Descubre cómo puedes maximizar la eficiencia de tus aplicaciones serverless!</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Mon, 29 Dec 2025 19:49:49 +0000</pubDate>
      <link>https://dev.to/valaug/optimiza-tus-recursos-con-un-monitoreo-efectivo-de-costos-en-aws-lambdas-usando-terraform-2n1j</link>
      <guid>https://dev.to/valaug/optimiza-tus-recursos-con-un-monitoreo-efectivo-de-costos-en-aws-lambdas-usando-terraform-2n1j</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/aws-espanol/monitoreo-de-costos-de-aws-lambdas-con-terraform-43oa" class="crayons-story__hidden-navigation-link"&gt;Monitoreo de Costos de AWS Lambdas con Terraform.&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/aws-espanol"&gt;
            &lt;img alt="AWS Español logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7402%2F04f86f58-db61-410f-8eda-06b0c052f17f.jpeg" class="crayons-logo__image"&gt;
          &lt;/a&gt;

          &lt;a href="/valaug" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" alt="valaug profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/valaug" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Augusto Valdivia
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Augusto Valdivia
                
              
              &lt;div id="story-author-preview-content-2039637" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/valaug" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Augusto Valdivia&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/aws-espanol" class="crayons-story__secondary fw-medium"&gt;AWS Español&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/aws-espanol/monitoreo-de-costos-de-aws-lambdas-con-terraform-43oa" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 15 '24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/aws-espanol/monitoreo-de-costos-de-aws-lambdas-con-terraform-43oa" id="article-link-2039637"&gt;
          Monitoreo de Costos de AWS Lambdas con Terraform.
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/awslambdacost"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;awslambdacost&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/terraform"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;terraform&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/awscost"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;awscost&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/awscloudwatchdashboard"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;awscloudwatchdashboard&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/aws-espanol/monitoreo-de-costos-de-aws-lambdas-con-terraform-43oa" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;14&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/aws-espanol/monitoreo-de-costos-de-aws-lambdas-con-terraform-43oa#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>awslambdacost</category>
      <category>terraform</category>
      <category>awscost</category>
      <category>awscloudwatchdashboard</category>
    </item>
    <item>
      <title>Cómo solucionarlo con Terraform?</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Tue, 23 Dec 2025 13:13:18 +0000</pubDate>
      <link>https://dev.to/valaug/como-solucionarlo-con-terraform-dcb</link>
      <guid>https://dev.to/valaug/como-solucionarlo-con-terraform-dcb</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82" class="crayons-story__hidden-navigation-link"&gt;El error de seguridad más común es “Dale Admin y Ya” Cómo solucionarlo con Terraform&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/aws-espanol"&gt;
            &lt;img alt="AWS Español logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7402%2F04f86f58-db61-410f-8eda-06b0c052f17f.jpeg" class="crayons-logo__image"&gt;
          &lt;/a&gt;

          &lt;a href="/valaug" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" alt="valaug profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/valaug" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Augusto Valdivia
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Augusto Valdivia
                
              
              &lt;div id="story-author-preview-content-3121459" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/valaug" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Augusto Valdivia&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/aws-espanol" class="crayons-story__secondary fw-medium"&gt;AWS Español&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 22 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82" id="article-link-3121459"&gt;
          El error de seguridad más común es “Dale Admin y Ya” Cómo solucionarlo con Terraform
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/terraform"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;terraform&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/awsseguridad"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;awsseguridad&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/awsdevops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;awsdevops&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/awsespa%C3%B1ol"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;awsespañol&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>terraform</category>
      <category>awsseguridad</category>
      <category>awsdevops</category>
      <category>awsespañol</category>
    </item>
    <item>
      <title>El error de seguridad más común es “Dale Admin y Ya” Cómo solucionarlo con Terraform</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Mon, 22 Dec 2025 21:28:18 +0000</pubDate>
      <link>https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82</link>
      <guid>https://dev.to/aws-espanol/el-error-de-seguridad-mas-comun-es-dale-admin-y-ya-o82</guid>
      <description>&lt;p&gt;Cuando estamos bajo presión, casi siempre gana la solución más rápida. Algo falla, alguien necesita acceso, hay una entrega cerca. Entonces hacemos lo típico: damos permisos amplios “por ahora”.&lt;/p&gt;

&lt;p&gt;El problema es que lo temporal suele quedarse para siempre.&lt;/p&gt;

&lt;p&gt;Menor privilegio no es paranoia. Es intención. Damos solo lo necesario para que los errores tengan un impacto pequeño y la seguridad sea más predecible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Qué significa menor privilegio de verdad
&lt;/h2&gt;

&lt;p&gt;Menor privilegio significa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Solo las acciones necesarias&lt;/li&gt;
&lt;li&gt;Solo los recursos necesarios&lt;/li&gt;
&lt;li&gt;Solo cuando se necesita&lt;/li&gt;
&lt;li&gt;Solo para la identidad correcta&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Una buena política responde:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Qué necesita hacer este sistema&lt;/li&gt;
&lt;li&gt;En qué recursos lo hará&lt;/li&gt;
&lt;li&gt;Qué cosas nunca debería poder hacer&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;IAM no es solo seguridad. IAM también es estabilidad. Un rol con demasiado poder puede romper más cosas más rápido.&lt;/p&gt;

&lt;h2&gt;
  
  
  Por Qué Importa a Gran Escala
&lt;/h2&gt;

&lt;p&gt;En entornos pequeños, los permisos amplios tal vez no exploten de inmediato. En entornos grandes, tarde o temprano sí.&lt;/p&gt;

&lt;p&gt;Menor privilegio te protege de:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Impacto masivo si una credencial se compromete&lt;/li&gt;
&lt;li&gt;Borrados accidentales en producción&lt;/li&gt;
&lt;li&gt;Roles antiguos que nadie recuerda&lt;/li&gt;
&lt;li&gt;Auditorías difíciles de explicar&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Además, ayuda a depurar. Si algo falla, sabemos que los límites de acceso son reales.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dónde Fallamos Normalmente
&lt;/h2&gt;

&lt;p&gt;Los patrones más comunes son:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Wildcards como &lt;code&gt;*:*&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Políticas copiadas sin limpieza&lt;/li&gt;
&lt;li&gt;Un rol para todo&lt;/li&gt;
&lt;li&gt;Permisos temporales que nunca se quitan&lt;/li&gt;
&lt;li&gt;No separar permisos de despliegue y ejecución&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Esto les pasa a equipos buenos también. La solución es un patrón claro.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ejemplos: Mala Política vs Buena Política
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Ejemplo 1: Acceso a S3
&lt;/h3&gt;

&lt;h4&gt;
  
  
  ❌ Mala política (demasiado amplia)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"s3:*"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"*"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  ✅ Buena política (limitada y práctica)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2012-10-17"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"Statement"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ListBucketInPrefix"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"s3:ListBucket"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:s3:::my-app-data"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Condition"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"StringLike"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"s3:prefix"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"public/*"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Sid"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ReadObjectsInPrefix"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Effect"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Allow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Action"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"s3:GetObject"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"Resource"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"arn:aws:s3:::my-app-data/public/*"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Un Sistema Simple para Diseñar IAM Bien
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Separar roles&lt;/li&gt;
&lt;li&gt;Empezar mínimo y crecer cuando sea necesario&lt;/li&gt;
&lt;li&gt;Usar guardrails como SCPs y boundaries&lt;/li&gt;
&lt;li&gt;Revisar y limpiar permisos regularmente&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🧪 Mini Proyecto: Rol de Menor Privilegio para Lambda + S3 usando Terraform.
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Objetivo
&lt;/h3&gt;

&lt;p&gt;Crear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un bucket S3&lt;/li&gt;
&lt;li&gt;Un rol de ejecución de Lambda&lt;/li&gt;
&lt;li&gt;Una política de menor privilegio&lt;/li&gt;
&lt;li&gt;Adjuntar la política al rol&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La Lambda podrá:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Leer solo de &lt;code&gt;public/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Escribir solo en &lt;code&gt;results/&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Escribir logs en CloudWatch&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ¿Quieres verlo todo en acción?
&lt;/h2&gt;

&lt;p&gt;Completa este despliegue arquitectónico utilizando este repositorio de GitHub - &lt;a href="https://github.com/ValAug/IAM_least_privilege" rel="noopener noreferrer"&gt;Demostración de IAM Least Privilege&lt;/a&gt;. Siéntete libre de explorar otros proyectos en los que he trabajado. &lt;/p&gt;

&lt;p&gt;Si este artículo te ayudó, aquí está lo que puedes hacer después:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sígueme&lt;/strong&gt; en &lt;a href="https://x.com/TerraSpacio" rel="noopener noreferrer"&gt;X&lt;/a&gt; y &lt;a href="https://www.youtube.com/@TerraSpacio" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; para más contenido de AWS, DevOps y Terraform,para principiantes o expertos. También comparto miniproyectos en nuestro newsletter ☕ Cloud Café &lt;a href="https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7373717160319299584" rel="noopener noreferrer"&gt;Subscríbete en LinkedIn&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>awsseguridad</category>
      <category>awsdevops</category>
      <category>awsespañol</category>
    </item>
    <item>
      <title>Adding one more thought here.

Least privilege is not about locking everything down.
It’s about making failure predictable.

That shift alone changed how I design IAM policies.</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Mon, 22 Dec 2025 15:11:02 +0000</pubDate>
      <link>https://dev.to/aws-builders/adding-one-more-thought-here-least-privilege-is-not-about-locking-everything-down-its-about-363l</link>
      <guid>https://dev.to/aws-builders/adding-one-more-thought-here-least-privilege-is-not-about-locking-everything-down-its-about-363l</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j" class="crayons-story__hidden-navigation-link"&gt;IAM Least Privilege: What Everyone Gets Wrong (and How to Fix It with Terraform)&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/aws-builders"&gt;
            &lt;img alt="AWS Community Builders  logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png" class="crayons-logo__image"&gt;
          &lt;/a&gt;

          &lt;a href="/valaug" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" alt="valaug profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/valaug" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Augusto Valdivia
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Augusto Valdivia
                
              
              &lt;div id="story-author-preview-content-3111530" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/valaug" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F637781%2F1cf3dd02-fe7e-4dd8-9b30-93f0b09fdb4c.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Augusto Valdivia&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/aws-builders" class="crayons-story__secondary fw-medium"&gt;AWS Community Builders &lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Dec 17 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j" id="article-link-3111530"&gt;
          IAM Least Privilege: What Everyone Gets Wrong (and How to Fix It with Terraform)
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/terraform"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;terraform&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/awssecurity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;awssecurity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/aws"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;aws&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devops"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devops&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>terraform</category>
      <category>awssecurity</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>IAM Least Privilege: What Everyone Gets Wrong (and How to Fix It with Terraform)</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Wed, 17 Dec 2025 15:29:39 +0000</pubDate>
      <link>https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j</link>
      <guid>https://dev.to/aws-builders/iam-least-privilege-what-everyone-gets-wrong-and-how-to-fix-it-with-terraform-2k5j</guid>
      <description>&lt;p&gt;When we’re under pressure, the fastest solution often wins. Someone needs access, something is failing, and a deadline is approaching. So we do the classic move: grant wide permissions “temporarily.”&lt;/p&gt;

&lt;p&gt;The problem is that temporary permissions have a habit of becoming permanent.&lt;/p&gt;

&lt;p&gt;Least privilege isn’t about being paranoid. It’s about being intentional. We grant only what’s needed, so mistakes stay small, and security remains predictable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What does least privilege actually mean?
&lt;/h2&gt;

&lt;p&gt;Least privilege means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only the actions needed (not everything)&lt;/li&gt;
&lt;li&gt;Only the resources needed (not “any resource”)&lt;/li&gt;
&lt;li&gt;Only when needed (not forever)&lt;/li&gt;
&lt;li&gt;Only for the right identity (role, user, or service)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With these points in mind, I always ask myself the following questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What does this workload need to do?&lt;/li&gt;
&lt;li&gt;Where does it need to do it?&lt;/li&gt;
&lt;li&gt;What should &lt;strong&gt;&lt;em&gt;never&lt;/em&gt;&lt;/strong&gt; be allowed?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This mindset matters because IAM is not just about security; it’s also about reliability.&lt;br&gt;
A role with too much power can break more things, faster.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why Least Privilege Matters at Scale
&lt;/h2&gt;

&lt;p&gt;In small environments, wide permissions might not cause immediate problems.&lt;br&gt;
At scale, they usually do.&lt;/p&gt;
&lt;h4&gt;
  
  
  Here’s what least privilege protects you from:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A larger blast radius:&lt;/strong&gt; one compromised key can impact everything&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accidental deletions:&lt;/strong&gt; someone runs the wrong command in production&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shadow access:&lt;/strong&gt; old roles retain permissions nobody remembers granting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit headaches:&lt;/strong&gt; difficult questions like “Why does this role have this access?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When permissions are tight, debugging becomes easier as well.&lt;br&gt;
If something fails, we know the access boundary is real and meaningful.&lt;/p&gt;
&lt;h2&gt;
  
  
  Where Teams Usually Go Wrong
&lt;/h2&gt;

&lt;p&gt;These are the most common patterns we see in real AWS environments:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Wildcards like:*&lt;/li&gt;
&lt;li&gt;Policies copied from the internet and never cleaned up&lt;/li&gt;
&lt;li&gt;A single role reused across multiple systems&lt;/li&gt;
&lt;li&gt;“Temporary” permissions that quietly become permanent&lt;/li&gt;
&lt;li&gt;No separation between deployment permissions and runtime permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This happens to good teams as well. It usually comes from moving fast.&lt;br&gt;
The fix isn’t blame; the fix is adopting the right patterns.&lt;/p&gt;
&lt;h2&gt;
  
  
  Bad Policy vs Good Policy Examples
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example 1: S3 access&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
❌ Bad policy (too broad)&lt;/p&gt;

&lt;p&gt;This allows any S3 action on any bucket.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": "*"
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why This Is Risky
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Can delete any bucket&lt;/li&gt;
&lt;li&gt;Can read data that should be private&lt;/li&gt;
&lt;li&gt;No limits on specific paths or environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ Good Policy (Tight and Practical)&lt;/p&gt;

&lt;p&gt;This policy grants read-only access to a single bucket, limited to a specific prefix.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ListBucketInPrefix",
      "Effect": "Allow",
      "Action": ["s3:ListBucket"],
      "Resource": "arn:aws:s3:::my-app-data",
      "Condition": {
        "StringLike": {
          "s3:prefix": ["public/*"]
        }
      }
    },
    {
      "Sid": "ReadObjectsInPrefix",
      "Effect": "Allow",
      "Action": ["s3:GetObject"],
      "Resource": "arn:aws:s3:::my-app-data/public/*"
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why This Is Better
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Limited to a single bucket&lt;/li&gt;
&lt;li&gt;Limited to a specific path&lt;/li&gt;
&lt;li&gt;No delete permissions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Example 2: Lambda Logging&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
❌ Bad Policy&lt;/p&gt;

&lt;p&gt;This policy allows writing logs anywhere, which is unnecessary and risky.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "Effect": "Allow",
  "Action": "logs:*",
  "Resource": "*"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✅ Good Policy&lt;/p&gt;

&lt;p&gt;This policy allows only log stream creation and log writing for one specific log group.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "Effect": "Allow",
  "Action": [
    "logs:CreateLogStream",
    "logs:PutLogEvents"
  ],
  "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/my-function:*"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  A Simple System to Design IAM the Right Way
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Here’s a pattern that works in real projects:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Separate roles&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use different roles for different responsibilities:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;One for deployment&lt;/li&gt;
&lt;li&gt;One for runtime&lt;/li&gt;
&lt;li&gt;One for monitoring&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Start narrow, expand only when needed&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When an action fails, add only the minimum permission required to fix it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Use guardrails&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apply SCPs and permission boundaries to enforce “&lt;em&gt;this must never happen&lt;/em&gt;” rules.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Review regularly&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If a permission hasn’t been used in months, remove it.&lt;/li&gt;
&lt;li&gt;Least privilege is not a one-time setup.&lt;/li&gt;
&lt;li&gt;It’s a maintenance habit.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🧪 Mini Project: Least-Privilege IAM Role for Lambda + S3
&lt;/h3&gt;

&lt;p&gt;(Terraform &lt;strong&gt;Coming-Soon&lt;/strong&gt;)&lt;/p&gt;

&lt;h4&gt;
  
  
  Goal
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;We will create:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One S3 bucket&lt;/li&gt;
&lt;li&gt;One Lambda execution role&lt;/li&gt;
&lt;li&gt;One least-privilege IAM policy&lt;/li&gt;
&lt;li&gt;Attach the policy to the role&lt;/li&gt;
&lt;li&gt;The Lambda will be able to:&lt;/li&gt;
&lt;li&gt;Read only from s3://bucket/public/*&lt;/li&gt;
&lt;li&gt;Write only to s3://bucket/results/*&lt;/li&gt;
&lt;li&gt;Write logs to CloudWatch&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Want to see it all in action?
&lt;/h2&gt;

&lt;p&gt;Complete this architectural deployment using this GitHub repository - &lt;a href="https://github.com/ValAug/IAM_least_privilege" rel="noopener noreferrer"&gt;IAM Least Privilege Demo&lt;/a&gt;. Feel free to explore other projects I've worked on.&lt;/p&gt;

&lt;p&gt;If this article helped you, here’s what you can do next:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Follow me on&lt;/em&gt;&lt;/strong&gt; &lt;a href="https://x.com/TerraSpacio" rel="noopener noreferrer"&gt;X&lt;/a&gt; and &lt;a href="https://www.youtube.com/@TerraSpacio" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; for more AWS, DevOps, and Terraform content that’s beginner-friendly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Leave a comment&lt;/em&gt;&lt;/strong&gt; with your thoughts, your own AWS journey, or questions you’d like me to cover next.&lt;/p&gt;

</description>
      <category>terraform</category>
      <category>awssecurity</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>AWS Summit Toronto 2025: De la Supervisión Humana a la IA Agéntica</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Fri, 12 Sep 2025 17:59:56 +0000</pubDate>
      <link>https://dev.to/aws-espanol/aws-summit-toronto-2025-reflexiones-de-dos-dias-inspiradores-3m9n</link>
      <guid>https://dev.to/aws-espanol/aws-summit-toronto-2025-reflexiones-de-dos-dias-inspiradores-3m9n</guid>
      <description>&lt;p&gt;La semana pasada tuve la oportunidad de asistir al &lt;strong&gt;AWS Summit Toronto 2025&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0j2udrsrj3voyq31c1t2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0j2udrsrj3voyq31c1t2.png" alt="Toronto" width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
Este año el evento se dividió en dos partes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Día 1 – Partner Summit&lt;/strong&gt;, dedicado a los socios de AWS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Día 2 – Open Summit&lt;/strong&gt;, abierto a toda la comunidad de AWS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fueron dos días llenos de aprendizaje, inspiración y anuncios sobre el futuro. Pero más que nada, fue una oportunidad para conectar — con colegas, líderes y con toda la comunidad de AWS.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Día 1 – Lo más Destacado del Partner Summit&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;El primer día estuvo enfocado en los socios y en un repaso profundo del portafolio más reciente de AWS. Algunos de los temas tratados fueron:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;La Anatomía de la Velocidad&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Soluciones Industriales y Seguridad&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generative AI y Migración/Modernización&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Evolución del AWS Marketplace&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;El mayor foco estuvo en la &lt;strong&gt;IA Agéntica (Agentic AI)&lt;/strong&gt;. AWS presentó un portafolio que conecta herramientas como &lt;strong&gt;Amazon Q, AWS Transform, Amazon Connect, modelos Nova y Bedrock&lt;/strong&gt;, todo unificado con nuevos SDKs y servicios para construir agentes inteligentes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Temas clave:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexibilidad con OSS e integraciones de partners.&lt;/li&gt;
&lt;li&gt;Guardrails de personalización para construir de manera responsable.&lt;/li&gt;
&lt;li&gt;Soluciones verticales para industrias como SAP, Oracle y mainframes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Transform&lt;/strong&gt; como el primer servicio de IA agéntica para migración y modernización, mostrando resultados impresionantes como evaluaciones de documentación más rápidas y reducción de costos de licencias.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Día 2 – Temas del Open Summit&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;El segundo día amplió la visión hacia el futuro de la nube. La evolución fue clara:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;De &lt;strong&gt;asistentes de IA generativa&lt;/strong&gt; → a &lt;strong&gt;agentes de IA generativa&lt;/strong&gt; → hasta &lt;strong&gt;sistemas de IA agéntica&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Menos supervisión humana, más automatización y sistemas multiagente capaces de razonar como humanos.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Este cambio hacia la &lt;strong&gt;IA agéntica&lt;/strong&gt; marca el próximo capítulo en la nube — donde las cargas de trabajo no solo corren en AWS, sino que también toman decisiones, automatizan flujos de trabajo y se adaptan en tiempo real.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Aprendizajes y Conclusiones&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Varias sesiones destacaron por sus ideas prácticas y su mirada hacia adelante:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Serverless &amp;amp; Analítica en Tiempo Real:&lt;/strong&gt; Las mejores prácticas para Lambda y pipelines de datos en streaming siguen evolucionando, con un fuerte enfoque en optimización del rendimiento y reducción de latencia.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IA + Datos de IoT:&lt;/strong&gt; La necesidad de datos limpios y unificados es cada vez más crítica a medida que las industrias confían en la IA para manejar enormes volúmenes de datos de IoT. Los principios de la manufactura inteligente ya se aplican en edificios inteligentes y más allá.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Chatbots Agénticos &amp;amp; Serverless AI:&lt;/strong&gt; Los talleres prácticos de Lambda y las sesiones sobre chatbots y analítica dejaron claro que AWS está impulsando aplicaciones de IA agéntica que no solo responden, sino que también actúan.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GenAI + Digital Twins:&lt;/strong&gt; La IA generativa sigue dominando. Un tema central fue cómo integrarla con datasets existentes para potenciar soluciones de digital twins, especialmente en industrias como AEC, donde las lecciones de sectores más maduros en IA aceleran la adopción.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La dirección general: &lt;strong&gt;AWS está invirtiendo fuertemente en IA, datos en tiempo real y estrategias de modernización&lt;/strong&gt; que atraviesan todas las industrias.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Comunidad y Conexiones&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtckvf406ufimi2o3de4.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtckvf406ufimi2o3de4.PNG" alt="dinner" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenbpkcf18973i2i2tbu5.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fenbpkcf18973i2i2tbu5.JPG" alt="CB's" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Uno de los momentos más gratificantes llegó al final del Summit: reencontrarme con líderes de la comunidad de AWS, volver a conectar con colegas del &lt;strong&gt;AWS Community Builders program&lt;/strong&gt; y compartir una cena donde hablamos sobre la &lt;strong&gt;próxima gran iniciativa que queremos organizar juntos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Momentos como este me recuerdan que AWS no se trata solo de tecnología. Se trata de personas, colaboración y de construir juntos una comunidad más fuerte.&lt;/p&gt;

&lt;p&gt;El AWS Summit Toronto 2025 nos mostró hacia dónde se dirige la nube: más rápida, más inteligente y más agéntica que nunca.&lt;/p&gt;

&lt;p&gt;Me encantaría escuchar de otros que asistieron: &lt;strong&gt;¿Cuáles fueron sus principales aprendizajes?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Y si no pudieron participar este año, síganme para más reflexiones sobre AWS, DevOps y Terraform — seguiré compartiendo aprendizajes y el espíritu de la comunidad. &lt;/p&gt;

</description>
      <category>agenticai</category>
      <category>awscommunity</category>
      <category>aws</category>
      <category>ai</category>
    </item>
    <item>
      <title>AWS Summit Toronto 2025: From Human Oversight to Agentic AI</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Fri, 12 Sep 2025 17:42:08 +0000</pubDate>
      <link>https://dev.to/aws-builders/aws-summit-toronto-2025-reflections-from-two-inspiring-days-1imb</link>
      <guid>https://dev.to/aws-builders/aws-summit-toronto-2025-reflections-from-two-inspiring-days-1imb</guid>
      <description>&lt;p&gt;Last week I had the chance to attend the &lt;strong&gt;AWS Summit Toronto 2025&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtl9djkude8hwizc3jys.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtl9djkude8hwizc3jys.jpeg" alt="Toronto" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
This year’s event was split into two parts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Day 1 – Partner Summit&lt;/strong&gt;, dedicated to AWS partners.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Day 2 – Open Summit&lt;/strong&gt;, welcoming the entire AWS community.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both days were packed with learning, inspiration, and future-looking announcements. But more than anything, it was a chance to connect with peers, with leaders, and with the wider AWS community.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Day 1 – Partner Summit Highlights&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Day one was all about partners and the deep dive into AWS’s latest portfolio. Topics included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The Anatomy of Speed&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Industry Solutions &amp;amp; Security&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Generative AI and Migration/Modernization&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AWS Marketplace evolution&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The biggest spotlight was on &lt;strong&gt;Agentic AI&lt;/strong&gt;. AWS introduced a portfolio that connects tools like &lt;strong&gt;Amazon Q, AWS Transform, Amazon Connect, Nova models, and Bedrock&lt;/strong&gt;, all tied together with new SDKs and services to build intelligent agents.&lt;/p&gt;

&lt;p&gt;⚡ &lt;strong&gt;Key themes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Flexibility with OSS and partner integrations.&lt;/li&gt;
&lt;li&gt;Customization guardrails to build responsibly.&lt;/li&gt;
&lt;li&gt;Vertical solutions for industries like SAP, Oracle, and mainframes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AWS Transform&lt;/strong&gt; as the first agentic AI service for migration and modernization, with impressive results like faster documentation assessment and reduced licensing costs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Day 2 – Open Summit Themes&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The second day zoomed out into the future of cloud. The evolution was clear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;From &lt;strong&gt;Generative AI assistants&lt;/strong&gt; → &lt;strong&gt;Generative AI agents&lt;/strong&gt; → to &lt;strong&gt;Agentic AI systems&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Less human oversight, more automation, and multi-agent systems capable of reasoning like humans.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This shift toward &lt;strong&gt;agentic AI&lt;/strong&gt; signals the next chapter in cloud, where workloads don’t just run in AWS, but make decisions, automate workflows, and adapt in real time.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Key Learnings and Takeaways&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Several sessions stood out for their practical insights and forward-looking themes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Serverless &amp;amp; Real-Time Analytics:&lt;/strong&gt; Best practices for Lambda and streaming data pipelines continue to evolve, with a strong focus on performance optimization and reducing latency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI + IoT Data:&lt;/strong&gt; Clean, unified data structures are becoming critical as industries rely on AI to manage massive IoT datasets. Smart manufacturing principles are now being applied to smart buildings and beyond.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agentic Chatbots &amp;amp; Serverless AI:&lt;/strong&gt; Hands-on Lambda workshops and sessions on analytics and chatbots made clear that AWS is pushing hard toward agentic AI applications that don’t just respond, but act.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GenAI + Digital Twins:&lt;/strong&gt; Generative AI continues to dominate. A major theme was integrating GenAI with existing datasets to power digital twin solutions, especially in industries like AEC, where lessons from more mature tech sectors can accelerate adoption.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The overall direction: &lt;strong&gt;AWS is investing heavily in AI, real-time data, and modernization strategies&lt;/strong&gt; that cut across industries.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Community and Connections&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feog61wk6snjzu7a1mik5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feog61wk6snjzu7a1mik5.PNG" alt="dinnertime" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo47k8gicadfq0n1x23eu.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo47k8gicadfq0n1x23eu.JPG" alt="CB" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the most rewarding moments came at the end of the Summit: meeting leaders from the AWS community, reconnecting with peers from the &lt;strong&gt;AWS Community Builders program&lt;/strong&gt;, and sharing a dinner where we talked about the &lt;strong&gt;next big thing we want to organize together&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Moments like these remind me that AWS isn’t just about technology. It’s about people, collaboration, and building a stronger community together.&lt;/p&gt;

&lt;p&gt;The AWS Summit Toronto 2025 showed us where cloud is heading: faster, smarter, and more agentic than ever before.&lt;/p&gt;

&lt;p&gt;👉 I’d love to hear from others who attended: &lt;strong&gt;What were your top takeaways?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And if you couldn’t make it this year, follow me for more AWS, DevOps, and Terraform reflections — I’ll keep sharing the lessons and the community spirit. 🚀&lt;/p&gt;

</description>
      <category>awsagenticai</category>
      <category>awsummittoronto</category>
      <category>awscommunity</category>
      <category>terraspacio</category>
    </item>
    <item>
      <title>Cómo Aprobar el Examen de AWS Solutions Architect Professional Como un Verdadero Pro</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Tue, 02 Sep 2025 18:47:07 +0000</pubDate>
      <link>https://dev.to/aws-espanol/como-aprobar-el-examen-de-aws-solutions-architect-professional-como-un-verdadero-pro-lf5</link>
      <guid>https://dev.to/aws-espanol/como-aprobar-el-examen-de-aws-solutions-architect-professional-como-un-verdadero-pro-lf5</guid>
      <description>&lt;p&gt;Imagina esto: después de meses de estudio, exámenes de práctica y algunos momentos de duda, finalmente presionas el botón de &lt;strong&gt;enviar&lt;/strong&gt;. Entonces la pantalla muestra las palabras que has estado esperando: &lt;/p&gt;

&lt;p&gt;&lt;em&gt;“¡Felicidades! Has aprobado el AWS Certified Solutions Architect – Professional.”&lt;/em&gt; 🎉&lt;/p&gt;

&lt;p&gt;Eso me pasó no hace mucho, y déjame decirte, la sensación fue como terminar una gran comida después de horas en la cocina — llena de alivio, orgullo y quizás hasta un poco de cansancio.&lt;/p&gt;

&lt;p&gt;Esta certificación no es cualquier cosa — se trata de dominar:&lt;br&gt;
🌐 Diseño de arquitecturas complejas en AWS&lt;br&gt;
🔒 Seguridad, cumplimiento y gobierno a escala&lt;br&gt;
⚙️ Optimización de costo, rendimiento y resiliencia&lt;br&gt;
🛠️ Migración y modernización de cargas de trabajo&lt;br&gt;
📊 Equilibrar decisiones con necesidades reales de negocio&lt;/p&gt;

&lt;p&gt;Pero aquí está el detalle: aprobar el examen no se trata solo de memorizar preguntas. Se trata de entender realmente &lt;strong&gt;cómo funciona AWS a gran escala&lt;/strong&gt;. Y para mí, dos temas destacaron más que cualquier otro:&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Service Control Policies (SCPs)&lt;/strong&gt; – las barandillas que mantienen tus cuentas de AWS seguras y consistentes.&lt;br&gt;
✅ &lt;strong&gt;Migraciones&lt;/strong&gt; – las estrategias que ayudan a mover cargas de trabajo a AWS sin interrumpir el negocio.&lt;/p&gt;

&lt;p&gt;En este artículo compartiré mis ideas sobre estas dos áreas. Lo mantendré simple, con analogías y ejemplos del mundo real que realmente puedes usar — Sé que muchos de ustedes están aprendiendo AWS en inglés, pero resulta mucho más fácil si lo estudiamos en nuestro idioma, o quizás apenas están comenzando en la nube. Y si ya eres un experto, piénsalo como un repaso refrescante con una nueva perspectiva.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Service Control Policies (SCPs) – La Parte Técnica&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Muy bien, veamos lo que dice la documentación de AWS sobre &lt;strong&gt;Service Control Policies (SCPs)&lt;/strong&gt; pero de una forma más fácil de digerir:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Parte de AWS Organizations&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Las SCPs viven dentro de &lt;strong&gt;AWS Organizations&lt;/strong&gt;, el servicio que usas para manejar múltiples cuentas de AWS en un solo lugar.&lt;/li&gt;
&lt;li&gt;Importante: las SCPs solo funcionan si activas &lt;em&gt;“todas las características”&lt;/em&gt;. Si solo tienes la facturación consolidada, las SCPs no estarán disponibles.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Las SCPs No Otorgan Permisos&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Esto es lo más importante: &lt;strong&gt;las SCPs no dan acceso&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Simplemente definen los &lt;strong&gt;límites máximos de permisos&lt;/strong&gt; que una cuenta puede tener.&lt;/li&gt;
&lt;li&gt;Ejemplo: si IAM dice “sí” pero SCP dice “no”, el resultado es &lt;strong&gt;no&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Jerarquía y Herencia&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Las SCPs se pueden aplicar en el &lt;strong&gt;root&lt;/strong&gt;, a &lt;strong&gt;Organizational Units (OUs)&lt;/strong&gt; o a &lt;strong&gt;cuentas individuales&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Las reglas bajan en cascada: una SCP en root afecta todo; una SCP en un OU afecta todas las cuentas dentro de ese OU.&lt;/li&gt;
&lt;li&gt;Los permisos efectivos = la intersección de SCPs + IAM. Para que una acción funcione, debe estar permitida en toda la cadena.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Lista de Permitir vs Lista de Denegar&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lista de Permitir (denegar por defecto):&lt;/strong&gt; Todo está denegado a menos que lo permitas. Muy estricto, mucho trabajo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lista de Denegar (permitir por defecto):&lt;/strong&gt; Todo está permitido a menos que lo deniegues. Más fácil de manejar y lo más común.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Impacto en Permisos&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Las SCPs afectan a &lt;strong&gt;usuarios y roles IAM&lt;/strong&gt; en &lt;strong&gt;cuentas miembro&lt;/strong&gt;, incluso al usuario root.&lt;/li&gt;
&lt;li&gt;No afectan la cuenta de administración ni a los roles vinculados a servicios.&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Control Centralizado&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Las SCPs ayudan a mantener las cuentas bajo control:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bloqueando servicios específicos&lt;/li&gt;
&lt;li&gt;Restringiendo regiones&lt;/li&gt;
&lt;li&gt;Asegurando cumplimiento&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Buenas Prácticas&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;No empieces en root. Haz pruebas en un OU primero para evitar bloquear servicios críticos.&lt;/li&gt;
&lt;li&gt;Usa &lt;strong&gt;IAM last accessed data&lt;/strong&gt; o &lt;strong&gt;CloudTrail&lt;/strong&gt; para revisar uso antes de aplicar restricciones.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🏠 La Analogía de la Casa Familiar (Root, OUs, SCPs)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Root = la casa de los padres.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cada OU = un dormitorio diferente.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cada cuenta = el niño que vive en ese dormitorio.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Escenario 1: Denegar en Root (mala idea)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los padres ponen candado al refri: “Nadie puede comer helado.”&lt;/li&gt;
&lt;li&gt;Aunque las reglas del niño digan que sí, la regla de la casa aplica → nadie come helado.&lt;/li&gt;
&lt;li&gt;Eso pasa si niegas en root: no hay excepciones.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Escenario 2: Root Full Access + Denegar en OU (mejor práctica)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los padres dicen: “Todos pueden comer lo que sea.” (FullAWSAccess por defecto).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cada dormitorio (OU) pone sus propias reglas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Niño #1 → No helado.&lt;/li&gt;
&lt;li&gt;Niño #2 → No dulces.&lt;/li&gt;
&lt;li&gt;Niño #3 → Acceso completo.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Si Niño #1 de repente necesita helado para un proyecto de la escuela, lo mueves al cuarto del Niño #3.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Eso es denegar a nivel OU: flexible y más fácil de manejar.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Escenario 3: Lista de Permitir en Root (demasiado estricto)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los padres ponen un pizarrón gigante: “Solo pizza y manzanas permitidas.”&lt;/li&gt;
&lt;li&gt;Cada comida nueva = actualizar el pizarrón. Demasiado trabajo.&lt;/li&gt;
&lt;li&gt;Eso es una lista de permitir en root → alto mantenimiento.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;La estrategia ganadora:&lt;/strong&gt; &lt;strong&gt;Root = deja FullAWSAccess. OU = aplica listas de denegar. Excepciones = mueve cuentas.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Migraciones – Lo Que Necesitas Saber para el Examen AWS SAP&lt;/strong&gt;
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Planeación de Migración&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Cuando AWS habla de migraciones, no significa solo “mueve todo a la nube y espera que funcione.” Quieren que lo hagas &lt;strong&gt;como un pro&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Descubre lo que tienes (servidores, bases de datos, apps).&lt;/li&gt;
&lt;li&gt;Agrupa las cosas lógicamente (aplicaciones, dependencias).&lt;/li&gt;
&lt;li&gt;Elige la estrategia correcta de migración (las famosas &lt;strong&gt;6 R’s&lt;/strong&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Esta etapa es como planear una mudanza familiar grande. No agarras cajas al azar — haces una lista, decides qué se va, qué se queda y qué se actualiza.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2. AWS Application Discovery Service (ADS)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Esta herramienta es tu &lt;strong&gt;inventario&lt;/strong&gt; antes de la mudanza. Escanea automáticamente tu entorno on-premises y recoge detalles de servidores, VMs, bases de datos e incluso conexiones de red.&lt;/p&gt;

&lt;p&gt;Tiene &lt;strong&gt;tres formas principales de recolectar datos&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Agentless Collector&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No requiere instalar nada en cada servidor.&lt;/li&gt;
&lt;li&gt;Ideal para entornos VMware.&lt;/li&gt;
&lt;li&gt;Recolecta datos básicos: hostname, IP, CPU, RAM, uso de disco.&lt;/li&gt;
&lt;li&gt;Limitación: no ve procesos ni dependencias de red.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Discovery Agent (basado en agente)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Instalado en cada servidor.&lt;/li&gt;
&lt;li&gt;Da datos detallados: procesos, flujos de red, rendimiento.&lt;/li&gt;
&lt;li&gt;Perfecto para entender &lt;strong&gt;cómo se comunican los servidores&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Importación basada en archivos&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cuando ya tienes un inventario de otro sistema.&lt;/li&gt;
&lt;li&gt;Lo importas directo a &lt;strong&gt;Migration Hub&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;📊 &lt;strong&gt;¿Qué pasa después del descubrimiento?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Los datos van a tu &lt;strong&gt;Migration Hub Home Region&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Puedes agrupar servidores en aplicaciones.&lt;/li&gt;
&lt;li&gt;Exportar los datos a S3, Athena o QuickSight para análisis de costos.&lt;/li&gt;
&lt;li&gt;Usar la info para &lt;strong&gt;dimensionar bien EC2s&lt;/strong&gt; y planear costos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;3. Servicios de Migración: De VMware u On-Prem a AWS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Cuando ya tienes el plan, es hora de mover las cajas. Para el examen SAP, necesitas conocer estos servicios clave:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AWS Application Migration Service (MGN)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El &lt;strong&gt;campeón del lift-and-shift&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Replica servidores en AWS y los convierte en EC2s.&lt;/li&gt;
&lt;li&gt;Minimiza downtime.&lt;/li&gt;
&lt;li&gt;Funciona con &lt;strong&gt;Migration Hub&lt;/strong&gt; para seguimiento.&lt;/li&gt;
&lt;li&gt;Bonus: después de rehost, puedes replatform o refactor fácilmente.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;AWS Database Migration Service (DMS)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Especial para bases de datos.&lt;/li&gt;
&lt;li&gt;Soporta migraciones homogéneas (Oracle → Oracle) y heterogéneas (SQL Server → Aurora).&lt;/li&gt;
&lt;li&gt;Integra con &lt;strong&gt;Fleet Advisor&lt;/strong&gt; para planear migraciones de DB.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;AWS Migration Hub&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;El panel central de todos los proyectos de migración.&lt;/li&gt;
&lt;li&gt;Muestra el estado de servidores y apps, sin importar qué herramienta uses.&lt;/li&gt;
&lt;li&gt;Piensa en él como el &lt;strong&gt;coordinador de la mudanza&lt;/strong&gt; que rastrea cada camión y caja.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;4. Estrategias de Migración (Las 6 R’s)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Estas seguro aparecen en el examen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rehost (Lift &amp;amp; Shift):&lt;/strong&gt; Mover tal cual. Ej: VM → EC2.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replatform:&lt;/strong&gt; Pequeños cambios. Ej: App → Elastic Beanstalk, DB → RDS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refactor (Re-arquitectar):&lt;/strong&gt; Cambios grandes. Ej: Monolito → microservicios con Lambda.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repurchase:&lt;/strong&gt; Reemplazar con SaaS. Ej: CRM on-prem → Salesforce.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retire:&lt;/strong&gt; Dar de baja apps que no se usan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retain:&lt;/strong&gt; Mantener on-prem por ahora.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;Conclusiones&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Service Control Policies (SCPs):&lt;/strong&gt; Son las barandillas de AWS Organizations. No dan acceso, pero definen los límites máximos de permisos. La mejor práctica: dejar FullAWSAccess en root y aplicar listas de denegar en OUs para flexibilidad y seguridad.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Migraciones:&lt;/strong&gt; No es solo levantar y mover servidores. Requiere planeación, descubrir con ADS, mover con MGN o DMS, dar seguimiento con Migration Hub y finalmente aplicar la estrategia adecuada de las 6 R’s. Así la migración es predecible y costo-eficiente.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;¡Eso es todo! 🎬 Ya viste dos de los temas más pesados del examen AWS SAP: &lt;strong&gt;SCPs&lt;/strong&gt; y &lt;strong&gt;Migraciones&lt;/strong&gt;. Ambos son críticos no solo para aprobar el examen, sino también para trabajar como un verdadero Solutions Architect en el mundo real.&lt;/p&gt;

&lt;p&gt;Si este artículo te ayudó, aquí está lo que puedes hacer después:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sígueme en &lt;a href="https://x.com/TerraSpacio" rel="noopener noreferrer"&gt;X&lt;/a&gt; and &lt;a href="https://www.youtube.com/@TerraSpacio" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/strong&gt; para más contenido de AWS, DevOps y Terraform, amigable para principiantes pero también útil para el examen.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deja un comentario&lt;/strong&gt; con tus pensamientos, tu propio camino en el AWS SAP o preguntas que quieras que cubra después.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pronto crearé un repositorio en GitHub.&lt;/strong&gt; donde compartiré recursos y ejemplos de práctica.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;¡Éxito en tu camino al AWS SAP, y recuerda: preparación + práctica = aprobar como un pro! 🚀&lt;/p&gt;

</description>
      <category>awssapcert</category>
      <category>awsscp</category>
      <category>awsmigracion</category>
      <category>estudiaaws</category>
    </item>
    <item>
      <title>How to Pass the AWS Solutions Architect Professional Certification Like a Real Pro</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Tue, 02 Sep 2025 17:20:50 +0000</pubDate>
      <link>https://dev.to/aws-builders/how-to-pass-the-aws-solutions-architect-professional-certification-like-a-real-pro-3j0j</link>
      <guid>https://dev.to/aws-builders/how-to-pass-the-aws-solutions-architect-professional-certification-like-a-real-pro-3j0j</guid>
      <description>&lt;p&gt;Imagine this: after months of studying, practice exams, and a few moments of doubt, you finally hit that submit button. Then the screen flashes with the words you’ve been waiting for: &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Congratulations, you have passed the AWS Certified Solutions Architect – Professional.”&lt;/strong&gt; 🎉&lt;/p&gt;

&lt;p&gt;That was me not long ago, and let me tell you, the feeling was just like finishing a big meal after hours in the kitchen. Full of relief, pride, and maybe even a little exhaustion.&lt;/p&gt;

&lt;h2&gt;
  
  
  This certification is no small feat it’s all about mastering:
&lt;/h2&gt;

&lt;p&gt;🌐 Designing complex architectures on AWS&lt;br&gt;
🔒 Security, compliance &amp;amp; governance at scale&lt;br&gt;
⚙️ Cost, performance &amp;amp; resilience optimization&lt;br&gt;
🛠️ Migration &amp;amp; modernization of workloads&lt;br&gt;
📊 Balancing trade-offs for real business needs&lt;/p&gt;

&lt;p&gt;But here’s the thing: passing the exam isn’t just about memorizing questions. It’s about really understanding how AWS works at scale. And for me, two topics stood out more than anything else:&lt;/p&gt;

&lt;p&gt;✅ Service Control Policies (SCPs) – the guardrails that keep your AWS accounts safe and consistent.&lt;br&gt;
✅ Migrations – the strategies that help move workloads to AWS without breaking the business.&lt;/p&gt;

&lt;p&gt;In this article, I’ll share my insights on these two areas. I’ll keep it simple, using real world analogies and examples that you can actually apply. Because I know many of you are learning AWS as a second language, or maybe just getting started in the cloud. And if you’re already an expert, consider this a refreshing walk through with a new perspective.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Service Control Policies (SCPs)&lt;/strong&gt; – the guardrails that keep your AWS accounts safe and consistent.&lt;br&gt;
✅ &lt;strong&gt;Migrations&lt;/strong&gt; – the strategies that help move workloads to AWS without breaking the business.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Service Control Policies (SCPs) – The Technical Part&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Alright, let’s break down what AWS documentation says about &lt;strong&gt;Service Control Policies (SCPs)&lt;/strong&gt; in a way that’s easier to digest:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Part of AWS Organizations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SCPs live inside &lt;strong&gt;AWS Organizations&lt;/strong&gt;, which is the service you use to manage multiple AWS accounts in one place.&lt;/li&gt;
&lt;li&gt;Important: SCPs only work if you enable &lt;em&gt;“all features”&lt;/em&gt;. If you only have consolidated billing, SCPs won’t be available.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;SCPs Do Not Grant Permissions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;This is the most important thing: &lt;strong&gt;SCPs don’t give access&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;They simply define the &lt;strong&gt;maximum permissions&lt;/strong&gt; an account can ever have.&lt;/li&gt;
&lt;li&gt;Example: if IAM says “yes” but SCP says “no,” the result is &lt;strong&gt;no&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hierarchy and Inheritance&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SCPs can be attached at the &lt;strong&gt;root&lt;/strong&gt;, to &lt;strong&gt;Organizational Units (OUs)&lt;/strong&gt;, or to &lt;strong&gt;individual accounts&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Rules flow downward: a root SCP impacts everything; OU SCPs impact all accounts inside that OU.&lt;/li&gt;
&lt;li&gt;Effective permissions = intersection of SCPs + IAM. For an action to work, it must be allowed everywhere.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Allow List vs Deny List&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Allow List (deny by default):&lt;/strong&gt; Everything is denied unless you allow it. Very strict, lots of overhead.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deny List (allow by default):&lt;/strong&gt; Everything is allowed unless you deny it. Easier to manage and most common.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Impact on Permissions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SCPs affect &lt;strong&gt;IAM users and roles&lt;/strong&gt; in &lt;strong&gt;member accounts&lt;/strong&gt;, including the root user.&lt;/li&gt;
&lt;li&gt;They do &lt;strong&gt;not&lt;/strong&gt; affect the management account or service-linked roles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Centralized Control&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;SCPs help organizations keep accounts under control by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Blocking specific services&lt;/li&gt;
&lt;li&gt;Enforcing regional restrictions&lt;/li&gt;
&lt;li&gt;Ensuring compliance&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don’t start at the root. Test in an OU first to avoid blocking critical services.&lt;/li&gt;
&lt;li&gt;Use &lt;strong&gt;IAM last accessed data&lt;/strong&gt; or &lt;strong&gt;CloudTrail&lt;/strong&gt; to check usage before applying restrictions.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;🏠 The Family House Analogy (Root, OUs, SCPs)&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Root = the parents’ house.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Each OU = a different child’s bedroom.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Each account = the kid who lives in that bedroom.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Scenario 1: Root Deny (bad idea)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parents put a lock on the fridge: “Nobody can eat ice cream.”&lt;/li&gt;
&lt;li&gt;Even if one kid’s rules say they can, the house rule applies → no ice cream for anyone.&lt;/li&gt;
&lt;li&gt;That’s what happens if you deny at root: no exceptions possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Scenario 2: Root Full Access + OU Deny (best practice)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parents say: “Everyone can eat anything.” (default FullAWSAccess).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Each bedroom (OU) adds its own rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kid #1 → No ice cream.&lt;/li&gt;
&lt;li&gt;Kid #2 → No candy.&lt;/li&gt;
&lt;li&gt;Kid #3 → Full access.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;If Kid #1 suddenly needs ice cream for a school project, just move them into Kid #3’s room.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;That’s OU-level deny: flexible and easier to manage.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Scenario 3: Allow List at Root (too strict)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Parents put a giant whiteboard: “Only pizza and apples allowed.”&lt;/li&gt;
&lt;li&gt;Every new food = update the board. Too much work.&lt;/li&gt;
&lt;li&gt;That’s an allow list at root → high overhead.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;In plain English:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Root deny = fridge locked for all, no exceptions.&lt;/li&gt;
&lt;li&gt;OU deny = bedroom rules, exceptions possible.&lt;/li&gt;
&lt;li&gt;Allow list = whiteboard nightmare.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 The winning strategy: &lt;strong&gt;Root = leave FullAWSAccess. OU = apply deny lists. Exceptions = move accounts.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Migrations&lt;/strong&gt; What You Need to Know for the AWS SAP Exam
&lt;/h1&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Migration Planning&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;When AWS talks about migrations, they don’t just mean “move everything to the cloud and hope it works.” They want you to &lt;strong&gt;plan like a pro&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discover what you have (servers, databases, apps).&lt;/li&gt;
&lt;li&gt;Group things logically (applications, dependencies).&lt;/li&gt;
&lt;li&gt;Choose the right migration strategy (the famous &lt;strong&gt;6 R’s&lt;/strong&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This planning stage is like preparing for a big family move. You don’t just grab boxes randomly. You will make a list, decide what goes, what stays, and what needs upgrading. Right?&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;AWS Application Discovery Service (ADS)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This tool is your &lt;strong&gt;inventory manager&lt;/strong&gt; before moving day. It automatically scans your on premises environment and collects details about servers, VMs, databases, and even network connections.&lt;/p&gt;

&lt;p&gt;It has &lt;strong&gt;three main ways to discover data&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Agentless Collector&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No need to install anything on each server.&lt;/li&gt;
&lt;li&gt;Great for VMware environments.&lt;/li&gt;
&lt;li&gt;Collects basic info: hostname, IP, CPU, RAM, disk usage.&lt;/li&gt;
&lt;li&gt;Limitation: cannot see running processes or network dependencies.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Agent-based Discovery Agent&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installed directly on each server.&lt;/li&gt;
&lt;li&gt;Provides deep insights: processes, network flows, performance data.&lt;/li&gt;
&lt;li&gt;Best if you need to understand &lt;strong&gt;how servers talk to each other&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;File-based Import&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For when you already have an inventory from another system.&lt;/li&gt;
&lt;li&gt;You can import that data straight into &lt;strong&gt;Migration Hub&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;📊 &lt;strong&gt;What happens after discovery?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Data is sent to your &lt;strong&gt;Migration Hub Home Region&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;You can group servers into applications.&lt;/li&gt;
&lt;li&gt;Export the data to S3, Athena, or QuickSight for cost analysis.&lt;/li&gt;
&lt;li&gt;Use the info to &lt;strong&gt;right size EC2 instances&lt;/strong&gt; and plan costs more accurately.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Migration Services: Moving from VMware or On-Prem to AWS&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Once planning is done, it’s time to move the boxes. For SAP exam purposes, you need to know the main AWS services:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;AWS Application Migration Service (MGN)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Think of this as the &lt;strong&gt;lift and shift champion&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;It replicates servers into AWS and automatically converts them into EC2 instances.&lt;/li&gt;
&lt;li&gt;Great for minimizing downtime.&lt;/li&gt;
&lt;li&gt;Works with &lt;strong&gt;Migration Hub&lt;/strong&gt; so you can track progress.&lt;/li&gt;
&lt;li&gt;Bonus: after rehosting, you can later replatform or refactor easily.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;AWS Database Migration Service (DMS)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specifically for migrating databases.&lt;/li&gt;
&lt;li&gt;Supports homogeneous migrations (Oracle → Oracle) and heterogeneous (SQL Server → Aurora).&lt;/li&gt;
&lt;li&gt;Also integrates with &lt;strong&gt;Fleet Advisor&lt;/strong&gt; to discover and plan DB migrations.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;AWS Migration Hub&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The central dashboard for all migration projects.&lt;/li&gt;
&lt;li&gt;Shows the status of servers and applications, regardless of which tool you use.&lt;/li&gt;
&lt;li&gt;Think of it like the &lt;strong&gt;moving company coordinator&lt;/strong&gt; that tracks every truck and box.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Migration Strategies (The 6 R’s)&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You’ll definitely see these on the exam:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rehost (Lift &amp;amp; Shift):&lt;/strong&gt; Move as-is. Example: VM → EC2.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replatform:&lt;/strong&gt; Small changes. Example: App → Elastic Beanstalk, DB → RDS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Refactor (Re-architect):&lt;/strong&gt; Big changes. Example: Monolith → microservices with Lambda.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repurchase:&lt;/strong&gt; Replace with SaaS. Example: On-prem CRM → Salesforce.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retire:&lt;/strong&gt; Decommission unused apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Retain:&lt;/strong&gt; Keep it on-prem for now.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✅ &lt;strong&gt;Conclusions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Service Control Policies (SCPs):&lt;/strong&gt; They are the guardrails of AWS Organizations. SCPs don’t give access but define the maximum boundaries of permissions. The best approach is to leave FullAWSAccess at the root and apply deny lists at the OU level for flexibility and safer management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Migrations:&lt;/strong&gt; A successful migration is not just lifting and shifting servers. It requires planning, discovering your environment with ADS, moving workloads with MGN or DMS, tracking with Migration Hub, and finally applying the right strategy from the 6 R’s. With the right approach, migrations become predictable and cost-efficient.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s a wrap! 🎬 You’ve now seen two of the heaviest topics for the AWS SAP exam: &lt;strong&gt;SCPs&lt;/strong&gt; and &lt;strong&gt;Migrations&lt;/strong&gt;. Both are critical to not just passing the exam, but also working as a real Solutions Architect in the field.&lt;/p&gt;

&lt;p&gt;If this article helped you, here’s what you can do next:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Follow me on &lt;a href="https://x.com/TerraSpacio" rel="noopener noreferrer"&gt;X&lt;/a&gt; and &lt;a href="https://www.youtube.com/@TerraSpacio" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt;&lt;/strong&gt; for more AWS, DevOps, and Terraform content that’s beginner-friendly but also exam-ready.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leave a comment&lt;/strong&gt; with your thoughts, your own AWS SAP journey, or questions you’d like me to cover next.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coming soon, a GitHub repo&lt;/strong&gt; where I’ll be sharing supporting resources and examples to practice with.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Good luck with your AWS SAP journey, and remember: preparation + practice = passing like a pro! &lt;/p&gt;

</description>
      <category>awscertification</category>
      <category>awssap</category>
      <category>awsmigrationandscp</category>
      <category>awscommunity</category>
    </item>
    <item>
      <title>Secure Your AWS Pipeline: Step-by-Step Guide to VPC Integration-part 2</title>
      <dc:creator>Augusto Valdivia</dc:creator>
      <pubDate>Thu, 20 Mar 2025 21:23:46 +0000</pubDate>
      <link>https://dev.to/aws-builders/secure-your-aws-pipeline-step-by-step-guide-to-vpc-integration-part-2-hdh</link>
      <guid>https://dev.to/aws-builders/secure-your-aws-pipeline-step-by-step-guide-to-vpc-integration-part-2-hdh</guid>
      <description>&lt;h1&gt;
  
  
  Welcome back!
&lt;/h1&gt;

&lt;p&gt;I hope you still have an appetite for learning more about CICD and how to secure your deployments. In Part 1, you built your first AWS CICD pipeline.  Awesome job, but as any great chef knows, it’s not just about making a delicious dish; you must also keep your kitchen organized and safe. &lt;/p&gt;

&lt;p&gt;Now that your pipeline is up and running, it’s time to take the next step: securing access to your private resources within a VPC and setting up proper permissions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;In this part, we’ll cover:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is a VPC and why does it matter?&lt;/li&gt;
&lt;li&gt;How to securely connect your pipeline to a production environment in a private subnet?&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Let’s dive right in! 🍽️
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;What is a VPC and Why Does It Matter?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before we start securing things, let’s talk about what a VPC (Virtual Private Cloud) is. Imagine your AWS environment as a massive restaurant kitchen. A VPC is like having separate workstations one for chopping, one for cooking, and one for plating. Each station (or subnet, I'll elaborate on this further shortly.) has its purpose, and you decide who gets access to each. &lt;/p&gt;

&lt;p&gt;A VPC allows you to create an isolated section in AWS where you can launch your resources securely. It’s like having a private kitchen that only your team can enter, keeping unwanted guests or security risks out. Within a VPC, you can set up public and private subnets to control where traffic flows, ensuring that sensitive infrastructure like databases stays protected from the outside world.&lt;/p&gt;

&lt;p&gt;Now that we’ve got a basic idea, let’s move on to securely connecting our pipeline to a private subnet. If you’re looking for a more technical explanation, I will include all the necessary documentation for further study in the sources section of this article series.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to Securely Connect Your Pipeline to a Production Environment in a Private Subnet?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's imagine that your pipeline is like a chef sending prepared dishes to the right station. But what if the final plating area is in a private section of the restaurant? You need a secure way to get the food there without letting unauthorized people in. That’s where private subnets come in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You might be wondering, "What is a private subnet?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A private subnet is an isolated area within your VPC that doesn’t have direct internet access. To allow your pipeline to deploy into a private subnet, you’ll need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A NAT Gateway or VPC Endpoint, This acts like a secure delivery pass, letting the pipeline reach private resources without exposing them to the public internet.&lt;/li&gt;
&lt;li&gt;Proper Security Group Rules, Think of these as access control rules that decide which resources can talk to each other.&lt;/li&gt;
&lt;li&gt;IAM Roles and Policies, You don’t want just anyone making changes in your environment. IAM roles ensure only the right processes have access to deploy inside the VPC.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In this second part, we will focus on building and using a NAT Gateway to enable secure updates for an application within a Private Subnet.&lt;/p&gt;

&lt;p&gt;So, your application lives in a private subnet, safe from the public internet, but wait, How do you update it? Private subnets don’t have direct internet access, which is great for security but tricky for getting updates. This is where a NAT Gateway comes in, acting like a controlled exit door.&lt;/p&gt;

&lt;p&gt;Think of it like a high end restaurant’s storage room. Only authorized staff can go in and out, ensuring that only fresh ingredients (updates) make their way into the kitchen without letting unwanted visitors (security threats) sneak in.&lt;/p&gt;

&lt;p&gt;By adding a NAT Gateway, your private instances can access the internet to download updates, pull dependencies, etc. while being shielded from direct exposure. &lt;strong&gt;Sounds exciting,Doesn't it?&lt;/strong&gt; and here’s how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The NAT Gateway sits in a public subnet and has an Elastic IP assigned to it.&lt;/li&gt;
&lt;li&gt;A route table is configured so that private subnets send outbound traffic to the NAT Gateway instead of directly to the internet.&lt;/li&gt;
&lt;li&gt;The pipeline (running in CodePipeline) can now deploy updates to your private resources securely.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjqev5f7g7yx5x48mdzy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvjqev5f7g7yx5x48mdzy.png" alt="VPC" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8yuok4n6mesxw90zzro.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft8yuok4n6mesxw90zzro.png" alt="NATGATEWAY" width="800" height="673"&gt;&lt;/a&gt;&lt;br&gt;
Credits to AWS documentation[1]. &lt;/p&gt;

&lt;p&gt;At this point, you should have a solid high-level understanding of what a VPC is and how to protect your private resources. Now, let's explore how Terraform can enhance this configuration, making it even more secure with just a few lines of code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here’s what to expect when using this Terraform template:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ Sets up a VPC&lt;br&gt;
✅ Creates public and private subnets&lt;br&gt;
✅ Configures a NAT Gateway for internet access from private subnets&lt;br&gt;
✅ Sets up route tables for proper traffic flow&lt;br&gt;
✅ Specifies Security Groups&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Create a VPC
resource "aws_vpc" "main_vpc" {
  cidr_block = "10.0.0.0/16"
}

# Create Public and Private Subnets
resource "aws_subnet" "public_subnet" {
  vpc_id                  = aws_vpc.main_vpc.id
  cidr_block              = "10.0.1.0/24"
  map_public_ip_on_launch = true
}

resource "aws_subnet" "private_subnet" {
  vpc_id     = aws_vpc.main_vpc.id
  cidr_block = "10.0.2.0/24"
}

# Create an Internet Gateway for Public Subnet
resource "aws_internet_gateway" "gw" {
  vpc_id = aws_vpc.main_vpc.id
}

# Create a NAT Gateway for Private Subnet
resource "aws_eip" "nat_eip" {}

resource "aws_nat_gateway" "nat_gw" {
  allocation_id = aws_eip.nat_eip.id
  subnet_id     = aws_subnet.public_subnet.id
}

# Route Table for Public Subnet (Direct Internet Access)
resource "aws_route_table" "public_rt" {
  vpc_id = aws_vpc.main_vpc.id

  route {
    cidr_block = "0.0.0.0/0"
    gateway_id = aws_internet_gateway.gw.id
  }
}

resource "aws_route_table_association" "public_assoc" {
  subnet_id      = aws_subnet.public_subnet.id
  route_table_id = aws_route_table.public_rt.id
}

# Route Table for Private Subnet (Internet Access via NAT Gateway)
resource "aws_route_table" "private_rt" {
  vpc_id = aws_vpc.main_vpc.id

  route {
    cidr_block = "0.0.0.0/0"
    nat_gateway_id = aws_nat_gateway.nat_gw.id
  }
}

resource "aws_route_table_association" "private_assoc" {
  subnet_id      = aws_subnet.private_subnet.id
  route_table_id = aws_route_table.private_rt.id
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What’s Next?
&lt;/h2&gt;

&lt;p&gt;With this setup, your CICD pipeline can securely deploy updates to resources in a private subnet while still having controlled internet access via a NAT Gateway. This means your private environment stays protected while getting the latest updates just like a top tier restaurant keeping its ingredients fresh without letting anyone walk in off the street.&lt;/p&gt;

&lt;h2&gt;
  
  
  Want to see it all in action?
&lt;/h2&gt;

&lt;p&gt;Complete this architectural deployment utilizing the full &lt;a href="https://github.com/ValAug/AWS-Pipeline-Step-by-Step-Guide-to-VPC-Integration?tab=readme-ov-file" rel="noopener noreferrer"&gt;GitHub Repository - Create a CICD Pipeline with Terraform AWS-Pipeline-Step-by-Step-Guide-to-VPC-Integration&lt;/a&gt;. You're welcome to browse through other projects I've worked using this &lt;a href="https://github.com/ValAug" rel="noopener noreferrer"&gt;link&lt;/a&gt;. And don’t forget to:&lt;/p&gt;

&lt;p&gt;✅ Follow me on &lt;a href="https://x.com/TerraSpacio" rel="noopener noreferrer"&gt;X&lt;/a&gt; and &lt;a href="https://www.youtube.com/@TerraSpacio" rel="noopener noreferrer"&gt;YouTube&lt;/a&gt; for more AWS, DevOps, and Terraform tips &lt;br&gt;
✅ Comment below with any questions or suggestions &lt;br&gt;
✅ Check out the GitHub repo for the full Terraform setup&lt;/p&gt;

&lt;p&gt;🚀 Happy building!&lt;/p&gt;

&lt;h3&gt;
  
  
  Sources:
&lt;/h3&gt;

&lt;p&gt;[1] &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-scenarios.html&lt;/a&gt;&lt;br&gt;
[2] &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>awsproject</category>
      <category>terraform</category>
      <category>devops</category>
      <category>awssecurity</category>
    </item>
  </channel>
</rss>
