<?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[From Wards to Wires]]></title><description><![CDATA[This publication is about a former hospital security officer turned cybersecurity specialist.]]></description><link>https://my-cyber-blog.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6ac862e4c679b3030ad5fa9b/c8e4d117-8f56-4abd-9b6a-9f43baaca9f2.jpg</url><title>From Wards to Wires</title><link>https://my-cyber-blog.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Thu, 12 Nov 2026 07:56:17 GMT</lastBuildDate><atom:link href="https://my-cyber-blog.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Web Application Scanning with OWASP ZAP]]></title><description><![CDATA[Performing a security assessment using OWASP ZAP and supporting open-source AppSec tools]]></description><link>https://my-cyber-blog.hashnode.dev/web-application-scanning-with-owasp-zap</link><guid isPermaLink="true">https://my-cyber-blog.hashnode.dev/web-application-scanning-with-owasp-zap</guid><dc:creator><![CDATA[Alexandra Kopiecki]]></dc:creator><pubDate>Fri, 23 Oct 2026 21:18:16 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/3af8e833-5fd0-4c2d-8d90-95c0ad16584f.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Coming soon...</p>
]]></content:encoded></item><item><title><![CDATA[Network Scanning and Host Enumeration with Nmap]]></title><description><![CDATA[Discovering unknown devices, evaluating potential vulnerabilities, and monitoring unauthorized access attempts]]></description><link>https://my-cyber-blog.hashnode.dev/network-scanning-and-host-enumeration-with-nmap</link><guid isPermaLink="true">https://my-cyber-blog.hashnode.dev/network-scanning-and-host-enumeration-with-nmap</guid><dc:creator><![CDATA[Alexandra Kopiecki]]></dc:creator><pubDate>Fri, 23 Oct 2026 21:13:32 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/e85b31b1-e898-4e3b-9fad-eadc84ca2d04.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Coming soon...</p>
]]></content:encoded></item><item><title><![CDATA[Linux Log File Analysis, Automation, and SIEM Visualization]]></title><description><![CDATA[Analyzing computer logs to identify suspicious login activity]]></description><link>https://my-cyber-blog.hashnode.dev/linux-log-file-analysis-automation-and-siem-visualization</link><guid isPermaLink="true">https://my-cyber-blog.hashnode.dev/linux-log-file-analysis-automation-and-siem-visualization</guid><dc:creator><![CDATA[Alexandra Kopiecki]]></dc:creator><pubDate>Fri, 23 Oct 2026 21:09:56 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/d2e80c71-1272-4c30-872e-da827c7c9d27.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Coming soon...</p>
]]></content:encoded></item><item><title><![CDATA[Cloud-Based Active Directory Setup and User Management]]></title><description><![CDATA[Setting up and managing a cloud-based Active Directory environment]]></description><link>https://my-cyber-blog.hashnode.dev/cloud-based-active-directory-setup-and-user-management</link><guid isPermaLink="true">https://my-cyber-blog.hashnode.dev/cloud-based-active-directory-setup-and-user-management</guid><dc:creator><![CDATA[Alexandra Kopiecki]]></dc:creator><pubDate>Fri, 23 Oct 2026 21:05:48 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/ebb272ba-5027-4b88-8aee-0812082ad857.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Coming soon...</p>
]]></content:encoded></item><item><title><![CDATA[Cloud Security Risk Assessment & GRC Simulation Using Azure]]></title><description><![CDATA[A simulated cloud security risk assessment in Microsoft Azure]]></description><link>https://my-cyber-blog.hashnode.dev/cloud-security-risk-assessment-grc-simulation-using-azure</link><guid isPermaLink="true">https://my-cyber-blog.hashnode.dev/cloud-security-risk-assessment-grc-simulation-using-azure</guid><dc:creator><![CDATA[Alexandra Kopiecki]]></dc:creator><pubDate>Fri, 23 Oct 2026 21:00:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/0139093f-ea53-4d00-8046-ef3dde2acc9a.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the ever-changing world of cybersecurity, Governance, Risk, and Compliance is paramount to ensuring the safety of technological business assets. No IT company these days can thrive without adhering to standardized industry principles. Cybersecurity specialists working in the sphere of GRC largely handle the legal side of cybersecurity. Oftentimes, their assessments include what's known as cloud security risk assessment. These assessments identify critical assets, analyze realistic threat scenarios, evaluate vulnerabilities, and quantify risk using a structured risk-scoring methodology.</p>
<p>In this post, I'll explain how I performed one of these assessments myself. I used an Azure cloud environment. I won't go over the process of how I created an account or set up a subscription. These are self-explanatory. However, I will show what steps I took and what standards I followed to complete an example of a typical regulatory assessment.</p>
<p>First and foremost, I created a resource group named GRC-Lab. I maintained default settings and chose the nearest region available to me. After creating the resource group, I launched a virtual machine called GRC-WIN-VM01. The VM was placed in the GRC-Lab resource group in the same region. We'll use Windows Server 2022 Datacenter as the image. Ordinarily, we'd want to optimize costs and use only what you need for an image with sufficient CPU. However, I compromised and used a larger size with an Azure spot VM. The size I wanted wasn't available, and Microsoft couldn't increase my quota due to the demand on their resources.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/4a2ff109-929d-478d-8ec9-0fe51a135f84.png" alt="ReviewandCreate" style="display:block;margin:0 auto" />

