<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Vanny"s tech journey]]></title><description><![CDATA[Vanny"s tech journey]]></description><link>https://vannys-tech-journey.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 02:08:31 GMT</lastBuildDate><atom:link href="https://vannys-tech-journey.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Understanding Stateful vs Stateless Firewalls and NACLs in AWS: A Clear Guide]]></title><description><![CDATA[A stateful firewall tracks the state of connections. When it allows traffic in one direction, it automatically allows the return traffic. It remembers the entire session. AWS Security Groups are stateful. They only use allow rules, and they do not ne...]]></description><link>https://vannys-tech-journey.hashnode.dev/understanding-stateful-vs-stateless-firewalls-and-nacls-in-aws-a-clear-guide</link><guid isPermaLink="true">https://vannys-tech-journey.hashnode.dev/understanding-stateful-vs-stateless-firewalls-and-nacls-in-aws-a-clear-guide</guid><category><![CDATA[STATEFUL FIREWALL]]></category><category><![CDATA[aws NACL]]></category><category><![CDATA[Firewalls]]></category><category><![CDATA[stateless firewall]]></category><dc:creator><![CDATA[IVAN YMAOH BOAKYE]]></dc:creator><pubDate>Fri, 14 Nov 2025 19:42:25 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1763148862713/9c4afc1d-b719-4c8b-b9ea-1acc27c738ae.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A stateful firewall tracks the state of connections. When it allows traffic in one direction, it automatically allows the return traffic. It remembers the entire session. AWS Security Groups are stateful. They only use allow rules, and they do not need separate inbound and outbound rules for return traffic. If inbound is allowed, the corresponding response outbound is automatically permitted, and vice versa.</p>
<p>A stateless firewall does not track any connection. It checks every packet individually with no memory of previous traffic. Because of this, it needs explicit rules for both directions. If you allow inbound traffic on a stateless system, you must also allow the outbound return path, including the ephemeral port range. AWS Network ACLs (NACLs) are stateless.</p>
<p>NACLs operate at the subnet level and are evaluated in rule number order, from the lowest number to the highest. The first matching rule wins. NACLs can allow or deny traffic. A default NACL allows all inbound and all outbound traffic, and contains no explicit deny rules. All traffic passes because the rules match before reaching the implicit deny at the end. A custom NACL starts with no rules and effectively denies all traffic until you add allow rules.</p>
<p>A stateless design means both inbound and outbound rules must be configured for communication between subnets if the NACL is custom or restrictive. Subnets inside a VPC can communicate freely by default, but custom NACLs can block that communication unless rules are added.</p>
<p>Ephemeral ports are temporary ports used for return traffic, usually in the 1024–65535 range. When using NACLs, you must explicitly allow these ports in the opposite direction for responses to succeed.</p>
<p>In AWS architecture, Security Groups control traffic at the instance level with stateful behavior, while NACLs control traffic at the subnet level with stateless behavior. Understanding both is fundamental for the Solutions Architect Associate exam.</p>
]]></content:encoded></item><item><title><![CDATA[This article is part of my AWS learning journey where I break down complex concepts into simple explanations. Follow me for more]]></title><description><![CDATA[Understanding AWS VPC Design: A Deep Dive into Public Subnet Routing
While studying AWS networking, a detailed exploration was carried out on how a Virtual Private Cloud (VPC) is structured and how public subnets communicate with the internet. The fo...]]></description><link>https://vannys-tech-journey.hashnode.dev/this-article-is-part-of-my-aws-learning-journey-where-i-break-down-complex-concepts-into-simple-explanations-follow-me-for-more</link><guid isPermaLink="true">https://vannys-tech-journey.hashnode.dev/this-article-is-part-of-my-aws-learning-journey-where-i-break-down-complex-concepts-into-simple-explanations-follow-me-for-more</guid><dc:creator><![CDATA[IVAN YMAOH BOAKYE]]></dc:creator><pubDate>Thu, 13 Nov 2025 21:12:27 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1763068146743/517fcfac-2240-4dcc-88f8-75e7c295dbf2.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-understanding-aws-vpc-design-a-deep-dive-into-public-subnet-routing">Understanding AWS VPC Design: A Deep Dive into Public Subnet Routing</h2>
<p>While studying AWS networking, a detailed exploration was carried out on how a <strong>Virtual Private Cloud (VPC)</strong> is structured and how <strong>public subnets</strong> communicate with the internet. The focus was on understanding subnet design, routing, and how connectivity is managed securely across multiple Availability Zones.</p>
<hr />
<h3 id="heading-what-is-a-vpc">What Is a VPC?</h3>
<p>A <strong>Virtual Private Cloud (VPC)</strong> is a <strong>logically isolated network</strong> within the AWS cloud.<br />Think of it as your own private data center inside AWS, where you control every aspect of the network — including IP address ranges, routing, and access to the internet.</p>
<p>When you create a VPC, AWS gives you:</p>
<ul>
<li><p>A <strong>dedicated IP address range (CIDR block)</strong></p>
</li>
<li><p>The ability to <strong>create subnets</strong> (small networks within your VPC)</p>
</li>
<li><p>Control over <strong>route tables</strong>, <strong>security</strong>, and <strong>connectivity</strong></p>
</li>
<li><p>Access to <strong>gateways</strong> that connect your private cloud to the outside world</p>
</li>
</ul>
<p>Essentially, it’s your <strong>private slice of AWS’s global network</strong>.</p>
<hr />
<h3 id="heading-inside-the-vpc-the-main-components">Inside the VPC: The Main Components</h3>
<p>A typical VPC is divided into several key parts:</p>
<h4 id="heading-1-cidr-block">1. <strong>CIDR Block</strong></h4>
<p>This is the range of IP addresses your VPC can use — for example, <code>10.16.0.0/16</code>.<br />This means all subnets you create inside the VPC will fall within this IP range.</p>
<hr />
<h4 id="heading-2-availability-zones-azs">2. <strong>Availability Zones (AZs)</strong></h4>
<p>Each AWS region is divided into multiple <strong>Availability Zones</strong>, which are isolated data centers designed for redundancy and high availability.</p>
<p>In the example diagram, there are <strong>three AZs</strong>:</p>
<ul>
<li><p><strong>AZ A</strong></p>
</li>
<li><p><strong>AZ B</strong></p>
</li>
<li><p><strong>AZ C</strong></p>
</li>
</ul>
<p>Each AZ contains its own set of subnets so that even if one zone fails, your application remains available.</p>
<hr />
<h4 id="heading-3-subnets">3. <strong>Subnets</strong></h4>
<p>Subnets are smaller network segments within your VPC. They allow you to group resources based on purpose and security level.</p>
<p>In a standard <strong>three-tier architecture</strong>, we usually have:</p>
<ul>
<li><p><strong>Web Tier (Public Subnets)</strong> → for internet-facing resources (like EC2 web servers).</p>
</li>
<li><p><strong>App Tier (Private Subnets)</strong> → for backend logic and processing.</p>
</li>
<li><p><strong>Database Tier (Private Subnets)</strong> → for secure data storage.</p>
</li>
</ul>
<p>Each subnet is assigned its own <strong>CIDR block</strong> (for example, <code>10.16.48.0/20</code>) and exists within one specific AZ.</p>
<hr />
<h4 id="heading-4-internet-gateway-igw">4. <strong>Internet Gateway (IGW)</strong></h4>
<p>The <strong>Internet Gateway</strong> is what allows resources in your VPC to connect to the public internet.<br />It acts as the bridge between your private AWS network and the outside world.</p>
<p>However, attaching an IGW doesn’t automatically make your instances public — they must also belong to a subnet with a <strong>route</strong> that directs traffic through the IGW.</p>
<hr />
<h4 id="heading-5-route-tables">5. <strong>Route Tables</strong></h4>
<p>A <strong>Route Table</strong> defines how traffic is directed within your VPC.<br />It contains rules (called routes) that tell the network where to send traffic.</p>
<p>For example:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Destination</td><td>Target</td><td>Purpose</td></tr>
</thead>
<tbody>
<tr>
<td>10.16.0.0/16</td><td>local</td><td>Internal VPC communication</td></tr>
<tr>
<td>0.0.0.0/0</td><td>Internet Gateway</td><td>Internet-bound IPv4 traffic</td></tr>
<tr>
<td>::/0</td><td>Internet Gateway</td><td>Internet-bound IPv6 traffic</td></tr>
</tbody>
</table>
</div><p>The <code>0.0.0.0/0</code> route is the “default route,” meaning any traffic not destined for inside the VPC goes to the internet.</p>
<hr />
<h4 id="heading-6-vpc-router">6. <strong>VPC Router</strong></h4>
<p>The <strong>VPC Router</strong> is managed automatically by AWS. It’s responsible for directing traffic according to the rules in your route tables.<br />Every subnet in a VPC must be associated with a route table — this is how AWS knows where to send packets next.</p>
<hr />
<h4 id="heading-7-reserved-and-spare-capacity">7. <strong>Reserved and Spare Capacity</strong></h4>
<p>In the diagram, you might notice <strong>“Reserved Tier”</strong> and <strong>“Spare Capacity for Future AZ.”</strong></p>
<ul>
<li><p>The <strong>Reserved Tier</strong> is a portion of the IP range kept aside — often used for future expansion or system-level operations.</p>
</li>
<li><p>The <strong>Spare Capacity</strong> area is designed to accommodate a <strong>new Availability Zone</strong> if AWS adds one in the future, ensuring your CIDR layout remains flexible and scalable.</p>
</li>
</ul>
<hr />
<h3 id="heading-public-vs-private-subnets">🌐 Public vs Private Subnets</h3>
<p>A subnet is considered <strong>public</strong> if its route table includes a route to the <strong>Internet Gateway</strong> (<code>0.0.0.0/0</code>).<br />Instances launched in these subnets can send and receive internet traffic — provided they also have a <strong>public IP address</strong>or <strong>Elastic IP</strong>.</p>
<p>By contrast, a <strong>private subnet</strong> has no direct route to the internet. Resources in private subnets can still reach the internet, but only through a <strong>NAT Gateway</strong>, which allows outbound traffic without exposing those instances publicly.</p>
<hr />
<h3 id="heading-security-in-the-vpc">Security in the VPC</h3>
<p>Security in a VPC is handled at two main levels:</p>
<ul>
<li><p><strong>Security Groups</strong> – These act as virtual firewalls at the instance level, controlling inbound and outbound traffic.</p>
</li>
<li><p><strong>Network ACLs (NACLs)</strong> – These provide an additional layer of control at the subnet level.</p>
</li>
</ul>
<p>This layered approach ensures that even if one control fails, another is in place to protect your infrastructure.</p>
<hr />
<h3 id="heading-key-takeaways">Key Takeaways</h3>
<ul>
<li><p>A <strong>VPC</strong> is your own private section of the AWS network.</p>
</li>
<li><p><strong>Subnets</strong> divide your VPC into smaller, logical zones for organization and security.</p>
</li>
<li><p><strong>Route Tables</strong> decide where traffic goes, both within and outside the VPC.</p>
</li>
<li><p>An <strong>Internet Gateway</strong> allows public connectivity, but only if routes and IPs are configured properly.</p>
</li>
<li><p>The <strong>Reserved Tier</strong> and <strong>spare capacity</strong> help prepare for future scaling.</p>
</li>
<li><p>Security is layered, using both <strong>Security Groups</strong> and <strong>NACLs</strong>.</p>
</li>
</ul>
<hr />
<h3 id="heading-final-thoughts">Final Thoughts</h3>
<p>Understanding the structure of a VPC is essential for designing secure, scalable, and reliable cloud architectures.<br />It’s not just about connecting resources — it’s about <strong>controlling how data moves</strong> and ensuring every component communicates safely and efficiently.</p>
<p>Once the fundamentals of VPC design make sense, it becomes much easier to understand higher-level AWS concepts like <strong>NAT Gateways</strong>, <strong>Load Balancers</strong>, <strong>VPC Peering</strong>, and <strong>Transit Gateways</strong> — all of which build on these same foundations.</p>
<hr />
]]></content:encoded></item><item><title><![CDATA[Hands-On with AWS S3 Encryption: Understanding How Your Data Stays Secure.]]></title><description><![CDATA[When working in the cloud, data security is one of the most critical responsibilities of any Cloud or DevOps Engineer. Today, I explored different Amazon S3 encryption methods by creating a bucket and uploading files using three distinct encryption o...]]></description><link>https://vannys-tech-journey.hashnode.dev/hands-on-with-aws-s3-encryption-understanding-how-your-data-stays-secure</link><guid isPermaLink="true">https://vannys-tech-journey.hashnode.dev/hands-on-with-aws-s3-encryption-understanding-how-your-data-stays-secure</guid><category><![CDATA[#AWS #S3 #CloudSecurity #Encryption #DevOps]]></category><dc:creator><![CDATA[IVAN YMAOH BOAKYE]]></dc:creator><pubDate>Tue, 11 Nov 2025 19:41:11 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1762889685220/b058327d-03d7-46a5-93cd-b3686913365c.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When working in the cloud, <strong>data security</strong> is one of the most critical responsibilities of any <strong>Cloud or DevOps Engineer</strong>. Today, I explored different <strong>Amazon S3 encryption methods</strong> by creating a bucket and uploading files using <strong>three distinct encryption options</strong> — each with its own level of control and use case.</p>
<hr />
<p>Creating the S3 Bucket</p>
<p>I logged into the <strong>AWS Management Console</strong> and opened the <strong>S3 service</strong>.<br />I clicked <strong>“Create bucket,”</strong> gave it a unique name, selected a region, and left the default settings for simplicity.<br />Once I created the bucket, I confirmed that versioning was off and default encryption was disabled so I could manually configure each method later. After creating the bucket, I uploaded three images — one for each encryption type.<br />Here’s how I implemented them:</p>
<p><img src="https://media.licdn.com/dms/image/v2/D4E22AQE2ZxqGRT_0Yg/feedshare-shrink_2048_1536/B4EZpJyo7uHEAw-/0/1762174606401?e=1764201600&amp;v=beta&amp;t=OXxIjC4YCaBZZMe7cMaaAkldC6BdxGblrhnte0SBolE" alt="No alternative text description for this image" /></p>
<h3 id="heading-next-i-uploaded-the-second-image-using-sse-kms">Next, I uploaded the second image using <strong>SSE-KMS</strong>.</h3>
<p>I selected <strong>“AWS KMS keys (SSE-KMS)”</strong> and chose the <strong>AWS-managed key</strong> from the dropdown.<br />After uploading, I checked the object details to confirm that AWS KMS had encrypted the file.</p>
<p>Before testing it, I opened the <strong>KMS console</strong>, located the key used for encryption, and <strong>edited its key policy</strong>.<br />I used an <strong>inline policy</strong> to grant my IAM user explicit permissions to use the key for encryption and decryption.<br />This step helped me understand how <strong>KMS key policies</strong> control which users or roles can access encrypted data.</p>
<p><img src="https://media.licdn.com/dms/image/v2/D4E22AQHzGWMhqJzhQA/feedshare-shrink_2048_1536/B4EZpJyo8jHUAw-/0/1762174606353?e=1764201600&amp;v=beta&amp;t=iGxULrEDqMnS01G5u-tsYbx-ItOvsM3SUjrAo8dIhLk" alt="No alternative text description for this image" /></p>
<p><img src="https://media.licdn.com/dms/image/v2/D4E22AQGM-xveLw1Vsg/feedshare-shrink_2048_1536/B4EZpJyo9HKkAw-/0/1762174606640?e=1764201600&amp;v=beta&amp;t=li7Y41QtRZlnR8heXGg-OWJMt0dC41WDC8dwMnKesEs" alt="No alternative text description for this image" /></p>
<p><img src="https://media.licdn.com/dms/image/v2/D4E22AQFLR3nY6q5Abg/feedshare-shrink_2048_1536/B4EZpJyo75HgAw-/0/1762174606894?e=1764201600&amp;v=beta&amp;t=8BYX7Z8zmdRBfE7cNX21aKEhLo7cG894gJ86vUEADNY" alt="No alternative text description for this image" /></p>
<h3 id="heading-client-side-encryption-encrypting-before-upload"><strong>Client-Side Encryption – Encrypting Before Upload</strong></h3>
<p>Finally, I tested <strong>Client-Side Encryption</strong>.<br />Before uploading the third image, I used a local encryption tool to encrypt it on my machine.<br />I then uploaded the already-encrypted file to S3.<br />Since the data was encrypted before leaving my system, AWS only stored the encrypted version — not the key.</p>
<p>After uploading all three files, I opened each object’s <strong>Properties</strong> tab and verified the encryption type.<br />S3 clearly displayed the encryption method used for each object, confirming that my setup worked as intended.<br />This visual confirmation helped me understand how encryption metadata appears in AWS.</p>
<h2 id="heading-what-i-learned">What I Learned</h2>
<p>By performing this hands-on lab, I gained a deeper understanding of <strong>how AWS secures data at rest</strong> and how much control each encryption method offers:</p>
<ul>
<li><p><strong>SSE-S3:</strong> AWS handles everything automatically.</p>
</li>
<li><p><strong>SSE-KMS:</strong> More granular key management and access control.</p>
</li>
<li><p><strong>Client-Side Encryption:</strong> Maximum control and responsibility.</p>
</li>
</ul>
<p>Encryption isn’t just about compliance — it’s about <strong>understanding where your data is protected</strong> and <strong>who controls the keys</strong>. As a <strong>Cloud or DevOps Engineer</strong>, knowing this is essential for securing cloud workloads and designing compliant architectures.</p>
]]></content:encoded></item></channel></rss>