<?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: Willie Reyes</title>
    <description>The latest articles on DEV Community by Willie Reyes (@cyb3rcloud8888).</description>
    <link>https://dev.to/cyb3rcloud8888</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%2F1236349%2F60e8f978-f2a6-4a2f-abdc-73cb29164d45.jpg</url>
      <title>DEV Community: Willie Reyes</title>
      <link>https://dev.to/cyb3rcloud8888</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cyb3rcloud8888"/>
    <language>en</language>
    <item>
      <title>Cloudfront Functions, WAF</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Fri, 28 Nov 2025 16:26:19 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/cloudfront-functions-waf-1oak</link>
      <guid>https://dev.to/cyb3rcloud8888/cloudfront-functions-waf-1oak</guid>
      <description>&lt;p&gt;Today we gonna to explain a particulary scenario in which the main idea is allow only specific ip address to reach a web site exposed using cloudfront.&lt;/p&gt;

&lt;p&gt;this is the architecture&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%2Ftgs52xmq3s74h26y8wta.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%2Ftgs52xmq3s74h26y8wta.png" alt=" " width="676" height="757"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before to start we need to explain differents resources inside aws&lt;/p&gt;

&lt;p&gt;Simple Storage Service or S3  (buckets)&lt;br&gt;
Is the most use service for object storage, you can save here any kind of file.&lt;/p&gt;

&lt;p&gt;Cloudfront&lt;br&gt;
Is the CDN or Content Delivery Network in AWS, this allows to that users around the globe use your web applications or apis in a faster and reliable way because the concept of CDN is to offer cache in the most near point of presence of aws, for example assume that you have clients in Europe and your application is hosted in Virginia, when you use cloudfront you application take less time to load at the final user than if you haven't this services.&lt;/p&gt;

&lt;p&gt;Cloudfront functions &lt;br&gt;
Is an improve options to allow deploy differents features to our sites, for example if you want to fix vulnerabilities related to HSTS  in your sites you can use specific function to add this headers to our sites, or for example like this case if you want to allow only few ip address to reach your site and block the rest of the internet you can use specific functions to this.&lt;/p&gt;

&lt;p&gt;WAF&lt;br&gt;
Web Application Firewall native in AWS is the layer 7 security feature to protect our api web apps and others, this works with ALB, API gateway, Cloudfront and others resources inside AWS.&lt;/p&gt;

&lt;p&gt;The common architecture for deploying statics sites in aws is using the architecture S3 bucket to public the site and integrate that with Cloudfront&lt;/p&gt;

&lt;p&gt;To secure this architecture is important to never expose the bucket s3 to internet directly and that is the reason of using cloudfront.&lt;/p&gt;

&lt;p&gt;You can configure this at origin option in cloudfront and copy the policy to the bucket s3 that has your web site&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%2Fltc2mse2n6vxm88drdzf.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%2Fltc2mse2n6vxm88drdzf.png" alt=" " width="478" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;copy the policy OAC to the s3 bucket &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%2F65ajgk56ephnfuxy9zib.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%2F65ajgk56ephnfuxy9zib.png" alt=" " width="363" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the s3 bucket you have this enable for S3 static website hosting &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%2F62csdqlxbi3gki44a2pa.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%2F62csdqlxbi3gki44a2pa.png" alt=" " width="800" height="284"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;when you try to reach the url show a error message this is because the OAC configuration.&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%2F4usmbyclw6ki9f8jshn9.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%2F4usmbyclw6ki9f8jshn9.png" alt=" " width="760" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;another security configuration is this one  "Block public access" this is a must.&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%2Fk5cfy9lpidhr5j6bj1j4.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%2Fk5cfy9lpidhr5j6bj1j4.png" alt=" " width="604" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;so once you have your application working using cloudfront + S3 now we explain the scenario.&lt;/p&gt;

&lt;p&gt;Some X company wants to only allow a specific ip from a VPN services to reach the site exposed in cloudfront.&lt;/p&gt;

&lt;p&gt;for doing this you can use WAF or cloudfront functions&lt;/p&gt;

&lt;p&gt;In waf you can configure custom rules one for allow the specific ip address and then at default action you can put as block.&lt;/p&gt;

&lt;p&gt;the expected behavior is that when you use the vpn the site loads correctly and without show a 403 error.&lt;/p&gt;

&lt;p&gt;the whitelist rule is this &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%2Fl92bz4y5is6rlisynpm9.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%2Fl92bz4y5is6rlisynpm9.png" alt=" " width="673" height="724"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;the default block is here&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%2Fxwwhkr87k3hu9qxk7xdi.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%2Fxwwhkr87k3hu9qxk7xdi.png" alt=" " width="691" height="483"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;when I did the test show error whitout the vpn&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%2Fp4mant7n3gr5mhc5lnj4.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%2Fp4mant7n3gr5mhc5lnj4.png" alt=" " width="800" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and with the vpn works fine the site&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%2F5qpzuff3lzh7jw6l3em6.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%2F5qpzuff3lzh7jw6l3em6.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;be aware if you have some custom error pages at the cloudfront configuration because this can cause issues &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%2Fuvhyu1ve4yxbbywedmnx.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%2Fuvhyu1ve4yxbbywedmnx.png" alt=" " width="800" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally I check in waf console and see some blocks and some allow traffic &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%2Fr8por7f3tlys7t9czp8z.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%2Fr8por7f3tlys7t9czp8z.png" alt=" " width="800" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;the other option is using cloudfronts functions &lt;/p&gt;

&lt;p&gt;you need to create a function and associate with the cloudfront distribution&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%2Ft4uf5tfspn04ociho3v8.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%2Ft4uf5tfspn04ociho3v8.png" alt=" " width="800" height="211"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;this is the function code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function handler(event) {
    var request = event.request;
    var clientIP = event.viewer.ip;

    // Tu IP de VPN (puedes agregar múltiples)
    var allowedIPs = [
        '45.45.45.45'
    ];

    // Verificar si la IP está permitida
    if (allowedIPs.indexOf(clientIP) === -1) {
        // IP no permitida - retornar 403
        return {
            statusCode: 403,
            statusDescription: 'Forbidden',
            headers: {
                'content-type': { value: 'text/html; charset=utf-8' },
                'cache-control': { value: 'no-store' }
            },
            body: {
                encoding: 'text',
                data: '&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;lt;title&amp;gt;Access Denied&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h1&amp;gt;403 - Access Denied&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;VPN connection required to access this resource.&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;'
            }
        };
    }

    // IP permitida - continuar normalmente
    return request;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;then you need to publish your function and associated with the distribution&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%2Fs5bukz5w0qsyqsxw2si8.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%2Fs5bukz5w0qsyqsxw2si8.png" alt=" " width="800" height="266"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;finally do some test and works similar to aws WAF.&lt;/p&gt;

&lt;p&gt;without vpn&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%2Fo19nuqjwohyl3zpdsmmt.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%2Fo19nuqjwohyl3zpdsmmt.png" alt=" " width="676" height="249"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;with vpn&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%2F50k7f0lya2bxviiqi1nc.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%2F50k7f0lya2bxviiqi1nc.png" alt=" " width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope that this help &lt;/p&gt;

&lt;p&gt;to the next time.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloudcomputing</category>
      <category>cloudsecurity</category>
    </item>
    <item>
      <title>Logs de AWS ALB with Athena</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Fri, 28 Nov 2025 02:04:33 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/logs-de-aws-alb-with-athena-365h</link>
      <guid>https://dev.to/cyb3rcloud8888/logs-de-aws-alb-with-athena-365h</guid>
      <description>&lt;p&gt;Un aspecto importante en seguridad es contar con logs, en AWS se pueden activar algunos logs importantes en diferentes recursos por ejemplo a nivel de Virtual Private Cloud VPC es mandatorio activar los flow logs para poder analizar trafico entre los recursos que se encuentran dentro de la VPC o que tienen una ENI o interfaz de red.&lt;/p&gt;

&lt;p&gt;En este post vamos a realizar una configuracion para configurar logs en los ALB o Application Load Balancer, este recurso me permite poder exponer mis aplicaciones web hacia el internet o tambien de manera privada dentro de mi private subnet.&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%2F9xgr2jf1apv8y9o8xvcf.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%2F9xgr2jf1apv8y9o8xvcf.jpg" alt=" " width="800" height="849"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El ALB cuenta con dos configuraciones para logs una es los logs de acceso que registran las peticiones http dentro de los campos mas importantes tenemos el tipo de conexion el timestamp ip y puerto cliente asi como la direccion ip y puerto destino luego podemos revisar por codigo de respuesta asi como el uri path ,el user agent y el tipo de peticion POST GET estos logs nos sirve para ver con mayor detalle el tipo de request que esta recibiendo el balanceador y poder identificar patrones de ataque existen otros campos que a mas detalles lo puedes encontrar en este link. &lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-access-logs.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego tenemos logs de conexion este nos facilita informacion detallada de las peticiones enviadas al balanceador este log nos da cierta informacion como direccion ip y puerto del cliente, el puerto listener las configuraciones de TLS entre otras que nos sirve para poder determinar algun tema de latencia o tiempo de respuesta, aqui el detalle de los campos del log de conexion. &lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-connection-logs.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-connection-logs.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ok entonces para poder revisar estos logs la primera acción es habilitar dicha configuración a nivel de los atributos del balanceador.&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%2Fr7vm3c79n7g7uwz6j3bh.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%2Fr7vm3c79n7g7uwz6j3bh.png" alt=" " width="800" height="230"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;en la parte final de la configuracion de atributos o parametros encontramos la seccion de monitoreo&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%2Fwes7evov9qxhmeuxfr9r.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%2Fwes7evov9qxhmeuxfr9r.png" alt=" " width="800" height="103"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;para modificar dichos parametros damos click en editar atributos y nos dirigimos al final en donde podemos configurar el bucket s3 destino que guardara todos los logs&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%2Fxfszmful0o6i9ss67scp.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%2Fxfszmful0o6i9ss67scp.png" alt=" " width="800" height="144"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En este caso solametne activare los logs de acceso.&lt;/p&gt;