<blockquote>
<p>Notice how I left port 3389 (RDP) open to the public. This is intentional.</p>
</blockquote>
<p>The first real step in a GRC analysis is identifying what assets there are and taking inventory of them. The second and third steps are identifying threats and vulnerabilities, respectively. We establish these variables by asking these three questions:</p>
<ul>
<li>What do we care about?</li>
<li>What could harm it?</li>
<li>Why could that harm succeed?</li>
</ul>
<p>First, we look at the operating system.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/ba3b0618-7039-409f-a30e-298e8c008a3c.png" alt="OSSpec" style="display:block;margin:0 auto" />

<p>Then the network.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/62e5c1c3-c5ae-49a0-842b-d3ee1b15f2c8.png" alt="NetworkRules" style="display:block;margin:0 auto" />

<p>Privileged accounts with access to the system.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/a42f4ff1-b9be-48cd-afd8-b2c1cfbff5b0.png" alt="PrivilegedAccounts" style="display:block;margin:0 auto" />

<p>Here's a table of identified assets from these steps:</p>
<table>
<thead>
<tr>
<th align="left">Asset Category</th>
<th align="left">Asset</th>
<th align="left">Why It Matters</th>
</tr>
</thead>
<tbody><tr>
<td align="left">Compute</td>
<td align="left">Azure VM (Windows Server 2022)</td>
<td align="left">Hosts data &amp; services</td>
</tr>
<tr>
<td align="left">Identity</td>
<td align="left">Azureadmin</td>
<td align="left">Full system control</td>
</tr>
<tr>
<td align="left">Network</td>
<td align="left">20.106.57.245</td>
<td align="left">Entry point for attackers</td>
</tr>
<tr>
<td align="left">Cloud Control</td>
<td align="left">Azure subscription 1</td>
<td align="left">Management &amp; billing access</td>
</tr>
<tr>
<td align="left">OS</td>
<td align="left">Windows (Windows Server 2022 Datacenter)</td>
<td align="left">Vulnerable if unpatched</td>
</tr>
</tbody></table>
<p>If it holds value, grants access, or provides privilege, it’s an asset. Assets are not just servers; they include accounts, access, and permissions.</p>
<p>Next, identify threats. To do this, we ask three questions:</p>
<ul>
<li>Who would attack this?</li>
<li>How would they access it?</li>
<li>What attacks are common in the wild?</li>
</ul>
<table>
<thead>
<tr>
<th align="left">Asset</th>
<th align="left">Threat Scenario</th>
</tr>
</thead>
<tbody><tr>
<td align="left">Public RDP</td>
<td align="left">Internet brute-force attacks</td>
</tr>
<tr>
<td align="left">Admin account</td>
<td align="left">Password compromise</td>
</tr>
<tr>
<td align="left">OS</td>
<td align="left">Exploitation of known vulnerabilities</td>
</tr>
<tr>
<td align="left">Azure account</td>
<td align="left">Unauthorized configuration changes</td>
</tr>
<tr>
<td align="left">Logs</td>
<td align="left">Undetected malicious activity</td>
</tr>
</tbody></table>
<p>Keep in mind that threats can be internal or external. GRC addresses both. SOCs encounter threats like the ones above daily.</p>
<p>Finally, discover what vulnerabilities there are. These are weak points open to exploitation. Let's take a look at our network settings first.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/d555e0e0-c99f-4bfa-baea-f5adcdbed693.png" alt="RDPSecurityRisk" style="display:block;margin:0 auto" />

<p>The inbound port rules show what ports are open to the public, or if there are any. Open ports increase the attack surface.</p>
<blockquote>
<p>Note: Within our VM configuration, port 3389 is open. This leaves the VM open to the internet. Brute-force and credential-based attacks are common on RDP 3389.</p>
</blockquote>
<p>Where else should we look? Let's see which users are active and who has administrative access.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/ff7f8802-2ae1-4733-89d2-0c479178a2fa.png" alt="" style="display:block;margin:0 auto" />

<p>It shows that there is only one user (azureadmin) that has administrative access.</p>
<p>As for monitoring in Azure, the default mode does not indicate that any monitoring is taking place.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/077e7a1a-c8b0-4cf8-939c-61211cb4b4c9.png" alt="" style="display:block;margin:0 auto" />

<p>If we check the system logs, we can see every event within the OS is logged with an event ID, task category, and date/time.</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/04f0ad01-4ee1-44e5-a2dc-8c77648d5411.png" alt="" style="display:block;margin:0 auto" />

<p>If we make a table for the vulnerabilities we found, it might look something like this:</p>
<table>
<thead>
<tr>
<th align="left">Asset Category</th>
<th align="left">Vulnerability</th>
<th align="left">Why It Matters</th>
</tr>
</thead>
<tbody><tr>
<td align="left">Virtual Machine(VM)</td>
<td align="left">RDP exposed to the internet</td>
<td align="left">Increases attack surface</td>
</tr>
<tr>
<td align="left">Authentication</td>
<td align="left">No MFA</td>
<td align="left">Password compromise risk</td>
</tr>
<tr>
<td align="left">Operating System(OS)</td>
<td align="left">Default hardening</td>
<td align="left">Common exploit target</td>
</tr>
<tr>
<td align="left">Monitoring</td>
<td align="left">No SIEM</td>
<td align="left">Attacks may go unnoticed</td>
</tr>
<tr>
<td align="left">Identity</td>
<td align="left">Single admin</td>
<td align="left">No accountability</td>
</tr>
</tbody></table>
<p>As you can see, I have not gone above and beyond in any way to protect my assets. Windows Defender and Windows Firewall are turned on with their default settings. This level of vulnerability is what you can expect with default settings.</p>
<p>With all this information collected, we can create a risk assessment report which includes an executive summary; scope and environment; asset, threat, and vulnerability summary; risk prioritization; security controls and compliance mapping; recommended mitigation actions; and overall risk posture. Here is what a professional risk assessment report looks like:</p>
<h1><strong>Risk Assessment Report</strong></h1>
<ol>
<li>Executive Summary</li>
</ol>
<p>This report summarizes the findings of a cloud security risk assessment conducted on a single Azure-hosted virtual machine, from a Governance, Risk, and Compliance (GRC) perspective.</p>
<p>The goal of this assessment is to identify critical assets, evaluate potential threat scenarios, assess vulnerabilities, quantify risks, and recommend security controls that align with recognized industry frameworks.</p>
<p>The assessment identified several medium-to-high risks, primarily related to exposed remote access, the absence of multi-factor authentication (MFA), inadequate operating system hardening, and limited centralized monitoring. Although no active exploitation was detected, these findings highlight common cloud misconfigurations that could be exploited if not addressed.</p>
<ol start="2">
<li>Scope and Environment</li>
</ol>
<p><strong>Assessment Scope:</strong></p>
<p>● Single Azure Virtual Machine</p>
<p>● No additional cloud services or applications included</p>
<p>● Assessment performed from a GRC (non-exploitative) perspective</p>
<table style="min-width:50px"><colgroup><col style="min-width:25px"></col><col style="min-width:25px"></col></colgroup><tbody><tr><td><p><strong>Item</strong></p></td><td><p><strong>Description</strong></p></td></tr><tr><td><p>Cloud Provider</p></td><td><p>Microsoft Azure</p></td></tr><tr><td><p>Resource Group</p></td><td><p>GRC-Lab</p></td></tr><tr><td><p>Virtual Machine Name</p></td><td><p>GRC-WIN-VM01</p></td></tr><tr><td><p>Operating System</p></td><td><p>Windows Server 2022 Datacenter</p></td></tr><tr><td><p>Access Method</p></td><td><p>Remote Desktop Protocol (RDP)</p></td></tr><tr><td><p>Public Exposure</p></td><td><p>Yes (Public IP enabled)</p></td></tr><tr><td><p>Administrative Account</p></td><td><p>azureadmin</p></td></tr></tbody></table>