&lt;p&gt;Para esto ya se debe contar con un bucket s3 creado y configurar con una politica especifica que se detalla acontinuacion.&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",
      "Principal": {
        "Service": "logdelivery.elasticloadbalancing.amazonaws.com"
      },
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/prefix/AWSLogs/123456789012/*"
    }
  ]
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Una vez creada esta configuracion en el balanceador se crearan carpetas dentro del s3 siguiendo este formato.&lt;/p&gt;

&lt;p&gt;AWSLogs/#decuenta/elasticloadbalancing/region/2025/mes/dias&lt;/p&gt;

&lt;p&gt;Dentro de la carpeta de cada ustedes visualizaran ya los diferentes archivos con formato del numero de cuenta el nombre del balanceador y con una extension log.gz, dependiendo de la cantidad de trafico que reciba su aplicacion pueden ser miles de archivos&lt;/p&gt;

&lt;p&gt;Para poder realizar un analisis en estos archivos debemos usar el servicio de Athena&lt;/p&gt;

&lt;p&gt;Amazon Athena es un servicio interactivo para realizar querys o consultas a datos que se encuentren en buckets S3 usando el estandar SQL.&lt;/p&gt;

&lt;p&gt;Para activar la configuracion en athena ingresamos y buscamos la seccion de editor de querys&lt;/p&gt;

&lt;p&gt;Aqui va a solicitar la creacion o el uso de un bucket s3 para guardar los resultados de las consultas que se realicen&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%2Fuvz3mgqqd504n326d9qf.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%2Fuvz3mgqqd504n326d9qf.png" alt=" " width="800" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aqui seleccionamos el bucket s3 destino y asi nos dejara continuar con las configuraciones&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%2Fjm96xzn9nlodwan4ffn9.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%2Fjm96xzn9nlodwan4ffn9.png" alt=" " width="800" height="205"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego procedemos a crear nuestra base de datos para dentro de esta poder crear las tablas que se enlazaran a nuestros de logs de balanceador en el S3&lt;/p&gt;

&lt;p&gt;Usamos el query. CREATE DATABASE AWSLOGS&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%2Fvsy302pb7btjwi7nn782.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%2Fvsy302pb7btjwi7nn782.png" alt=" " width="800" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego podemos crear la tabla utilizando el siguiente query&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CREATE EXTERNAL TABLE IF NOT EXISTS alb_access_logs (&lt;br&gt;
            type string,&lt;br&gt;
            time string,&lt;br&gt;
            elb string,&lt;br&gt;
            client_ip string,&lt;br&gt;
            client_port int,&lt;br&gt;
            target_ip string,&lt;br&gt;
            target_port int,&lt;br&gt;
            request_processing_time double,&lt;br&gt;
            target_processing_time double,&lt;br&gt;
            response_processing_time double,&lt;br&gt;
            elb_status_code int,&lt;br&gt;
            target_status_code string,&lt;br&gt;
            received_bytes bigint,&lt;br&gt;
            sent_bytes bigint,&lt;br&gt;
            request_verb string,&lt;br&gt;
            request_url string,&lt;br&gt;
            request_proto string,&lt;br&gt;
            user_agent string,&lt;br&gt;
            ssl_cipher string,&lt;br&gt;
            ssl_protocol string,&lt;br&gt;
            target_group_arn string,&lt;br&gt;
            trace_id string,&lt;br&gt;
            domain_name string,&lt;br&gt;
            chosen_cert_arn string,&lt;br&gt;
            matched_rule_priority string,&lt;br&gt;
            request_creation_time string,&lt;br&gt;
            actions_executed string,&lt;br&gt;
            redirect_url string,&lt;br&gt;
            lambda_error_reason string,&lt;br&gt;
            target_port_list string,&lt;br&gt;
            target_status_code_list string,&lt;br&gt;
            classification string,&lt;br&gt;
            classification_reason string,&lt;br&gt;
            conn_trace_id string&lt;br&gt;
            )&lt;br&gt;
            ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'&lt;br&gt;
            WITH SERDEPROPERTIES (&lt;br&gt;
            'serialization.format' = '1',&lt;br&gt;
            'input.regex' = &lt;br&gt;
        '([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) (.*) (- |[^ ]*)\" \"([^\"]*)\" ([A-Z0-9-_]+) ([A-Za-z0-9.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^\\s]+?)\" \"([^\\s]+)\" \"([^ ]*)\" \"([^ ]*)\" ?([^ ]*)? ?( .*)?'&lt;br&gt;
            )&lt;br&gt;
            LOCATION 's3://amzn-s3-demo-bucket/access-log-folder-path/'&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Aqui debemos editar la configuracion del S3 &lt;/p&gt;

&lt;p&gt;s3://logsawsalb/AWSLogs/123456789/elasticloadbalancing/us-east-1/'&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%2F0p37d0a83xhv9kmsmewg.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%2F0p37d0a83xhv9kmsmewg.png" alt=" " width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;una vez editado ejecutamos el query y posterior a esto ya podemos ejecutar diferentes querys para poder identificar por ejemplo las direcciones ip con mas trafico en un determinado tiempo&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT client_ip,
       COUNT(*) as request_count
FROM alb_access_logsnonpartioned
WHERE time &amp;gt;= '2025-11-27T13:30:00'
  AND time &amp;lt; '2025-11-27T13:40:00'
GROUP BY client_ip
ORDER BY request_count DESC;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;o uno similar a este para poder ver los request en tiempo especifico.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;SELECT *
FROM alb_access_logsnonpartioned
WHERE time &amp;gt;= '2025-11-27T13:30:00'
  AND time &amp;lt; '2025-11-27T13:40:00'
ORDER BY time DESC;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;y de esta manera poder realizar un análisis adecuado para resolución de problemas o incidentes de seguridad.&lt;/p&gt;

&lt;p&gt;Espero que les sea de utilidad.&lt;/p&gt;

&lt;p&gt;hasta una proxima entrega &lt;/p&gt;

</description>
      <category>aws</category>
      <category>athena</category>
      <category>cloudskills</category>
    </item>
    <item>
      <title>Creación de Peering Connections en AWS.</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Wed, 05 Nov 2025 19:32:22 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/creacion-de-peering-connections-en-aws-449k</link>
      <guid>https://dev.to/cyb3rcloud8888/creacion-de-peering-connections-en-aws-449k</guid>
      <description>&lt;p&gt;En este post vamos a detallar el paso a paso para la creacion de un peering conection en aws, que nos sirve para establecer la comunicacion entre dos VPC, esto es recomendado en casos de cuentas que tengan un numero limitado de vpc o para algun caso especifico que se requiera establecer la comunicacion, para multiples VPC o tambien para interconectar con Redes en Onpremise es mejor utilizar un transit gateway.&lt;/p&gt;

&lt;p&gt;El escenario es el siguiente&lt;/p&gt;

&lt;p&gt;Desde una ec2 en una vpc se quiere comunicar con otra ec2 en otra vpc&lt;br&gt;&lt;br&gt;
Los pasos para realizar esta comunicacion serian:&lt;/p&gt;

&lt;p&gt;Identificar VPC Origen y VPC destino &lt;br&gt;
Identificar Subnets de Ec2 asi como la direccion privada de las ec2.&lt;br&gt;
Identificar puertos de comunicacion&lt;br&gt;
Establecer el Peering Conection&lt;br&gt;
Configurar las tablas de rutas&lt;br&gt;
Configurar permisos en ACL si es el caso&lt;br&gt;
Configurar permisos en Security Groups de las Instancias&lt;/p&gt;

&lt;p&gt;Diagrama &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%2Fr5wcawabkrd54vntewvg.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%2Fr5wcawabkrd54vntewvg.png" alt=" " width="800" height="646"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para realizar la configuracion nos ubicamos en VPC y buscamos la opcion Peering Connection&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%2Fo3nytkog27j0k2lhzk67.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%2Fo3nytkog27j0k2lhzk67.png" alt=" " width="183" height="314"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Damos click en la opcion crear peering connection&lt;br&gt;
Configuramos las vpc requester y accepter aca podemos ver opciones de si se encuentra en la misma cuenta o  misma region.&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%2F0boxqdaf6kn1i1q3x5jg.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%2F0boxqdaf6kn1i1q3x5jg.png" alt=" " width="800" height="563"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;una vez realizado podemos ver que se establece pero hay que realizar una aceptacion esto ocurre dado que puede que la conexion puede realizar entre alguna otra cuenta que no tengas administracion ejemplo conexion entre dos empresas que tienen sus cargas de trabajo en aws.&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%2F3gfogf1qnsdkjkcn07fc.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%2F3gfogf1qnsdkjkcn07fc.png" alt=" " width="800" height="139"&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%2F0c0g0f83wnok93htowij.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%2F0c0g0f83wnok93htowij.png" alt=" " width="163" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez realizado este paso identificamos las subnets y las tablas de rutas de cada vpc y configuramos las rutas para que puedan comunicar estas dos subnets a traves del nuevo peering conection que hemos creado.&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%2Fbh14jzqco94yy2cyhpsc.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%2Fbh14jzqco94yy2cyhpsc.png" alt=" " width="800" height="336"&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%2Fe7lyidznvvmwmtwtdfqa.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%2Fe7lyidznvvmwmtwtdfqa.png" alt=" " width="800" height="234"&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%2F6xjpcmqamn72g1cnize5.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%2F6xjpcmqamn72g1cnize5.png" alt=" " width="800" height="133"&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%2Fozl6z7hjyztddi1zktdy.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%2Fozl6z7hjyztddi1zktdy.png" alt=" " width="742" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Al configurar la ruta tenemos que agregar que para alcanzar la otra red se utilize el peering.&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%2F0dpo1m6jq65lwka8rsup.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%2F0dpo1m6jq65lwka8rsup.png" alt=" " width="730" height="234"&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%2Fb49u7yuoo7seydgbvggl.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%2Fb49u7yuoo7seydgbvggl.png" alt=" " width="800" height="111"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si cuentan con ACLs a nivel de VPC tambien deben otorgar permisos y finalmente en los security groups de la instancia.&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%2Fxtr7zq3vrrad7w8so20t.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%2Fxtr7zq3vrrad7w8so20t.png" alt=" " width="741" height="69"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalmente podemos realizar pruebas de conectividad con telnet.&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%2Fkb6jz6me6stcxtbxg2u1.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%2Fkb6jz6me6stcxtbxg2u1.png" alt=" " width="594" height="68"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awsvpc</category>
    </item>
    <item>
      <title>Reglas Personalizadas en Web Application Firewall nativo AWS</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Sun, 02 Nov 2025 20:24:59 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/reglas-personalizadas-en-web-application-firewall-nativo-aws-3g19</link>
      <guid>https://dev.to/cyb3rcloud8888/reglas-personalizadas-en-web-application-firewall-nativo-aws-3g19</guid>
      <description>&lt;p&gt;Este post es basado en la  presentacion que realize en el evento de la comunidad de AWS Ecuador &lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Evolución de reglas básicas a custom rules avanzadas&lt;br&gt;
Casos de uso reales de implementación&lt;br&gt;
Integración con CloudFront, ALB&lt;br&gt;
Métricas y monitoreo con CloudWatch&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Características principales WAF&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Protección en tiempo real&lt;/li&gt;
&lt;li&gt;Filtrado de tráfico basado en reglas personalizables&lt;/li&gt;
&lt;li&gt;Inspección profunda de headers, body y query strings&lt;/li&gt;
&lt;li&gt;Respuesta automática a amenazas detectadas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Integración nativa con AWS&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compatible con CloudFront, Application Load Balancer, API Gateway&lt;/li&gt;
&lt;li&gt;Despliegue rápido sin cambios en infraestructura&lt;/li&gt;
&lt;li&gt;Escalabilidad automática según demanda&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Reglas personalizadas según necesidades específicas&lt;/li&gt;
&lt;li&gt;Listas blancas y negras de IPs&lt;/li&gt;
&lt;li&gt;Rate limiting para prevenir ataques DDoS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Monitoreo y visibilidad&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Métricas en tiempo real en CloudWatch&lt;/li&gt;
&lt;li&gt;Logs detallados de todas las solicitudes&lt;/li&gt;
&lt;li&gt;Dashboards para análisis de seguridad&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AWS Reglas Gestionadas (Managed Rules)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Qué son?&lt;/strong&gt;&lt;br&gt;
Reglas preconfiguradas mantenidas por AWS y terceros&lt;br&gt;
Se actualizan automáticamente con nuevas amenazas&lt;br&gt;
Fáciles de implementar sin experiencia en seguridad&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Reglas Gestionadas (Managed Rules)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Rule Set (CRS)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Protección contra vulnerabilidades OWASP Top 10&lt;/li&gt;
&lt;li&gt;Inyección SQL, XSS, inclusión de archivos&lt;/li&gt;
&lt;li&gt;Reglas generales para aplicaciones web&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Known Bad Inputs&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bloquea patrones de ataque conocidos&lt;/li&gt;
&lt;li&gt;Exploits comunes y técnicas de evasión&lt;/li&gt;
&lt;li&gt;Firmas de malware y herramientas de hacking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mejores prácticas&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comenzar en modo Count&lt;/li&gt;
&lt;li&gt;Implementar gradualmente&lt;/li&gt;
&lt;li&gt;Monitorear falsos positivos&lt;/li&gt;
&lt;li&gt;Documentar configuraciones&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ventajas de las reglas gestionadas&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mantenimiento automático&lt;/li&gt;
&lt;li&gt;Experiencia de expertos en seguridad&lt;/li&gt;
&lt;li&gt;Implementación inmediata&lt;/li&gt;
&lt;li&gt;Cobertura amplia de amenazas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Configuración de logging&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Habilitar logs en Web ACL&lt;/li&gt;
&lt;li&gt;Destino: CloudWatch Logs, S3, Kinesis&lt;/li&gt;
&lt;li&gt;Formato JSON estructurado&lt;/li&gt;
&lt;li&gt;Retención configurable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hasta este punto todo puede ir perfecto en la configuración de WAF con solo un par de clicks al habilitar las reglas.&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%2Fikt7x27ab7tnek2j2efx.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%2Fikt7x27ab7tnek2j2efx.png" alt=" " width="383" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Desafíos al usar las reglas gestionadas por AWS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Al usar reglas gestionadas por AWS pueden ocurrir problemas con el funcionamiento correcto de una aplicación por el bloqueo de tráfico legítimo debido a la complejidad de las diferentes aplicaciones y/o el uso de patrones no adecuados en el desarrollo de software, lo recomendable es validar con la acción contar antes del bloqueo y al activar las reglas de contar a bloqueo comenzar a monitorear la aplicación.&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%2Ffrpg9qsug07oejbzyplh.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%2Ffrpg9qsug07oejbzyplh.png" alt=" " width="436" height="371"&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%2Ffdvctfgnr8g31qeg37op.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%2Ffdvctfgnr8g31qeg37op.png" alt=" " width="606" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Aparecen los problemas ciertas opciones dentro del uso de la aplicación comienzan a fallar y todos te miran feo jaja&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%2Fzyljf1z2tfyqcalj77f3.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%2Fzyljf1z2tfyqcalj77f3.png" alt=" " width="265" height="235"&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%2F43l9yqofpufv654w7lel.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%2F43l9yqofpufv654w7lel.png" alt=" " width="437" height="397"&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%2Fso568425s38n99c098x0.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%2Fso568425s38n99c098x0.png" alt=" " width="394" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Solución&lt;/p&gt;

&lt;p&gt;Identificar las reglas que ocasionaron problemas con la aplicación, analizar el request y los diferentes valores dentro del mismo como los métodos HTTP: GET, POST, PUT, DELETE, PATCH, etc. el URI/Path: La ruta del recurso solicitado el cuerpo del request en general, encontrar porque la regla administrada hizo match con el tráfico legítimo de la aplicación.&lt;br&gt;
Revisar patrones de ataques recibidos &lt;br&gt;
Revisar y revisar logs de tráfico.&lt;br&gt;
Crear reglas personalizadas para comenzar a limpiar tráfico malicioso.&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%2F9qt64ts3j2c754cua879.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%2F9qt64ts3j2c754cua879.png" alt=" " width="800" height="327"&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%2Fhu4fcvshdn2nkv33550o.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%2Fhu4fcvshdn2nkv33550o.png" alt=" " width="768" height="310"&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%2Flm75hv7ioief32bqha7r.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%2Flm75hv7ioief32bqha7r.png" alt=" " width="800" height="247"&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%2F0ubl8is3ry112z8flya2.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%2F0ubl8is3ry112z8flya2.png" alt=" " width="624" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Configuración y Habilitación&lt;/p&gt;

&lt;p&gt;La primera regla recomendada es regla basada en ip, esta regla me ayuda a bloquear o permitir tráfico, un caso de uso puede ser también configurar una lista blanca de direcciones ip para que tráfico legítimo de algún proceso no se vea afectado.&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%2F6zk4fgw8py0bxbxr9dbf.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%2F6zk4fgw8py0bxbxr9dbf.png" alt=" " width="383" height="127"&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%2F0heah2838qu4e3z0lbze.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%2F0heah2838qu4e3z0lbze.png" alt=" " width="384" height="286"&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%2F3pmgat6wl26c8qj78r37.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%2F3pmgat6wl26c8qj78r37.png" alt=" " width="800" height="317"&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%2F7p0fpwp0tzfws85tmcrw.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%2F7p0fpwp0tzfws85tmcrw.png" alt=" " width="800" height="255"&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%2F7bpn6r9z5rt2jowmgmk1.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%2F7bpn6r9z5rt2jowmgmk1.png" alt=" " width="627" height="265"&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%2F6o2on8a84o6tzyqwwe5c.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%2F6o2on8a84o6tzyqwwe5c.png" alt=" " width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Antes de avanzar con la configuración de reglas personalizadas vamos a detallar qué son los WCU y qué impacto tienen en la facturación.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WCU en AWS WAF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Los WCU (Web ACL Capacity Units) son unidades de capacidad que miden la complejidad computacional de las reglas en AWS WAF.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;¿Cómo funcionan?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Cada regla que añades a tu Web ACL consume una cantidad determinada de WCU según su complejidad:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reglas simples: 1 WCU (ej: bloquear una IP específica)&lt;/li&gt;
&lt;li&gt;Reglas con expresiones regulares: 3-10 WCU&lt;/li&gt;
&lt;li&gt;Reglas de rate limiting: 2 WCU&lt;/li&gt;
&lt;li&gt;Reglas administradas de AWS: varían (generalmente 10-50 WCU)&lt;/li&gt;
&lt;li&gt;Reglas de grupos de terceros: pueden variar significativamente&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Límites&lt;/strong&gt;&lt;br&gt;
Límite por defecto: 1,500 WCU por Web ACL&lt;br&gt;
Puedes solicitar aumentos a AWS Support si necesitas más capacidad&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Costos de AWS WAF&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;El modelo de precios incluye:&lt;/p&gt;

&lt;p&gt;Web ACL: ~$5.00/mes por Web ACL&lt;br&gt;
Reglas: ~$1.00/mes por regla&lt;br&gt;
Requests: ~$0.60 por millón de requests&lt;/p&gt;

&lt;p&gt;Nota importante sobre WCU y costos: Los WCU NO se cobran directamente. Son solo una medida de capacidad computacional para gestionar el límite de complejidad de tu Web ACL. Pagas por la cantidad de reglas y requests, no por los WCU consumidos.&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%2Faqmvv7n8edz575b43jwy.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%2Faqmvv7n8edz575b43jwy.png" alt=" " width="721" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La segunda regla recomendada es regla basada en tasas (rate based) ayuda  a limitar la cantidad de request en una ventana específica de tiempo, para esto se puede analizar en promedio el tráfico que se recibe desde un cliente (IP) y analizar cuantos request por minuto envía, basado en un promedio se puede configurar por ejemplo 1000 request por minuto e ir evaluando el tráfico.&lt;br&gt;
El request 1001 sera bloqueado automaticamente&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%2Feozz15j274y6d2g215gn.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%2Feozz15j274y6d2g215gn.png" alt=" " width="351" height="86"&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%2Fs8frb87lkdro2ws6advo.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%2Fs8frb87lkdro2ws6advo.png" alt=" " width="800" height="336"&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%2Fibk4xz5c7tkb02zyibrz.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%2Fibk4xz5c7tkb02zyibrz.png" alt=" " width="800" height="297"&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%2Fb7zfp4mn4l83aqmyzhe6.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%2Fb7zfp4mn4l83aqmyzhe6.png" alt=" " width="800" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego podemos ir agregando reglas basadas en ataques comunes, por ejemplo si las reglas administradas por aws no funcionan del todo se crean este tipo de reglas para limpiar tráfico malicioso.&lt;br&gt;
Tienen opción de hacerlo directo en la consola o configurar en formato json.&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%2Fdaxqto1goqk6533a9oq5.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%2Fdaxqto1goqk6533a9oq5.png" alt=" " width="325" height="85"&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%2Ftakk9haew7sxwjw5ciy5.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%2Ftakk9haew7sxwjw5ciy5.png" alt=" " width="800" height="326"&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%2Fxcsezql51t15i2tph5su.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%2Fxcsezql51t15i2tph5su.png" alt=" " width="605" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta regla sirve para restringir peticiones comunes de ataques a servidores php wordpress entre otros.&lt;br&gt;
Analiza por extensión de archivo .php o por texto dentro de la petición.&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%2Fhu6thfxop7wh2f7g0svo.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%2Fhu6thfxop7wh2f7g0svo.png" alt=" " width="563" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Parte fundamental para monitorear el trafico es la revisión de logs, pueden usar Data Firehose para luego ver con athena o enviar a cloudwatch grupo de logs o log groups y realizar sentencias SQL o Log Insights QL&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%2F25h78fjlwc39aszgsgom.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%2F25h78fjlwc39aszgsgom.png" alt=" " width="706" height="305"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En la configuración de la regla se activa el registro o log y se coloca como destino cloudwatch loggroups&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%2Fhztbr5xu3ac4hwbbm9nu.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%2Fhztbr5xu3ac4hwbbm9nu.png" alt=" " width="800" height="155"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Top IPs bloqueadas&lt;br&gt;
sql&lt;br&gt;
fields @timestamp, httpRequest.clientIp, action&lt;br&gt;
| filter action = "BLOCK"&lt;br&gt;
| stats count() by httpRequest.clientIp&lt;br&gt;
| sort count desc&lt;br&gt;
| limit 10&lt;/p&gt;

&lt;p&gt;Análisis de reglas activadas&lt;br&gt;
sql&lt;br&gt;
fields @timestamp, terminatingRuleId, action&lt;br&gt;
| filter action = "BLOCK"&lt;br&gt;
| stats count() by terminatingRuleId&lt;br&gt;
| sort count desc&lt;/p&gt;

&lt;p&gt;Alertas recomendadas&lt;/p&gt;

&lt;p&gt;Análisis de reglas activadas&lt;br&gt;
sql&lt;br&gt;
fields @timestamp, terminatingRuleId, action&lt;br&gt;
| filter action = "BLOCK"&lt;br&gt;
| stats count() by terminatingRuleId&lt;br&gt;
| sort count desc&lt;/p&gt;

</description>
      <category>cloudsecurity</category>
    </item>
    <item>
      <title>Reglas administradas AWS WAF Owasp Top Ten</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Wed, 04 Jun 2025 16:22:25 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/reglas-administradas-aws-waf-owasp-top-ten-3f7</link>
      <guid>https://dev.to/cyb3rcloud8888/reglas-administradas-aws-waf-owasp-top-ten-3f7</guid>
      <description>&lt;p&gt;El dia de hoy vamos a revisar el grupo de reglas administradas que existen dentro de Amazon Web Services del servicio de seguridad Web Application Firewall.&lt;/p&gt;

&lt;p&gt;Amazon ofrece este servicio nativo para proteger las cargas de trabajo, se puede realizar una integracion entre los siguientes servicios.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CloudFront Distribución en Amazon&lt;/li&gt;
&lt;li&gt;API de REST de Amazon API Gateway&lt;/li&gt;
&lt;li&gt;Equilibrador de carga de aplicación&lt;/li&gt;
&lt;li&gt;AWS AppSync API GraphQL&lt;/li&gt;
&lt;li&gt;Grupo de usuarios de Amazon Cognito&lt;/li&gt;
&lt;li&gt;AWS App Runner servicio&lt;/li&gt;
&lt;li&gt;AWS Instancia de acceso verificado&lt;/li&gt;
&lt;li&gt;AWS Amplify&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS WAF es un firewall de aplicaciones web que permite revisar las peticiones http y https que se envian a sus aplicaciones o cargas de trabajo expuestas a internet.&lt;/p&gt;

&lt;p&gt;Este servicio tiene multiples beneficios y configuraciones, pero hoy vamos a revisar un conjunto de reglas escencial para la proteccion de sus aplicaciones, este grupo de reglas del conjunto de reglas básicas (CRS) contiene reglas que son generalmente aplicables a las aplicaciones web. Este brinda protección contra la explotación de una amplia gama de vulnerabilidades, incluyendo algunas de las vulnerabilidades de alto riesgo y más comunes descritas en publicaciones de OWASP tales como Owasp Top 10.&lt;/p&gt;

&lt;p&gt;Que es Owasp Top 10?&lt;/p&gt;

&lt;p&gt;El Top 10 de OWASP es un documento estándar de concientización para desarrolladores y seguridad de aplicaciones web&lt;/p&gt;

&lt;p&gt;Cada cierto tiempo este documento se actualiza en base a cambios de patrones de ataques mas comunes, el ultimo es del anio 2021&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%2Fefpgp12lpa2z063r8sub.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%2Fefpgp12lpa2z063r8sub.png" alt=" " width="800" height="215"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En esta pagina esta el detalle de cada una de las 10 vulnerabilidades mas comunes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://owasp.org/www-project-top-ten/#" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;De igual manera en la siguiente pagina de aws se muestra el detalle de las reglas basicas que estan basadas en owasp top 10.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/es_es/waf/latest/developerguide/aws-managed-rule-groups-baseline.html#aws-managed-rule-groups-baseline-crs" rel="noopener noreferrer"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;NoUserAgent_HEADER&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona las solicitudes a las que les falta el encabezado HTTP User-Agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;UserAgent_BadBots_HEADER&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Comprueba si hay valores de encabezado User-Agent comunes que indiquen que la solicitud es un badbot. Los patrones de ejemplo incluyen nessus y nmap. Para obtener información sobre la administración de bots, consulte también AWS WAF Grupo de reglas de control de bots.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SizeRestrictions_QUERYSTRING&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona las cadenas de consulta de URI que superen los 2048 bytes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;_SizeRestrictions_Cookie_HEADER   _&lt;/strong&gt;&lt;br&gt;
Comprueba si los encabezados de las cookies tienen más de 10 240 bytes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;_SizeRestrictions_BODY    _&lt;/strong&gt;&lt;br&gt;
Inspecciona los cuerpos de las solicitudes que pesen más de 8 KB (8192 bytes).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SizeRestrictions_URIPATH&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspeccione las rutas de URI que superen los 1024 bytes.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;EC2MetaDataSSRF_BODY&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Inspecciona los intentos de extraer los metadatos de EC2 Amazon del cuerpo de la solicitud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;EC2MetaDataSSRF_COOKIE&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona los intentos de extraer los metadatos de EC2 Amazon de la cookie de solicitud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;EC2MetaDataSSRF_URIPATH&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona los intentos de extraer los metadatos de EC2 Amazon de la ruta del URI de la solicitud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;EC2MetaDataSSRF_QUERYARGUMENTS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona los intentos de extraer los metadatos de EC2 Amazon de los argumentos de la consulta de la solicitud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;GenericLFI_QUERYARGUMENTS&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;
Inspecciona la presencia de vulnerabilidades Local File Inclusion (LFI, Inclusión Local de Archivos) en los argumentos de la consulta. Los ejemplos incluyen los intentos de recorrido de ruta utilizando técnicas como ../../.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;GenericLFI_URIPATH&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona la presencia de vulnerabilidades Local File Inclusion (LFI, Inclusión Local de Archivos) en la ruta del URI. Los ejemplos incluyen los intentos de recorrido de ruta utilizando técnicas como ../../.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;GenericLFI_BODY&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Inspecciona la presencia de vulnerabilidades Local File Inclusion (LFI, Inclusión Local de Archivos) en el cuerpo de la solicitud. Los ejemplos incluyen los intentos de recorrido de ruta utilizando técnicas como ../../.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;RestrictedExtensions_URIPATH&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Comprueba si hay solicitudes cuyas rutas de URI contengan extensiones de archivos del sistema que no sean seguras de leer o ejecutar. Los patrones de ejemplo incluyen extensiones como .log y .ini.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;RestrictedExtensions_QUERYARGUMENTS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona las solicitudes cuyos argumentos de consulta contienen extensiones de archivo cuya lectura es insegura. Los patrones de ejemplo incluyen extensiones como .log y .ini.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;GenericRFI_QUERYARGUMENTS&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;
Inspecciona los valores de todos los parámetros de consulta para detectar intentos de aprovechar la RFI (inclusión remota de archivos) en aplicaciones web mediante la incrustación URLs de direcciones. IPv4 Los ejemplos incluyen patrones comohttp://,https://, y ftp:// ftps://file://, con un encabezado de IPv4 host en el intento de explotación.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;GenericRFI_BODY&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;&lt;br&gt;
Inspecciona el cuerpo de la solicitud para detectar intentos de aprovechar la RFI (inclusión remota de archivos) en aplicaciones web mediante incrustaciones URLs que contienen direcciones. IPv4 Los ejemplos incluyen patrones comohttp://,https://, y ftp:// ftps://file://, con un encabezado de IPv4 host en el intento de explotación.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;GenericRFI_URIPATH&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona la ruta del URI para detectar intentos de aprovechar la RFI (inclusión remota de archivos) en aplicaciones web mediante incrustaciones URLs que contienen direcciones. IPv4 Los ejemplos incluyen patrones comohttp://,https://, y ftp:// ftps://file://, con un encabezado de IPv4 host en el intento de explotación.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;CrossSiteScripting_COOKIE&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;
Inspecciona los valores de los encabezados de las cookies para detectar patrones comunes de secuencias de comandos entre sitios (XSS) mediante la función integrada. AWS WAF Instrucción de regla de ataques de scripting entre sitios Los patrones de ejemplo incluyen scripts como alert(&amp;amp;quot;hello&amp;amp;quot;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;CrossSiteScripting_QUERYARGUMENTS&lt;/em&gt;&lt;/strong&gt; &lt;br&gt;
Inspecciona los valores de los argumentos de consulta para detectar patrones comunes de secuencias de comandos entre sitios (XSS) mediante la función integrada. AWS WAF Instrucción de regla de ataques de scripting entre sitios Los patrones de ejemplo incluyen scripts como alert(&amp;amp;quot;hello&amp;amp;quot;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;CrossSiteScripting_BODY&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona el cuerpo de la solicitud para detectar patrones comunes de secuencias de comandos entre sitios (XSS) mediante la función integrada. AWS WAF Instrucción de regla de ataques de scripting entre sitios Los patrones de ejemplo incluyen scripts como alert(&amp;amp;quot;hello&amp;amp;quot;).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;CrossSiteScripting_URIPATH&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Inspecciona el valor de la ruta URI en busca de patrones comunes de secuencias de comandos entre sitios (XSS) mediante la función integrada. AWS WAF Instrucción de regla de ataques de scripting entre sitios Los patrones de ejemplo incluyen scripts como alert(&amp;amp;quot;hello&amp;amp;quot;).&lt;/p&gt;

&lt;p&gt;Lo recomendado es siempre probar estas reglas en ambientes controlados como puede ser desarrollo QA u otro ambiente en donde puedan evaluar la funcionalidad e identificar que estas reglas no afecten el correcto funcionamiento de la aplicacion web.&lt;/p&gt;

&lt;p&gt;Las reglas tienen opciones de configuracion como son:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Allow&lt;/em&gt;&lt;/strong&gt;— AWS WAF permite reenviar la solicitud al AWS recurso protegido para su procesamiento y respuesta. Se trata de una acción de finalización. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Block&lt;/em&gt;&lt;/strong&gt;— AWS WAF bloquea la solicitud. Se trata de una acción de finalización. De forma predeterminada, el AWS recurso protegido responde con un código de 403 (Forbidden) estado HTTP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Count&lt;/em&gt;&lt;/strong&gt;— AWS WAF cuenta la solicitud pero no determina si se permite o se bloquea. Se trata de una acción no terminal. AWS WAF continúa procesando las reglas restantes en la ACL web. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;CAPTCHA y Challenge&lt;/em&gt;&lt;/strong&gt;— AWS WAF utiliza acertijos CAPTCHA y desafíos silenciosos para comprobar que la solicitud no proviene de un bot, y AWS WAF utiliza fichas para hacer un seguimiento de las respuestas recientes de los clientes que han obtenido buenos resultados.&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%2Fm17aqjzfcvfkf000vsp3.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%2Fm17aqjzfcvfkf000vsp3.png" alt=" " width="270" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Configuracion&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para este caso vamos a agregar el web application firewall en el recurso Cloudfront.&lt;/p&gt;

&lt;p&gt;1.- Ingresamos a la consola de AWS y buscamos WAF &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%2Fcpzjb243ymn35f4wwxkp.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%2Fcpzjb243ymn35f4wwxkp.png" alt=" " width="800" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2.- Una vez dentro de esta opcion vamos a la seccion de "Create web ACL"&lt;/p&gt;

&lt;p&gt;Y agregamos la informacion como es el nombre &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%2Fpiln8cjbdqsfi46jt4kq.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%2Fpiln8cjbdqsfi46jt4kq.png" alt=" " width="605" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;automaticamente se anade la data de Cloudwatch Metric Name.&lt;/p&gt;

&lt;p&gt;Esta parte es importante para luego poder analizar los logs que genera el WAF.&lt;/p&gt;

&lt;p&gt;3.- Escogemos la distribucion de Cloudfront &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%2Frjefadpr1oej8357265t.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%2Frjefadpr1oej8357265t.png" alt=" " width="675" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esta opcion la podemos modificar posteriormente dado que se debe analizar tambien los costos que genera la proteccion usando WAF&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%2Fpc26gk558hmznduq4slu.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%2Fpc26gk558hmznduq4slu.png" alt=" " width="795" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4.- En este punto agregamos las reglas o conjuntos de reglas, para nuestro ejemplo vamos a utilizar Reglas que son manejadas por AWS.&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%2F6dya2wgumautk5d0qaas.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%2F6dya2wgumautk5d0qaas.png" alt=" " width="800" height="361"&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%2Fsqcsbt8zdgr30gkdnlvc.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%2Fsqcsbt8zdgr30gkdnlvc.png" alt=" " width="800" height="678"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.- Buscamos y escogemos las reglas Core Rule Set o conjunto de reglas basicas y hacemos click en "Add Rules" o Agregar Reglas.&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%2Fuss337c340bgzi5rgxjr.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%2Fuss337c340bgzi5rgxjr.png" alt=" " width="800" height="446"&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%2Fstajux0pxpm01wttwi2p.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%2Fstajux0pxpm01wttwi2p.png" alt=" " width="800" height="372"&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%2Fc1kuzq969vanwn0s34pl.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%2Fc1kuzq969vanwn0s34pl.png" alt=" " width="255" height="69"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6.- En este punto revisamos las reglas o conjunto de reglas que hemos agregado, tambien podemos visualizar el total de WCU (Web ACL Capacity Units) que es la unidad de medida que AWS utiliza para calcular cuanta capacidad consumen las reglas en una ACL especifica.&lt;/p&gt;

&lt;p&gt;El uso de WCU afecta directamente al costo mensual de AWS WAF porque el precio se basa en dos factores principales:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Número de Web ACLs que creas.&lt;/li&gt;
&lt;li&gt;Cantidad total de WCU consumidos por cada Web ACL.&lt;/li&gt;
&lt;li&gt;Número de solicitudes web inspeccionadas (este es otro factor, no directamente relacionado con los WCU, pero también influye en el costo).
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;| Concepto                   | Precio estimado mensual |
| -------------------------- | ----------------------- |
| Web ACL (por ACL)          | \~\$5 USD               |
| Por cada WCU (mensual)     | \~\$0.60 USD            |
| Solicitudes inspeccionadas | \~\$0.60 por 1 millón   |

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7.- En este punto detallamos las opciones de accion de la regla, como es un ambiente de pruebas vamos a colocar la accion de bloqueo.&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%2F8gs41amcejn9h97b6jja.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%2F8gs41amcejn9h97b6jja.png" alt=" " width="800" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;8.- El siguiente paso es la prioridad de las reglas, como solamente hemos agregado una sola regla dejamos por defecto y damos en siguiente&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%2Fr83xv0wwi3ghe96zmnj8.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%2Fr83xv0wwi3ghe96zmnj8.png" alt=" " width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;9.- Como fue indicado anteriormente las metricas es necesario activarlas para poder analizar el trafico y la respuesta de cada request sobre las reglas.&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%2F4bm0vkyt2vozcqdq0de4.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%2F4bm0vkyt2vozcqdq0de4.png" alt=" " width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;10.- Como paso final vemos el resumen de todo lo que va a crear y damos click en "Crear Web ACL" &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%2Fjewnj6qdfy1ofytpiedz.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%2Fjewnj6qdfy1ofytpiedz.png" alt=" " width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego podemos confirmar que en la seccion de seguridad de la distribucion de cloudfront se muestre la web ACL.&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%2Fe779bo22ifm6owkgwuwv.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%2Fe779bo22ifm6owkgwuwv.png" alt=" " width="800" height="104"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Esto seria todo por ahora, en una proxima entrega vamos a detallar como poder hacer analisis de logs y poder ir validando el funcionamiento de las diferentes reglas de WAF basadas en owasp top 10 y si requieren de un afinamiento o modificacion.&lt;/p&gt;

&lt;p&gt;Espero que les haya gustado este post y que sea de utilidad para garantizar la proteccion de aplicaciones web que se exponen en sus organizaciones.&lt;/p&gt;

</description>
      <category>security</category>
      <category>aws</category>
      <category>cloud</category>
      <category>cloudsecurity</category>
    </item>
    <item>
      <title>Entendiendo los Identificadores ARN y AIDA en AWS IAM</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Thu, 21 Nov 2024 20:30:02 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/entendiendo-los-identificadores-arn-y-aida-en-aws-iam-o45</link>
      <guid>https://dev.to/cyb3rcloud8888/entendiendo-los-identificadores-arn-y-aida-en-aws-iam-o45</guid>
      <description>&lt;p&gt;AWS Identity and Access Management (IAM) es la columna vertebral de la seguridad en AWS, y dos de sus identificadores más importantes son ARN (Amazon Resource Name) y AIDA (IAM User/Role ID). En este artículo, exploraremos qué son, para qué sirven y un dato importante sobre qué sucede si eliminas y vuelves a crear usuarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amazon Resource Name (ARN)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;¿Qué es un ARN?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Un ARN (Amazon Resource Name) es un identificador único que AWS utiliza para identificar cualquier recurso en su plataforma. Es esencial para las políticas de acceso y la auditoría, ya que permite especificar con precisión los recursos involucrados en una operación.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;arn:partition:service:region:account-id:resource&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Componentes principales:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;partition: Especifica la partición de AWS, como aws, aws-cn (China) o aws-us-gov (GovCloud).&lt;/li&gt;
&lt;li&gt;service: El servicio al que pertenece el recurso, como s3, ec2 o iam.&lt;/li&gt;
&lt;li&gt;region: Región donde reside el recurso (puede estar vacío para recursos globales).&lt;/li&gt;
&lt;li&gt;account-id: ID de la cuenta que posee el recurso.&lt;/li&gt;
&lt;li&gt;resource: Identificador del recurso y su tipo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ejemplos:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;arn:aws:iam::123456789012:user/mi-usuario&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;¿Qué pasa si eliminas y vuelves a crear un recurso con el mismo nombre?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
El ARN se mantiene igual si recreas un usuario o recurso con el mismo nombre. Esto es útil para políticas preconfiguradas que apuntan a ese ARN. Sin embargo, no implica que el recurso sea el mismo; aquí entra el identificador AIDA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identificador AIDA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;¿Qué es AIDA?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
AIDA es el identificador único asignado a usuarios o roles en IAM. AWS lo utiliza internamente para rastrear acciones y permisos asociados a estas entidades.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"AWSAccessKeyId": "AIDAEXAMPLE123456"&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dato importante sobre AIDA y usuarios eliminados:&lt;/strong&gt;&lt;br&gt;
Si eliminas un usuario IAM y lo vuelves a crear con el mismo nombre, el ARN permanecerá igual porque se basa en el nombre. Sin embargo, el identificador AIDA será completamente nuevo, ya que este es único y no reutilizable.&lt;/p&gt;

&lt;p&gt;Esto significa que cualquier referencia al AIDA anterior en auditorías o registros ya no será válida para el nuevo usuario.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Diferencias clave entre ARN y AIDA:&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;ARN&lt;/em&gt;   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Identifica un recurso.
&lt;/li&gt;
&lt;li&gt;Es legible para humanos.
&lt;/li&gt;
&lt;li&gt;Se usa en políticas y configuraciones.
&lt;/li&gt;
&lt;li&gt;Se mantiene igual al recrear un recurso.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;AIDA&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1. Identifica un usuario o rol IAM.&lt;/li&gt;
&lt;li&gt;2. No es fácilmente reconocible.&lt;/li&gt;
&lt;li&gt;3. Se usa para auditorías e informes internos.&lt;/li&gt;
&lt;li&gt;4. Cambia si el recurso es eliminado y recreado.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mejores Prácticas para Usar ARN y AIDA&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Usa ARNs en políticas con precisión: Limita accesos a recursos específicos para mejorar la seguridad.&lt;/li&gt;
&lt;li&gt;Monitorea los registros de CloudTrail: Rastrea acciones utilizando AIDA para identificar usuarios específicos.&lt;/li&gt;
&lt;li&gt;Ten cuidado al eliminar usuarios IAM: Si necesitas conservar referencias en auditorías, guarda el historial asociado al AIDA antes de eliminar.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Espero te sirva este post dejame tus comentarios si deseas agregar algo.&lt;/p&gt;

&lt;p&gt;Fuente:&lt;code&gt;https://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/reference_identifiers.html#identifiers-unique-ids&lt;/code&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloudcomputing</category>
      <category>cloudsecurity</category>
    </item>
    <item>
      <title>Exportar u Obtener Hallazgos en AWS Inspector</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Fri, 01 Nov 2024 04:04:54 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/exportar-u-obtener-hallazgos-en-aws-inspector-36c</link>
      <guid>https://dev.to/cyb3rcloud8888/exportar-u-obtener-hallazgos-en-aws-inspector-36c</guid>
      <description>&lt;p&gt;AWS Inspector permite analizar y escanear recursos en AWS para identificar vulnerabilidades y configuraciones inseguras. Para hacer un análisis más detallado o respaldar los hallazgos, es útil exportarlos directamente a un bucket en S3. Aquí te explico cómo hacerlo en pocos pasos.&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%2F68c4hpm2m5vhdzvf04pe.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%2F68c4hpm2m5vhdzvf04pe.png" alt=" " width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Validar los permisos de tu usuario&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Deberias contar con permisos para poder realizar esta configuracion, en aws los permisos son asignados por acciones y para este fin necesitas estos dos permisos&lt;/p&gt;

&lt;p&gt;inspector2:ListFindings&lt;br&gt;
inspector2:CreateFindingsReport&lt;/p&gt;

&lt;p&gt;Para poder exportar tal como se visualiza en la imagen se requiere tambien el uso de una llave KMS (Key Management Service) y las acciones o permisos son los siguientes&lt;/p&gt;

&lt;p&gt;kms:GetKeyPolicy&lt;br&gt;
kms:PutKeyPolicy&lt;br&gt;
kms:DescribeKey&lt;br&gt;
kms:ListAliases&lt;/p&gt;

&lt;p&gt;Finalmente para el bucket s3 requieres de estos permisos&lt;/p&gt;

&lt;p&gt;s3:CreateBucket&lt;br&gt;
s3:DeleteObject&lt;br&gt;
s3:PutBucketAcl&lt;br&gt;
s3:PutBucketPolicy&lt;br&gt;
s3:PutBucketPublicAccessBlock&lt;br&gt;
s3:PutObject&lt;br&gt;
s3:PutObjectAcl&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Configurar el Bucket S3&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Crear el bucket s3 donde se va a almacenar el reporte de hallazgos, asegúrate de que el bucket S3 de destino esté configurado correctamente.&lt;/p&gt;

&lt;p&gt;Permisos: Verifica que el bucket tenga permisos adecuados para que AWS Inspector pueda escribir en él. Puedes otorgar permisos específicos mediante la politica detallada mas adelante, en donde debes reemplazar los valores de cuenta asi como el nombre del bucket s3 creado. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inicie sesión con sus credenciales y, a continuación, abra la consola de Amazon S3 en &lt;a href="https://console.aws.amazon.com/s3" rel="noopener noreferrer"&gt;https://console.aws.amazon.com/s3&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;En el panel de navegación, seleccione Buckets.&lt;/li&gt;
&lt;li&gt;Seleccione el bucket de S3 en el que desea almacenar el informe de hallazgos.&lt;/li&gt;
&lt;li&gt;Seleccione la pestaña Permisos.&lt;/li&gt;
&lt;li&gt;En la sección Política de bucket, seleccione Editar y agregar la siguiente politica&lt;/li&gt;
&lt;li&gt;Guardar los cambios.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "allow-inspector",
            "Effect": "Allow",
            "Principal": {
                "Service": "inspector2.amazonaws.com"
            },
            "Action": [
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:AbortMultipartUpload"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:inspector2:Region:111122223333:report/*"
                }
            }
        }
    ]
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;&lt;em&gt;Creacion de KMS para asociar a la exportacion de hallazgos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Inicie sesión con sus credenciales y, a continuación, abra la consola de Amazon S3 en &lt;a href="https://console.aws.amazon.com/s3" rel="noopener noreferrer"&gt;https://console.aws.amazon.com/s3&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;En el panel de navegación, seleccione KMS&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ubicarse en customer managed Keys e dar click en create key&lt;/p&gt;

&lt;p&gt;Seguir de la siguiente manera&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%2Fb56psw0lswg7ijx4fxi0.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%2Fb56psw0lswg7ijx4fxi0.png" alt=" " 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%2Fwmqr8jzhid65kr7sjst8.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%2Fwmqr8jzhid65kr7sjst8.png" alt=" " width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Escoger el usuario administrador de la llave  y de uso para las dos opciones siguientes&lt;/li&gt;
&lt;li&gt;Revisar que cuente con la siguiente configuracion y crear la llave.&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%2Fjjljrpjlydmt3o30k4c1.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%2Fjjljrpjlydmt3o30k4c1.png" alt=" " width="751" height="226"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Posterior a esto editar la politica de la kms y agregar la sigueinte politica que va a permitir el acceso a inspector de igual manera reemplazar los valores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Sid": "Allow Amazon Inspector to use the key",
    "Effect": "Allow",
    "Principal": {
        "Service": "inspector2.amazonaws.com"
    },
    "Action": [
        "kms:Decrypt",
        "kms:GenerateDataKey*"
    ],
    "Resource": "*",
    "Condition": {
        "StringEquals": {
            "aws:SourceAccount": "111122223333"
        },
        "ArnLike": {
            "aws:SourceArn": "arn:aws:inspector2:Region:111122223333:report/*"
        }
    }
}        
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finalmente regresar a la opcion de inspector y escoger si deseas un reporte completo o solamente las vulnerabilidades activas&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%2F1gd9vbgpn78ue2n5n3cv.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%2F1gd9vbgpn78ue2n5n3cv.png" alt=" " width="307" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Asi tambien si deseas el archivo en formato json o csv.&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%2Fm7zbh8o08qf4wutk78xa.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%2Fm7zbh8o08qf4wutk78xa.png" alt=" " width="274" height="173"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En la opcion de bucket s3 y kms escogemos los recursos previamente creados y selecccionamos export,&lt;/p&gt;

&lt;p&gt;esperamos unos minutos dependiendo tambien de la cantidad de recursos que tengas, recordemos que inspector revisa vulnerabilidades en los siguientes recursos &lt;/p&gt;

&lt;p&gt;Imagenes de contenedores&lt;br&gt;
Instancias Ec2 &lt;br&gt;
Funciones Lambda&lt;/p&gt;

&lt;p&gt;espero te sirva este tutorial para tus procesos de seguridad.&lt;/p&gt;

&lt;p&gt;Fuente &lt;br&gt;
&lt;a href="https://docs.aws.amazon.com/inspector/latest/user/findings-managing-exporting-reports.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/inspector/latest/user/findings-managing-exporting-reports.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>vulnerabilities</category>
      <category>tutorial</category>
      <category>cloudsecurity</category>
    </item>
    <item>
      <title>Politica para forzar la configuracion de Multifactor de autenticación en usuarios IAM de AWS.</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Sat, 03 Aug 2024 17:17:28 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/politica-para-forzar-la-configuracion-de-multifactor-de-autenticacion-en-usuarios-iam-de-aws-dba</link>
      <guid>https://dev.to/cyb3rcloud8888/politica-para-forzar-la-configuracion-de-multifactor-de-autenticacion-en-usuarios-iam-de-aws-dba</guid>
      <description>&lt;p&gt;La autenticación multifactor (MFA) es una capa adicional de seguridad para tus cuentas de AWS. Implementar MFA ayuda a proteger tus recursos al requerir no solo una contraseña, sino también un segundo factor de autenticación, como un código de una aplicación de autenticación. En este post, mostraremos cómo forzar el uso de MFA en los usuarios de IAM de AWS mediante una política de IAM asi garantizar que todos los usuarios activen esta funcionalidad.&lt;/p&gt;

&lt;p&gt;Esta politica funciona independientemente de los permisos que tengan los usuarios, por ejemplo si un usuario solamente tiene un permiso de lectura en EC2 podra ingresar a IAM e ir a la opcion de "Añadir Multifactor de autenticación"&lt;/p&gt;

&lt;p&gt;Requisitos:&lt;br&gt;
Para los usuarios el unico requisito es contar con una aplicacion de Multifactor sea virtual o fisica.&lt;/p&gt;

&lt;p&gt;Lo primero que realizaremos es crear la politica, para esta accion si se necesita que un usuario con permisos de administrador o permisos especificos en IAM para crear politicas.&lt;/p&gt;

&lt;p&gt;A continuacion los pasos:&lt;/p&gt;

&lt;p&gt;Ingresamos a la consola de aws &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%2Fdtjnkpzvdrq591198kef.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%2Fdtjnkpzvdrq591198kef.png" alt=" " width="290" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ingresamos a IAM Identity and Access Management&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%2F3zr9pqx3lnify23vq90d.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%2F3zr9pqx3lnify23vq90d.png" alt=" " width="674" height="208"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ingresamos a policies y damos click en Create Policy&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%2Fv7f5w8f8dos4jcs00460.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%2Fv7f5w8f8dos4jcs00460.png" alt=" " width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El codigo de la politica es el siguiente&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
    "Statement": [
        {
            "Action": [
                "iam:GetAccountPasswordPolicy",
                "iam:GetAccountSummary",
                "iam:ListVirtualMFADevices"
            ],
            "Effect": "Allow",
            "Resource": "*",
            "Sid": "AllowViewAccountInfo"
        },
        {
            "Action": [
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Sid": "AllowManageOwnPasswords"
        },
        {
            "Action": [
                "iam:CreateAccessKey",
                "iam:DeleteAccessKey",
                "iam:ListAccessKeys",
                "iam:UpdateAccessKey"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Sid": "AllowManageOwnAccessKeys"
        },
        {
            "Action": [
                "iam:DeleteSigningCertificate",
                "iam:ListSigningCertificates",
                "iam:UpdateSigningCertificate",
                "iam:UploadSigningCertificate"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Sid": "AllowManageOwnSigningCertificates"
        },
        {
            "Action": [
                "iam:DeleteSSHPublicKey",
                "iam:GetSSHPublicKey",
                "iam:ListSSHPublicKeys",
                "iam:UpdateSSHPublicKey",
                "iam:UploadSSHPublicKey"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Sid": "AllowManageOwnSSHPublicKeys"
        },
        {
            "Action": [
                "iam:CreateServiceSpecificCredential",
                "iam:DeleteServiceSpecificCredential",
                "iam:ListServiceSpecificCredentials",
                "iam:ResetServiceSpecificCredential",
                "iam:UpdateServiceSpecificCredential"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Sid": "AllowManageOwnGitCredentials"
        },
        {
            "Action": [
                "iam:CreateVirtualMFADevice",
                "iam:DeleteVirtualMFADevice"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:mfa/*",
            "Sid": "AllowManageOwnVirtualMFADevice"
        },
        {
            "Action": [
                "iam:DeactivateMFADevice",
                "iam:EnableMFADevice",
                "iam:ListMFADevices",
                "iam:ResyncMFADevice"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:iam::*:user/${aws:username}",
            "Sid": "AllowManageOwnUserMFA"
        },
        {
            "Condition": {
                "BoolIfExists": {
                    "aws:MultiFactorAuthPresent": "false"
                }
            },
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:GetUser",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ResyncMFADevice",
                "sts:GetSessionToken",
                "iam:ChangePassword",
                "iam:GetUser"
            ],
            "Resource": "*",
            "Sid": "DenyAllExceptListedIfNoMFA"
        }
    ],
    "Version": "2012-10-17"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Escogemos la opcion JSON y copiamos el codigo de la politica y damos click en Next.&lt;/p&gt;

&lt;p&gt;Añadimos un nombre y una descripcion&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%2Fr0nvkr39yjjydahmrbq3.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%2Fr0nvkr39yjjydahmrbq3.png" alt=" " width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Y damos click en Create Policy&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%2Ftdon9rykjjtykqba89x0.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%2Ftdon9rykjjtykqba89x0.png" alt=" " width="800" height="329"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Basicamente lo que hace esta politica es &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Permite ver información general de la cuenta:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Ver la política de contraseñas de la cuenta&lt;/li&gt;
&lt;li&gt;Ver el resumen de la cuenta&lt;/li&gt;
&lt;li&gt;Listar dispositivos MFA virtuales&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Permite a los usuarios gestionar sus propias credenciales:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Cambiar su propia contraseña&lt;/li&gt;
&lt;li&gt;Gestionar sus propias claves de acceso (crear, eliminar, listar, actualizar)&lt;/li&gt;
&lt;li&gt;Gestionar sus propios certificados de firma&lt;/li&gt;
&lt;li&gt;Gestionar sus propias claves públicas SSH&lt;/li&gt;
&lt;li&gt;Gestionar sus propias credenciales específicas de servicio (como para Git)&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Permite a los usuarios gestionar sus propios dispositivos MFA:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Crear y eliminar dispositivos MFA virtuales&lt;/li&gt;
&lt;li&gt;Activar, desactivar, listar y resincronizar dispositivos MFA&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Implementa una política de seguridad estricta:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Deniega todas las acciones excepto las específicamente listadas si el MFA no está presente&lt;/li&gt;
&lt;li&gt;Las únicas acciones permitidas sin MFA son las relacionadas con la configuración del MFA y el cambio de contraseña&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Posterior lo que realizamos es la creación de un grupo y añadimos esta politica al grupo&lt;/p&gt;

&lt;p&gt;Para esto ingresamos a IAM y escogemos la opcion de "user groups" y damos click en Create Group&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%2Fxyxjanti92esi1kyrmnc.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%2Fxyxjanti92esi1kyrmnc.png" alt=" " width="800" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Asignamos un nombre al grupo asi tambien como los usuarios a los que queremos aplicar esta politica.&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%2F59q06r7vrqda6xnoatwc.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%2F59q06r7vrqda6xnoatwc.png" alt=" " width="764" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;asi tambien añadimos la politica a este grupo&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%2F1gc6370q6p00lonijqhm.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%2F1gc6370q6p00lonijqhm.png" alt=" " width="800" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora podemos validar esta funcionalidad creando un usuario solo con acceso de lectura a Ec2&lt;/p&gt;

&lt;p&gt;Para esto ingresamos a usuarios "create user"&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%2Ffosg2y2ca8oh0jipf58a.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%2Ffosg2y2ca8oh0jipf58a.png" alt=" " width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Añadimos dos grupos al usuario uno en donde tiene el permiso de Ec2 y otro donde esta la politica que forza el uso de MFA&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%2F49c9p1c9ai2syruxhyjr.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%2F49c9p1c9ai2syruxhyjr.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para utilizar este acceso es preferible utilizar una ventana de incognito de tu navegador de preferencia&lt;/p&gt;

&lt;p&gt;Ingreamos las credenciales y cambiamos la clave&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%2F8a7zjo3ge21fxbu1rpgd.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%2F8a7zjo3ge21fxbu1rpgd.png" alt=" " width="549" height="285"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Debido a que no tenemos permisos hasta activar el MFA se nos presenta toda la consola  con error&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%2Fseyyjmm0t83zstv2jkm2.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%2Fseyyjmm0t83zstv2jkm2.png" alt=" " width="800" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El siguiente error explitico nos muestra en todos los recursos&lt;/p&gt;

&lt;p&gt;&lt;code&gt;You are not authorized to perform this operation. User: arn:aws:iam::XXXXXXX:user/pruebamfa is not authorized to perform: ec2:DescribeInstances with an explicit deny in an identity-based policy&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Luego ingresamos a IAM y damos click en la opcion "Agregar MFA"&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%2Fpacwkw2enhy9uhfa3dxe.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%2Fpacwkw2enhy9uhfa3dxe.png" alt=" " width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Realizamos la configuracion de mfa &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%2F44y7n5y5uu2n5vjmb80c.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%2F44y7n5y5uu2n5vjmb80c.png" alt=" " width="800" height="258"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cerramos sesion y volvemos a ingresar y podemos ver las instancias en la cuenta de aws&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%2Fgmqorv0qrwwiscqfm7f0.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%2Fgmqorv0qrwwiscqfm7f0.png" alt=" " width="547" height="301"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;De esta manera podemos garantizar que los usuarios activen el MFA y esta politica aplica tanto en el acceso de consola o via AWS CLI, en una proxima entrega veremos como usar el MFA usando AWS CLI.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awssecurity</category>
      <category>cloudsecurity</category>
    </item>
    <item>
      <title>Fortalece la Seguridad de tu AWS: Implementación de MFA para Usuarios IAM</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Sat, 03 Aug 2024 16:16:15 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/fortalece-la-seguridad-de-tu-aws-implementacion-de-mfa-para-usuarios-iam-3akm</link>
      <guid>https://dev.to/cyb3rcloud8888/fortalece-la-seguridad-de-tu-aws-implementacion-de-mfa-para-usuarios-iam-3akm</guid>
      <description>&lt;p&gt;La seguridad en la nube es primordial, y la autenticación multifactor (MFA) es una herramienta esencial para proteger tus recursos en AWS. Veamos por qué es importante y cómo implementarla.&lt;/p&gt;

&lt;p&gt;¿Por qué es importante el MFA?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Añade una capa adicional de seguridad más allá de la contraseña.&lt;/li&gt;
&lt;li&gt;Protege contra el acceso no autorizado, incluso si las credenciales se ven comprometidas.&lt;/li&gt;
&lt;li&gt;Cumple con las mejores prácticas de seguridad y regulaciones.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si cuentas con permisos correctos para poder visualizar recursos en IAM puedes seguir estos pasos para efectuar la habilitación, asi tambien necesitaras un aplicacion de multifactor entre las cuales tenemos: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Autheticator&lt;/li&gt;
&lt;li&gt;Microsoft Authenticator&lt;/li&gt;
&lt;li&gt;Authy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A continuacion los pasos para habilitar MFA en usuarios IAM:&lt;/p&gt;

&lt;p&gt;Inicia sesión en la consola de AWS como administrador.&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%2Foqkt1dlmrx526lzm8iu7.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%2Foqkt1dlmrx526lzm8iu7.png" alt="Acceso a la consola" width="383" height="581"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ve a IAM en el panel de navegación.&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%2Fy1g93w0a7j0jba9d86n3.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%2Fy1g93w0a7j0jba9d86n3.png" alt=" " width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecciona "Users" y elige el usuario para el que deseas habilitar MFA.&lt;br&gt;
En la pestaña "Security credentials", haz clic en "Assign MFA device".&lt;br&gt;
Sigue el asistente para configurar el dispositivo MFA (virtual, hardware o SMS).&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%2F2wf5eeypi84g4qfjs5qo.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%2F2wf5eeypi84g4qfjs5qo.png" alt=" " width="239" height="197"&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%2Frha8nhuq2dqq53jqjold.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%2Frha8nhuq2dqq53jqjold.png" alt=" " width="527" height="671"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Verifica la configuración ingresando dos códigos MFA consecutivos, finalmente se visualiza la configuración realizada.&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%2F7bwztt7gnz1bnfd01puu.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%2F7bwztt7gnz1bnfd01puu.png" alt=" " width="800" height="407"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En un proximo post explicare como poder aplicar una politica para que todos los usuarios de manera obligatoria configuren el MFA.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>awssecurity</category>
      <category>cloudsecurity</category>
    </item>
    <item>
      <title>AWS Security Hub</title>
      <dc:creator>Willie Reyes</dc:creator>
      <pubDate>Sat, 06 Jul 2024 16:29:16 +0000</pubDate>
      <link>https://dev.to/cyb3rcloud8888/aws-security-hub-3n19</link>
      <guid>https://dev.to/cyb3rcloud8888/aws-security-hub-3n19</guid>
      <description>&lt;p&gt;Hace unas semanas tuve la oportunidad de compartir en el canal de youtube de AWS Women Colombia una charla acerca del servicio de seguridad en AWS llamado "Security Hub" este servicio nos ayuda para temas de postura de seguridad y cumplimiento de los recursos dentro de la infraestructura de AWS.&lt;/p&gt;

&lt;p&gt;A traves de este portal compartire informacion acerca de los diferentes servicios de seguridad que existen  dentro de Amazon Web Services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduccion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Security hub proporciona una vista integral del estado de seguridad en tu entorno de AWS.&lt;br&gt;
Agrega, organiza y prioriza hallazgos de multiples servicios de seguridad dentro de AWS. &lt;/p&gt;

&lt;p&gt;Security Hub recopila datos de seguridad de todas las Cuentas de AWS, los Servicios de AWS y los productos compatibles de terceros y lo ayuda a analizar sus tendencias de seguridad y a identificar los problemas de seguridad de mayor prioridad&lt;/p&gt;

&lt;p&gt;Beneficios de Security Hub&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Monitorizacion constante&lt;/li&gt;
&lt;li&gt;Cumplimiento Normativo&lt;/li&gt;
&lt;li&gt;Respuestas automatizadas&lt;/li&gt;
&lt;li&gt;Reduccion de riesgos.&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%2Fl645ljy1wotir9j2p7gm.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%2Fl645ljy1wotir9j2p7gm.png" alt="Security Hub" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://aws.amazon.com/es/security-hub/?nc=sn&amp;amp;loc=1" rel="noopener noreferrer"&gt;https://aws.amazon.com/es/security-hub/?nc=sn&amp;amp;loc=1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Estandares de Seguridad&lt;/p&gt;

&lt;p&gt;Security Hub admite varios estándares de seguridad. Cada estándar incluye varios controles de seguridad, cada uno de los cuales representa una práctica de seguridad recomendada. Security Hub ejecuta comprobaciones de los controles de seguridad y genera resultados de control para ayudarle a evaluar su cumplimiento de las mejores prácticas de seguridad. &lt;/p&gt;

&lt;p&gt;Estadares dentro de AWS Security Hub&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Practicas recomendadas de seguridad v1.0.0&lt;/em&gt;&lt;br&gt;
Este estandar es creado por AWS, es un conjunto de comprobaciones de &lt;br&gt;
seguridad automatizadas que detectan cuando las cuentas y los &lt;br&gt;
recursos implementados de AWS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Indicadores de referencia v1.2.0 - v1.4.0 - v3.0.0 CIS&lt;/em&gt;&lt;br&gt;
El Center for Internet Security (CIS) conjunto de guías de &lt;br&gt;
configuración de seguridad y mejores prácticas desarrolladas por el &lt;br&gt;
Center for Internet Security (CIS). Estas guías están diseñadas para &lt;br&gt;
ayudar a organizaciones a asegurar sus sistemas de información y &lt;br&gt;
protegerse contra ciberataques. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Publicacion especial de Nist 800-53&lt;/em&gt;&lt;br&gt;
El Este marco de cumplimiento lo ayuda a proteger la disponibilidad, &lt;br&gt;
confidencialidad e integridad de sus sistemas de información y &lt;br&gt;
recursos críticos. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;PCI DSS v3.2.1&lt;/em&gt;&lt;br&gt;
El principal objetivo del PCI DSS es proteger la información &lt;br&gt;
sensible de las tarjetas de pago contra el fraude y el robo mediante &lt;br&gt;
la implementación de controles de seguridad robustos&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pasos para habilitar el servicio de Security Hub&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%2F9pbg9v6o2ldi0c5wy4za.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%2F9pbg9v6o2ldi0c5wy4za.png" alt="Habilitacion Security Hub " width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se debe habilitar AWS Config para que puede obtener Security Hub ingesta de informacion de AWS Config que revisara el cumplimiento de todos los recursos dentro de AWS.&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%2F4k3astrxupwvwe1g2z6m.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%2F4k3astrxupwvwe1g2z6m.png" alt=" " width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para habilitar AWS Config puedes hacer la configuracion de un solo click o desplegar usando  IAC (Infraestructure as Code) con el servicio de AWS Cloud Formation.&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%2Fiacm2lgslffe9jn9tg7o.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%2Fiacm2lgslffe9jn9tg7o.png" alt=" " width="800" height="281"&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%2F3i9d4b1eiza23j17t4js.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%2F3i9d4b1eiza23j17t4js.png" alt=" " width="800" height="471"&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%2F9r6bh08u4z73sn0bica7.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%2F9r6bh08u4z73sn0bica7.png" alt=" " width="800" height="408"&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%2Fnzk251s2f3lfqk7pswlm.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%2Fnzk251s2f3lfqk7pswlm.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez habilitado AWS Config, podemos habilitar Security Hub con los estandares que se requieran segun el giro de negocio.&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%2Fy31s1zvkydtjseocfqq1.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%2Fy31s1zvkydtjseocfqq1.png" alt=" " width="800" height="533"&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%2Fm56f83ehyd6tjko7qyny.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%2Fm56f83ehyd6tjko7qyny.png" alt=" " width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalmente luego de unas horas que comienze a trabajar el servicio de security hub  podemos ver el porcentaje de cumplimiento en cada estandar asi como de cada uno de ellos.&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%2Fng0mw6x50zy8giawp69g.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%2Fng0mw6x50zy8giawp69g.png" alt=" " width="800" height="409"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para efectuar las remediaciones ingresamos a cada hallazgo y podemos ver a detalle el control asi como los estandares asociados a estos controles con su respectivo numeral o identificador.&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%2F9sapiduwvos94el7jby5.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%2F9sapiduwvos94el7jby5.png" alt=" " width="800" height="616"&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%2F3i2bt3sfgiscpvnhzlfp.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%2F3i2bt3sfgiscpvnhzlfp.png" alt=" " width="800" height="657"&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%2Fi1gj9poomkblezb1eoxl.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%2Fi1gj9poomkblezb1eoxl.png" alt=" " width="800" height="698"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Asi tambien podemos deshabilitar controles de acuerdo a las siguientes motivos, para esto se deberia contar con el detalle del porque se deshabilita para en caso de alguna auditoria presentar este respaldo&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%2Foipd2i586ry51prqjxo5.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%2Foipd2i586ry51prqjxo5.png" alt=" " width="800" height="698"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tambien se puede suprimir el control si de manera temporal no queremos que nos afecte el porcentaje o en caso que se este trabajando en la remediacion de dicho control&lt;/p&gt;

&lt;p&gt;AWS Security Hub te ayudara a tener control acerca de problemas de configuraciones erroneas o de falta de seguridad en todos los recursos de AWS, te ayudara en casos de auditoria asi como el cumplimiento para certificaciones o de estandares de seguridad, este proceso es constante y deberas efectuar remediaciones en forme vaya creciendo tu infraestructura.&lt;/p&gt;

&lt;p&gt;Comentame que te parecio o que agregarias a este post.&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%2Fhjfsc67ln3zt0kyzupl8.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%2Fhjfsc67ln3zt0kyzupl8.png" alt=" " width="800" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cuentame que te parece o que podria añadir a este post.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>cloudsecurity</category>
      <category>compliance</category>
    </item>
  </channel>
</rss>