<ol start="3">
<li>Asset, Threat, and Vulnerability Summary</li>
</ol>
<table style="min-width:100px"><colgroup><col style="min-width:25px"></col><col style="min-width:25px"></col><col style="min-width:25px"></col><col style="min-width:25px"></col></colgroup><tbody><tr><td><p><strong>Asset</strong></p></td><td><p><strong>Threat</strong></p></td><td><p><strong>Vulnerability</strong></p></td><td><p><strong>Why It Matters</strong></p></td></tr><tr><td><p>Azure Machine (VM)</p></td><td><p>Brute-force attack</p></td><td><p>RDP exposed to the internet </p></td><td><p>Easy entry point for attackers</p></td></tr><tr><td><p>Admin Account</p></td><td><p>Credential theft</p></td><td><p>No MFA</p></td><td><p>Full system compromise possible</p></td></tr><tr><td><p>Operating System (OS) </p></td><td><p>Exploitation</p></td><td><p>Default hardening</p></td><td><p>Common Windows attack vectors</p></td></tr><tr><td><p>Logs/Monitoring</p></td><td><p>Undetected attacks</p></td><td><p>No SIEM/No centralized</p></td><td><p>Delayed detection of logging incidents</p></td></tr><tr><td><p>Azure Subscription</p></td><td><p>Misconfiguration</p></td><td><p>Single admin</p></td><td><p>High-impact if misused</p></td></tr></tbody></table>

<ol start="4">
<li>Risk Prioritization</li>
</ol>
<p>Risks were scored using a standard <strong>Likelihood × Impact model.</strong></p>
<p><strong>Risk Scoring Model:</strong></p>
<p>● Likelihood: 1 (Low) → 5 (High)</p>
<p>● Impact: 1 (Low) → 5 (High)</p>
<p>● Risk Score = Likelihood × Impact</p>
<h3><strong>Risk Register (Core GRC Artifact)</strong></h3>
<table style="min-width:247px"><colgroup><col style="min-width:25px"></col><col style="width:122px"></col><col style="min-width:25px"></col><col style="min-width:25px"></col><col style="min-width:25px"></col><col style="min-width:25px"></col></colgroup><tbody><tr><td><p><strong>Asset</strong></p></td><td><p><strong>Threat</strong></p></td><td><p><strong>Likelihood</strong></p></td><td><p><strong>Impact</strong></p></td><td><p><strong>Risk Score</strong></p></td><td><p><strong>Justification</strong></p></td></tr><tr><td><p>RDP</p></td><td><p>Brute-force attack</p></td><td><p>4</p></td><td><p>4</p></td><td><p>16</p></td><td><p>Public Exposure</p></td></tr><tr><td><p>Admin</p></td><td><p>Credential compromise</p></td><td><p>3</p></td><td><p>5</p></td><td><p>15</p></td><td><p>Full System Control</p></td></tr><tr><td><p>OS</p></td><td><p>Unpatched vulnerabilities</p></td><td><p>3</p></td><td><p>4</p></td><td><p>12</p></td><td><p>Common Windows Attack</p></td></tr><tr><td><p>Azure</p></td><td><p>Privilege misuse</p></td><td><p>2</p></td><td><p>5</p></td><td><p>10</p></td><td><p>High Impact</p></td></tr><tr><td><p>Logs</p></td><td><p>Undetected attack</p></td><td><p>3</p></td><td><p>3</p></td><td><p>9</p></td><td><p>Delayed Responses</p></td></tr></tbody></table>

<ol start="5">
<li>Security Controls &amp; Compliance Mapping</li>
</ol>
<h3><strong>Control Mapping Table</strong></h3>
<table style="min-width:100px"><colgroup><col style="min-width:25px"></col><col style="min-width:25px"></col><col style="min-width:25px"></col><col style="min-width:25px"></col></colgroup><tbody><tr><td><p><strong>Risk</strong></p></td><td><p><strong>Security Control</strong></p></td><td><p><strong>Control Type</strong></p></td><td><p><strong>Framework</strong></p></td></tr><tr><td><p>RDP attacks</p></td><td><p>Restrict IP access</p></td><td><p>Preventive</p></td><td><p>CIS 4</p></td></tr><tr><td><p>Credential theft</p></td><td><p>MFA enforcement</p></td><td><p>Preventive</p></td><td><p>NIST CSF PR.AC</p></td></tr><tr><td><p>OS exploits</p></td><td><p>Patch management</p></td><td><p>Corrective</p></td><td><p>CIS 7</p></td></tr><tr><td><p>No detection</p></td><td><p>Centralized logging</p></td><td><p>Detective</p></td><td><p>NIST CSF DE.CM</p></td></tr><tr><td><p>Privilege misuse</p></td><td><p>RBAC enforcement</p></td><td><p>Preventive</p></td><td><p>CIS 5</p></td></tr></tbody></table>

<p>Explanation:</p>
<p>● <strong>RDP attacks</strong> are mitigated by restricting inbound access to trusted IP addresses, a <strong>preventive control</strong> aligned with <strong>CIS Control 4</strong>, which focuses on secure configuration and controlled network access.</p>
<p>● <strong>Credential theft</strong> is addressed through <strong>multi-factor authentication (MFA)</strong>, a <strong>preventive control</strong> mapped to <strong>NIST</strong> <strong>PR.AC</strong>, which emphasizes strong identity and access management.</p>
<p>● <strong>Operating system exploits</strong> are reduced through <strong>patch management</strong>, a <strong>corrective control</strong> aligned with <strong>CIS Control 7</strong>, ensuring vulnerabilities are remediated on time.</p>
<p>● <strong>Lack of visibility or detection</strong> is mitigated by enabling <strong>centralized logging</strong>, a <strong>detective control</strong> mapped to <strong>NIST</strong> <strong>DE.CM</strong>, which focuses on continuous monitoring and event detection.</p>
<p>● <strong>Privilege misuse</strong> is controlled through <strong>role-based access control (RBAC)</strong>, a <strong>preventive control</strong> aligned with <strong>CIS Control 5</strong>, enforcing least privilege principles.</p>
<ol start="6">
<li>Recommended Mitigation Actions</li>
</ol>
<p>● Restrict RDP access via Network Security Groups (NSGs) to trusted IP ranges.</p>
<p>● Enable multi-factor authentication (MFA) for all administrative accounts.</p>
<p>● Apply regular operating system patches and updates.</p>
<p>● Enable Azure Monitor or Defender for centralized logging and alerts.</p>
<p>● Implement role-based access control (RBAC) for Azure resources.</p>
<ol start="7">
<li>Overall Risk Posture</li>
</ol>
<p>Based on the findings, the overall risk posture of the assessed environment is Medium to High. While the environment is small, the presence of exposed access paths and limited monitoring significantly increases risk.</p>
<h2><strong>Key Takeaways</strong></h2>
<p>Some things we learned along the way to produce a GRC risk assessment include:</p>
<p>● How to set up a cloud-based environment in Azure by creating a resource group and deploying a Windows VM to serve as the assessment scope.</p>
<p>● How to identify and document which critical assets, threats, and vulnerabilities with a cloud-hosted VM should be in the report.</p>
<p>● How to quantify cybersecurity risks.</p>
<p>● What mapping technical security controls to recognized industry frameworks looks like.</p>
<p>● What a professional GRC-style risk assessment report should look like.</p>
<p>● How to translate technical findings into business risk, supporting audit readiness, risk communication, and informed security decision-making.</p>
]]></content:encoded></item><item><title><![CDATA[From Wards to Wires]]></title><description><![CDATA[From the ER to the Cloud: How Hospital Security Taught Me to Engineer]]></description><link>https://my-cyber-blog.hashnode.dev/from-wards-to-wires</link><guid isPermaLink="true">https://my-cyber-blog.hashnode.dev/from-wards-to-wires</guid><dc:creator><![CDATA[Alexandra Kopiecki]]></dc:creator><pubDate>Thu, 22 Oct 2026 23:28:24 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/63087b8a-8d56-414d-98d0-49d7572c50b4.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://alexandra-kopiecki-cloud-resume.com/">Link to Cloud Resume Challenge</a></p>
<p>It wasn't too long ago that I decided I wanted to pursue a career in the IT industry, transitioning from my chaotic hospital security job to something aligned with my degree--a B.S. in mathematics with a focus in computational science, to be exact. My problem was how. I had entertained the idea of becoming an actuary post-graduation; however, this never really suited my values. With the abysmal job market of 2023 (I graduated in December of 2022), it was clear to me things were going to be challenging. Amid the hiring freezes, followed by the mass layoffs due to the A.I. bubble, a new skill set was needed amongst those who would stand out to hiring managers. Obtaining a computer science degree was no longer the gold standard; in fact, many post-graduates claim a degree in computer science isn't worth it anymore, partly due to A.I.'s ability to code for entry-level roles. If one isn't able to compete for entry-level roles, how is one to hope they can even become a mid-level engineer, let alone enter the industry?</p>
<p>Luckily, I knew someone who knew someone who knew another someone. This individual worked at Accenture. They were quite forthright about how stagnant the industry was at the time of our chat. Though they mentioned that if I wanted to break into the industry, a bachelor's degree would not mean much compared to the pandemic hiring of 2020-2022, when you could show up after a simple programming bootcamp and get hired. She said the industry had shifted, and cloud skills were paramount. Gone were the old days of normal on-premises computing, and in were the cloud native solutions. Okay, get the AWS Certified Cloud Practitioner certificate, and I've got a chance, right? Well, not quite…</p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/e16ea32b-4e6a-4732-931e-c5c5bd670c31.png" alt="" style="display:block;margin:0 auto" />

<p>It seemed to me I'd be climbing up a steep mountain. While my mathematics/computational science degree gave me a strong theoretical foundation, I lacked a production-ready portfolio to prove I had skin in the game. So, where to go from here? Upon digging deeper into what companies desire from some prominent tech industry voices on YouTube, I found that many expect future employees to have a decent handle on cloud-native skills. How does one prove that? In comes the AWS Cloud Resume Challenge. One look at the project, and I thought, "This won't be too bad, I think..." Mind you, I decided to learn a programming language before diving headlong into this project, namely Python. This was considered the most widely used/desired language in the industry, and since I had taken Intro to Python Programming in college (and was a teacher's assistant for said course), it made the most sense to get a grip on this first, seeing that the challenge required some Python skills.</p>
<p>Fast forward, here I am working on the challenge. While the steps outlined are relatively straightforward, some were more taxing than initially anticipated. While most people who take this challenge loathe CORS (Cross-Origin Resource Sharing), I found my frustration in other areas. One of them was getting my Lambda function to work properly. Some of this was simple syntax that output an error that wasn't truly relevant to my issue. Sometimes it was policy attached to my execution function. At one point, so fed up that I couldn't understand why my policy was misaligned with my function, I decided to delete my function, CloudFront Gateway, and my DynamoDB table, and completely start over. This brought me back to how it was interacting with intoxicated patients in the Behavioral Health unit. You could tell them something, lay it out clearly and concisely, lead them to reason, only to end up back at square one with them asking you, "Why?" for the thousandth time. Yes, programming and debugging take patience, just like de-escalating behavioral patients. There are lots of whys and hows wrapped up in the process. When all else fails, go back to the foundation rather than going in circles. It was during one of these grueling debugging sessions, trying to move data from my API to my database, that I realized AWS infrastructure operates much like the workflows of my old hospital workplace.</p>
<blockquote>
<p>If you haven't checked out the AWS Cloud Resume Challenge for yourself, there are a plethora of blogs out there describing the ins and outs of the challenge. For the sake of simplicity, here is an overview of what the challenge entailed:</p>
</blockquote>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/0a33fc7c-0908-4c37-8de5-6f09a0113598.jpg" alt="AWS-Cloud-Resume-Challenge-Overview" style="display:block;margin:0 auto" />

<p>Essentially, the challenge was constructing and integrating the front-end and back-end of a "static" website, then automating its deployment using CI/CD (Continuous Integration/Continuous Deployment). Since most DevOps engineers use the CLI in their day-to-day jobs, I needed to learn how to deploy my website from both the AWS CLI and the AWS Console. Note: I used Terraform, Visual Studio Code, and AWS CLI in lieu of some elements shown in the diagram.</p>
<blockquote>
<p>To make sense of how these elements talk to one another, it's helpful to look at it through the lens of my old career in healthcare operations.</p>
</blockquote>
<p><strong>The Front End: Patient Check-In</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/b66a1d4c-fff6-4ee2-9ea6-510a239695e1.png" alt="" style="display:block;margin:0 auto" />

<p>Let's think of the website visitor as a family member coming to visit a patient. They start at the outer security desk/door screener, which acts like <strong>Route 53 (DNS)</strong>, ensuring the visitor has the right address and routing them to the correct unit. Next, they meet the floor's HUC (Health Unit Coordinator), who acts like <strong>CloudFront (CDN)</strong>. The HUC verifies the visitor’s identity and relationship to the patient, ensures the environment is appropriate to enter at the time (<strong>ACM/SSL Certificate</strong>), and directs them down the right hallway so they aren't roaming around sensitive areas where confidential information protected by HIPAA is discussed. Finally, they arrive at the patient's room. The patient's room is our <strong>S3 Bucket</strong>—it holds the actual content the visitor came to see--the patient (the HTML/CSS frontend).</p>
<p><strong>The Back End: The Visitor Log</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/3699f65c-809e-4804-8794-668cb42e18e8.jpg" alt="" style="display:block;margin:0 auto" />

<p>Every time a visitor steps into that room, we would like to log it. This is where the backend infrastructure kicks in. The act of walking into the room triggers a sensor—an API call. This call hits the <strong>API Gateway</strong>, which acts like the paging system notifying the nurse by phone, translating the front-end event into a directive the medical staff can understand. The pager alerts the <strong>Lambda Function</strong> (the Nurse). The nurse doesn't sit in the room permanently; they appear when triggered by the page, execute a specific task, and exit the room. The nurse’s task is to walk over to the <strong>DynamoDB Table</strong> (the Patient Chart/Logbook) and increment the visitor count by one. In reality, do nurses have to log when a visitor comes? Well, no, only if it is clinically relevant. Such would be if the patient has disruptive visitors who pose a safety concern, maybe this visitor has POA over this patient and has pertinent medical knowledge of the patient, or perhaps the patient just doesn't want visitors. All of these are valid reasons for charting visits. Whether or not the visitor is allowed into the room depends on the policy side of things.</p>
<p><strong>The Infrastructure: Hospital Policy &amp; Guardrails</strong></p>
<img src="https://cdn.hashnode.com/uploads/covers/6ac862e4c679b3030ad5fa9b/2c0b8de2-b487-4aa4-98d6-196d28d25bda.png" alt="" style="display:block;margin:0 auto" />

<p>None of this movement happens without strict oversight. <strong>IAM Policies</strong> act as the hospital's internal security team. They explicitly dictate which individuals have permission to access which areas of the hospital. Meanwhile, the <strong>Terraform</strong> within our <strong>CI/CD pipeline</strong> functions much like <strong>Epic</strong> (the Electronic Health Record system). Epic acts as the digital master record for the patient. Just as Epic automatically processes a clinician's input, runs safety checks, and instantly updates a patient's chart—our pipeline triggers when we push code changes from the <strong>AWS CLI</strong> to our <strong>GitHub</strong> repository, using Terraform to read the new configurations and smoothly update our live infrastructure without manual intervention. To keep sensitive data safe, we use a .gitignore file, which works exactly like <strong>HIPAA protocols</strong>, redacting sensitive credentials and PII before anything is pushed to a public space.</p>
<blockquote>
<p>While no analogy is perfect, mapping these cloud services to the high-stakes, structured world of a bustling hospital helped me frame what I was building. It proved to me that the problem-solving, patience, and systemic thinking required in healthcare are the same traits that make a great cloud engineer.</p>
</blockquote>
<p>The good news is that as the industry shifts, so do our skill sets. Now that the dilemma of 2023 has passed and the industry is settling, it is clear that pivoting post-graduation is a time-honored tradition in tech. Many of the best engineers enter the field from vastly different backgrounds, and I feel right at home among people with varied life experiences. It is much like my time in hospital security: everyone brought a unique perspective to the table, and I have found that I do too.</p>
<p>Was the Cloud Resume Challenge worth it? Absolutely. If you are reading this amid the challenges of the current job market, do not give up. Nothing truly precious in life comes easily, and anything worth doing will be hard—you can count on that. The key is simply to trust your foundations, stay patient, and keep moving forward.</p>
<p><a href="https://alexandra-kopiecki-cloud-resume.com/">Link to Cloud Resume Challenge</a></p>
]]></content:encoded></item></channel></rss>