<?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: JosephHonpah</title>
    <description>The latest articles on DEV Community by JosephHonpah (@josephhonpah).</description>
    <link>https://dev.to/josephhonpah</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%2F2515824%2Fc625d4ea-c8da-4168-b90d-09d94fbc89ff.png</url>
      <title>DEV Community: JosephHonpah</title>
      <link>https://dev.to/josephhonpah</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/josephhonpah"/>
    <language>en</language>
    <item>
      <title>🚀🚀Setting Up AWS Firewall Manager Used For Auditing Security Groups in AWS Organization accounts.</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Fri, 21 Mar 2025 14:22:43 +0000</pubDate>
      <link>https://dev.to/josephhonpah/-setting-up-aws-firewall-manager-used-for-auditing-security-groups-in-aws-organization-6g3</link>
      <guid>https://dev.to/josephhonpah/-setting-up-aws-firewall-manager-used-for-auditing-security-groups-in-aws-organization-6g3</guid>
      <description>&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%2Fzvae7xjymvfgybma1wuf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzvae7xjymvfgybma1wuf.jpeg" width="766" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Managing security at scale in a multi-account AWS environment can be challenging. One common concern is ensuring security groups are configured according to your organization's security policies. AWS Firewall Manager simplifies this by enabling centralized management and auditing of security groups across AWS Organization accounts.&lt;/p&gt;

&lt;p&gt;In this post, we’ll walk through the process of setting up AWS Firewall Manager to audit security groups in an &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" rel="noopener noreferrer"&gt;AWS Organization&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;❓What is AWS Firewall Manager?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html" rel="noopener noreferrer"&gt;AWS Firewall Manager&lt;/a&gt; is a security management service that makes it easier to centrally configure and manage firewall rules across your accounts and applications in AWS Organizations. You can use Firewall Manager to manage &lt;a href="https://aws.amazon.com/waf/" rel="noopener noreferrer"&gt;AWS WAF&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/waf/latest/developerguide/ddos-advanced-summary.html" rel="noopener noreferrer"&gt;AWS Shield Advanced&lt;/a&gt;, &lt;a href="https://www.google.com/search?q=aws%20vpc&amp;amp;oq=aws%20vpc&amp;amp;gs_lcrp=EgZjaHJvbWUyDwgAEEUYORiRAhiABBiKBTINCAEQABiRAhiABBiKBTINCAIQABiRAhiABBiKBTIMCAMQABhDGIAEGIoFMg0IBBAAGJECGIAEGIoFMgcIBRAAGIAEMg0IBhAAGJECGIAEGIoFMgcIBxAAGIAEMgcICBAAGIAEMgcICRAAGIAEMgcIChAAGIAEMgcICxAAGIAEMgcIDBAAGIAEMgcIDRAAGIAEMgcIDhAAGIAE0gEIMTA2MWowajSoAg6wAgHxBR2vUIx7S6ZZ&amp;amp;client=ms-android-oppo-terr1-rso2&amp;amp;sourceid=chrome-mobile&amp;amp;ie=UTF-8" rel="noopener noreferrer"&gt;VPC&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.html" rel="noopener noreferrer"&gt;security groups&lt;/a&gt;, &lt;a href="https://aws.amazon.com/network-firewall/" rel="noopener noreferrer"&gt;AWS Network Firewall&lt;/a&gt;, and more.&lt;/p&gt;

&lt;p&gt;One powerful feature is Security Group policies, which allow you to audit and enforce security group rules at scale.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;✍🏾 Why Audit Security Groups?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Improperly configured security groups can expose resources to unnecessary risk. Auditing ensures:&lt;/p&gt;

&lt;p&gt;No overly permissive rules (e.g., allowing 0.0.0.0/0 for SSH or RDP)&lt;/p&gt;

&lt;p&gt;Consistent rules across accounts and VPCs. Identification and correction of non-compliant security groups.&lt;/p&gt;

&lt;p&gt;This Demo is specifically for auditing security groups in AWS organizations accounts.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;⚗️ Pre-Requisites&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;AWS Organizations Setup&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i) In this Demo we are not setting up the AWS Organization and all accounts should be part of an AWS Organization.&lt;/p&gt;

&lt;p&gt;ii) AWS Config must be enabled in all member accounts (Firewall Manager relies on &lt;a href="https://aws.amazon.com/config/" rel="noopener noreferrer"&gt;AWS Config&lt;/a&gt; for resource visibility).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Firewall Manager Administrator Account&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i) You need to designate an administrator account for Firewall Manager in AWS Organizations. This account will manage and deploy policies across the org.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;em&gt;Permissions&lt;/em&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;i) The administrator account needs the necessary IAM permissions to manage Firewall Manager policies and read AWS Config data.&lt;/p&gt;

&lt;p&gt;With all the above present in your good to go. I have AWS organizations setup already with management account “Josephndambombi” ending with ××××××××6565 and member account “Firewall1” ending with ××××××××3165, which was used for this Demo.&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%2F65bhy1z7e857u72tx301.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65bhy1z7e857u72tx301.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣ &lt;strong&gt;STEP 1&lt;/strong&gt;: Setting up Firewall Manager from the management account of AWS Organization and resources such as SG, EC2 and AWS config from member account.
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Firstly, you need to log into the management account (Josephndambombi “accountID xxxxxxxx6565"). Navigate to the search bar of the management console and search for AWS Firewall Manager, click on get started.&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%2Fkl0lmd6g8fjlcvtxwar8.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkl0lmd6g8fjlcvtxwar8.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Put in the account Account ID of your management account (xxxxxxxx6565) and click on the Create administrator account.&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%2F2ml81pm0vpr4kkzfq5rj.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ml81pm0vpr4kkzfq5rj.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login to your member account (firewall1 “account ID xxxxxxxx3165") and the first prerequisite for Firewall Manager is AWS config on member accounts. Search for AWS config on the search bar and if it’s the first time enabling config click on 1-click setup. If it’s not the first time, you should click on settings and enable. Keep everything as default, click on create a bucket and create.&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%2Fqhiagg07azz1ci5xvubx.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhiagg07azz1ci5xvubx.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;CREATING SECURITY GROUP&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Once the AWS config is created, we will be needing two SGs. One which will act as the insecure SG for firewall manage to detect as non-complaint and one which will be secure to test if the firewall manager will detect complaint SG. Navigate to the EC2 console. Scroll down, click on the security group and create a security group.&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%2F7m13uvzpvwhdnni6p2f0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7m13uvzpvwhdnni6p2f0.jpeg" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give it a name (Insecure-SG) , a description and scroll down to inbound rules.&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%2Fsglrwsplog5tdyqmrafx.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsglrwsplog5tdyqmrafx.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;For inbound rules, click on add rule and add port 3306 for MySQL DB. For IP address put any public IP (215.165.85.250/32). Since databases are not allowed to be accessible by public addresses this will be insecure SG and want FWM to detect this insecure access. Scroll down and click to create SG.&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%2F1pbqyia67eidjnzohhiy.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pbqyia67eidjnzohhiy.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Need to create another security group which is the secure SG for this demo (Secure-SG). Click on create security SG.&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%2Fk94dvublo2131yk3stgp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk94dvublo2131yk3stgp.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give it a name (Secure-SG), description and scroll down to inbound rules.&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%2Fbvy54twr8dje6k205k5c.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvy54twr8dje6k205k5c.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on add rule, type “3306" for port and a private IP address"10.0.0.0/32", Which will be the secure SG. Scroll down and click create SG&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%2Fz32ate1jd744rrlglah7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz32ate1jd744rrlglah7.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;CREATING EC2 INSTANCE.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;We need two ec2 instances to attach to the insecure and secure SG to test if the firewall manager is going to detect them. Navigate to the EC2 console and click on launch instances.&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%2Frtslloksgwiu41mfcvjd.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frtslloksgwiu41mfcvjd.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give it a name (Demo-EC2) scroll down and keep everything as default.&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%2Fv2mw3s9rw0yclnjwq2na.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2mw3s9rw0yclnjwq2na.jpeg" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proceed without a key pair, Check ✅ on the select existing Security group and attach the insecure SG created above (Insecure-SG). Scroll down and click on the launch instance.&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%2Fjf89dxuum2g15qhe7l53.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjf89dxuum2g15qhe7l53.jpeg" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create the second instance which will be the secure ec2. Click on the launch instance.&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%2Frfb1mfh4gm905am8bdv9.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfb1mfh4gm905am8bdv9.jpeg" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give it a name (Secure-Demo-EC2) and scroll down.&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%2Fgh8mwpj8eeyqfqgrsmap.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgh8mwpj8eeyqfqgrsmap.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Proceed without a key pair, click on select existing Security group and attach the secure security group (secure-SG). Scroll down and click the launch instance.&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%2Fws1y1lvhk7qlosge0nog.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fws1y1lvhk7qlosge0nog.jpeg" width="800" height="351"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You should now have two ec2 instances. One which is secure and one insecure instance.&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%2Fzgampmbisikqu2shcv01.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgampmbisikqu2shcv01.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Setting up an Ideal(most secure to follow) security group in the management account(Josephndambombi), the firewall manager will evaluate security groups in member accounts(firewall1) based on the Ideal SG.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Back on management account (Josephndambombi “accountID: xxxxxxxx6565") navigate to EC2, scroll down to security group and click create security group.&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%2Fiu8v4dljjazmmbx92fcp.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiu8v4dljjazmmbx92fcp.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give it a name (Audit-SG), a description and scroll down to inbound rules.&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%2Fzvpoql8dzvchjku71b20.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzvpoql8dzvchjku71b20.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the add rule, port 3306 and on the source IP attach the entire CIDR range for private IP ranges (10.0.0.0/8), which will not allow any public IP range. Scroll down and click on create security group.&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%2Fnuh7c0opw06wtfs2hxpe.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuh7c0opw06wtfs2hxpe.jpeg" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigate to the firewall manager on the management account (Josephndambombi), click on security policies and click on the create policy.&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%2F5lwhwx85dozupup0pk1b.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5lwhwx85dozupup0pk1b.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep in mind the region your using to create these resources in management account and in member account (firewall1). Select region “US East(N.Virginia)” , under policy details since we are auditing SG you check on the security group. Check ✅ on Auditing and enforcement of security group rules, Click next.&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%2F7zi0jw2ex6iz0bm7rr7v.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zi0jw2ex6iz0bm7rr7v.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give a policy name(DB-Access-SG-Policy), give a description. Check on configure custom policy rules and scroll down.&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%2Fudp0qar2x1t9mhh0er3j.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudp0qar2x1t9mhh0er3j.jpeg" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the custom rule, click Add security groups and select the Ideal SG (Audit-SG) which you created for the firewall manager to use, Click next.&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%2Fu6vur3ejy6mkuq122dk0.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6vur3ejy6mkuq122dk0.jpeg" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check ✅ Include all accounts under my organization, select all resource type and resources check ✅ Include all resources that match the selected resource type. Click next&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%2Flare49griadnohr23cp7.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flare49griadnohr23cp7.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keep policy tags as default and click next&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%2Fbhaazco358cjn427qqym.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbhaazco358cjn427qqym.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review details, scroll down and click create policy.&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%2Fh9i8xub7a0fayawvrmgf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh9i8xub7a0fayawvrmgf.jpeg" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;2️⃣STEP 2: Testing if firewall manager can detect these secure and insecure SG, instances and eni which are attached to the instances upon creation.&lt;/strong&gt;
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;First switching to the member account (firewall1), navigate to AWS config you should see 3 complaint and 3 non-complaint resources. Which are the secure and insecure resources created at the beginning of this demo.&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%2Ftl81du240vsyhi02bz2z.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftl81du240vsyhi02bz2z.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;click on Rules and you should see Firewall manager has created a configuration to detect non compliant resources.&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%2Fptcr9014waw6ax1t1dln.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fptcr9014waw6ax1t1dln.jpeg" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the created rule and you will see the three resources which were created early in this Demo to detect insecure resources. That is the Insecure-SG, Demo-EC2 and the Eni attached to the EC2 instance as non-compliant. Indicating it works properly.&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%2Fg8kzh9ulw7y0tlza879j.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8kzh9ulw7y0tlza879j.jpeg" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login to the management account (Josephndambombi) to check what Firewall Manager has found as complaint and non compliant in the AWS organization. Click on security policies (DB-Access-SG-Policy).&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%2Fznut7tzvj5zfzif2283h.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fznut7tzvj5zfzif2283h.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will find the management account (Josephndambombi “xxxxxxxx6565") to be complaint and the member account (firewall1 “xxxxxxxx3165") to be non-compliant due to 3 insecure resources in the member account. Click on the member account.&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%2Fkoeoz5psl6xcyaymwci6.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkoeoz5psl6xcyaymwci6.jpeg" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You will find the same insecure resources which were created above( Demo-EC2, Insecure-SG and the Eni of the instance). And under validation reason you will see it violates the audit security group policy created earlier.&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%2Fsr7ng94wcxyvks78n580.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsr7ng94wcxyvks78n580.jpeg" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;To solve this just enable auto-remediation in the firewall manager or you login to the member account and edit the inbound rules of the insecure-SG to have a private source IP range.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Do not forget to clean up resources first by terminating the EC2 instances, deleting SGs and delete firewall policy&lt;/p&gt;

&lt;p&gt;Hurray 🎉 and we just used config and firewall manager to track complaint and non-complaint resources in AWS organizations.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Start in Audit Mode before enabling remediation to understand the impact.&lt;/li&gt;
&lt;li&gt;Tag your resources to simplify policy scoping.&lt;/li&gt;
&lt;li&gt;Enable AWS Config Aggregators to get a unified view across regions and accounts.&lt;/li&gt;
&lt;li&gt;Use AWS Security Hub to aggregate and prioritize security findings.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;AWS Firewall Manager makes it easier to manage and audit security groups across multiple accounts in AWS Organizations. By following this guide, you can ensure your security groups adhere to best practices and reduce the risk of misconfiguration.&lt;/p&gt;

&lt;p&gt;If you found this post helpful or have questions about AWS security management, feel free to comment below! 👇🏾 And please like and share for more contents like this 💗&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #AWSCommuintyBuilder #Letslearn #Security
&lt;/h1&gt;

&lt;p&gt;By &lt;a href="https://medium.com/@honpahj" rel="noopener noreferrer"&gt;Joseph Ndambombi Honpah&lt;/a&gt; on &lt;a href="https://medium.com/p/6be406907363" rel="noopener noreferrer"&gt;March 20, 2025&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@honpahj/setting-up-aws-firewall-manager-used-for-auditing-security-groups-in-aws-organization-accounts-6be406907363" rel="noopener noreferrer"&gt;Canonical link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Exported from &lt;a href="https://medium.com" rel="noopener noreferrer"&gt;Medium&lt;/a&gt; on March 21, 2025.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>aws</category>
      <category>security</category>
      <category>learning</category>
    </item>
    <item>
      <title>HANDS ON GUIDE TO AWS ROLE AND PERMISSIONS (STS ASSUME ROLE)</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Sat, 08 Mar 2025 14:46:52 +0000</pubDate>
      <link>https://dev.to/josephhonpah/hands-on-guide-to-aws-role-and-permissions-sts-assume-role-3k0g</link>
      <guid>https://dev.to/josephhonpah/hands-on-guide-to-aws-role-and-permissions-sts-assume-role-3k0g</guid>
      <description>&lt;h1&gt;
  
  
  DEMO GUIDE TO AWS ROLE: AWS SECURITY TOKEN SERVICE (STS) Assume Role.
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AGrwSFvMQPJExLjUF41G8yQ.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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AGrwSFvMQPJExLjUF41G8yQ.png" alt="captionless image" width="718" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@honpahj/demo-guide-to-aws-roles-and-permissions-aws-security-token-service-sts-assume-role-1c5e532b6769" rel="noopener noreferrer"&gt;Reference&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://medium.com/@honpahj?source=post_page---byline--1c5e532b6769---------------------------------------" rel="noopener noreferrer"&gt;Joseph Ndambombi Honpah&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;7 hours ago&lt;/p&gt;

&lt;p&gt;🔑 &lt;strong&gt;What is Assume Role?&lt;/strong&gt;&lt;br&gt;
AWS STS Assume Role allows you to grant temporary, limited-privilege credentials to users or applications. This is especially useful for scenarios like granting EC2 instances access to AWS resources without hard coding long-term credentials.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Why Use Assume Role for EC2 Access?&lt;/strong&gt;&lt;br&gt;
1️⃣&lt;strong&gt;Enhanced Security:&lt;/strong&gt; Avoid storing long-term credentials on your instances.&lt;br&gt;
2️⃣&lt;strong&gt;Granular Permissions:&lt;/strong&gt; Assign only the permissions needed for specific tasks.&lt;br&gt;
3️⃣&lt;strong&gt;Auditability:&lt;/strong&gt; Track and monitor temporary credentials for better compliance.&lt;/p&gt;

&lt;p&gt;✍🏾In this Demo you want your management account to grant ONLY short term credentials for EC2 access to your newly created IAM user, to perform actions on EC2 console.&lt;/p&gt;

&lt;p&gt;📝&lt;strong&gt;Prerequisite for this Demo.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1️⃣Two &lt;a href="https://aws.amazon.com/iam/" rel="noopener noreferrer"&gt;AWS IAM&lt;/a&gt; user accounts created by navigating to &lt;a href="https://aws.amazon.com/console/" rel="noopener noreferrer"&gt;AWS MANAGEMENT CONSOLE&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2️⃣Note pad for writing.&lt;/p&gt;

&lt;p&gt;📈Cost for this Demo is zero $ unless you choose to spin up EC2 instances which may incur some charges or except you’re in Free Tier.&lt;/p&gt;

&lt;p&gt;1️⃣ Creating a new IAM user just for demo, if you have one already set up you can skip this section.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Navigate to the management console for the management account and search IAM and click on it.&lt;/li&gt;
&lt;li&gt;  Go to users and click on the create user.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AL6Rc-fKGYX1IJAYueF5m5A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AL6Rc-fKGYX1IJAYueF5m5A.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give the IAM user name (Demo-STS), check on the Provide User access and check Create an IAM user box ☑️.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AWzg48cdoApHcONYbfzOfRA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AWzg48cdoApHcONYbfzOfRA.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Auto-generate password and leave everything as default, scroll down click next&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOQvZy_xBkGYRgBnLPyQ1OQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOQvZy_xBkGYRgBnLPyQ1OQ.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Leave everything as default and click next&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2At9UsCarHJaZbGTj39sPwDw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2At9UsCarHJaZbGTj39sPwDw.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Review your details and scroll down click on create.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ay2MOuF3uCqheicF7IUvm7g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ay2MOuF3uCqheicF7IUvm7g.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Retrieve the details and save on the note pad for reference.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AfOCUZBDPTc2L5Khd3p3LIQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AfOCUZBDPTc2L5Khd3p3LIQ.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  On a new browser, copy and paste the console sign-in details and sign in to the newly created IAM user with the details collected above.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AWqyWMeSZZt29xigLxZaGfw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AWqyWMeSZZt29xigLxZaGfw.jpeg" alt="captionless image" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Once you’re signed into the new user (Demo-STS user), navigate to the EC2 console and you would have no permissions granted for the account.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AcEExoXMJnhRcgjhEPlASyQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AcEExoXMJnhRcgjhEPlASyQ.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2️⃣ Creating STS Assume Role and adding EC2 permissions to that Role for the newly created account to use EC2 service.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Back on the management account, in the IAM console click on Roles and create role.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AL6Rc-fKGYX1IJAYueF5m5A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AL6Rc-fKGYX1IJAYueF5m5A.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on check box ☑️ Trusted entity AWS account and This account, Scroll down and click next.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AliU7ZYtU6UI7ZY3OXqe4vg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AliU7ZYtU6UI7ZY3OXqe4vg.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Add permissions by searching for AmazonEC2FullAccess. Once selected, scroll down and click next.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ApYGq5P2aB9IcR05_zAgyuA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ApYGq5P2aB9IcR05_zAgyuA.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Give Role name (EC2-Full-Access-STS), Review and scroll down to create.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AuzGX6WvMTc6MxCk8HEKmwQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AuzGX6WvMTc6MxCk8HEKmwQ.jpeg" alt="captionless image" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Still in the management account, click Roles and click on the role just created above to retrieve Role ARN and Link to switch roles to console which will be used in the next part of this Demo.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A6RCyg68r36mT59PILNhNng.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A6RCyg68r36mT59PILNhNng.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on the new IAM user (Demo-STS) created. Click on add permissions drop down and create inline policy.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AEZkMOlQYMEUhM53k_mij8g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AEZkMOlQYMEUhM53k_mij8g.jpeg" alt="captionless image" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on JSON and edit the action to “STSAssumeRole”, and Resource should be the ARN of the role created above “(EC2-Full-AccessSTS)” Scroll down and click next.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AJhIxrWkaC0QzJCmG42Bc6w.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AJhIxrWkaC0QzJCmG42Bc6w.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Give the policy name (EC2-Full-Access-STS) review, scroll down and click create policy.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AgI_vlUNgOU90ijSbGVQjsA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AgI_vlUNgOU90ijSbGVQjsA.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  To confirm that after the inline policy is created, it does not give EC2 access to the new IAM user (Demo-STS) yet.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AcEExoXMJnhRcgjhEPlASyQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AcEExoXMJnhRcgjhEPlASyQ.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  You have to do that by navigating to roles in the management account, click on the role created(EC2-Full-AccessSTS) Copy and paste the “Link switch roles in console” to a new browser and press enter.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ae2cdXCz_j7D6zwFYE3zirg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ae2cdXCz_j7D6zwFYE3zirg.jpeg" alt="captionless image" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3️⃣ Checking if Assume Role is established and can be used by the new IAM user (Demo-STS).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Sign in using the Link switch roles in console in a new browser and with the new IAM user (Demo-STS) and click on Switch Role.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AzT42lAw_nim4eVA2wLTLkg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AzT42lAw_nim4eVA2wLTLkg.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  You can see the new IAM user (Demo-STS) now has full access ONLY to EC2 services.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AwI3YGCOZ6pGXdKJAbtv2ug.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AwI3YGCOZ6pGXdKJAbtv2ug.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Try checking for an S3 bucket with the same user and you will see it has no access to S3 services. Says Access Denied, because we did not attach the S3accesspolicy to the IAM role of the management account.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AoVssclbvFHMCk-Z5BRMDvg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AoVssclbvFHMCk-Z5BRMDvg.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Select the drop down and click on sign out current account&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AzUC-gtZl5e27wJeIokAYdw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AzUC-gtZl5e27wJeIokAYdw.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Now you are back to original permissions for Demo-STS which has no access to EC2.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AcEExoXMJnhRcgjhEPlASyQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AcEExoXMJnhRcgjhEPlASyQ.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4️⃣ Cleaning up your environment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  First click on Roles and delete the role (EC2-FULL-ACCESSSTS). Next click on Users and delete the newly created IAM user (Demo-STS).&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AjSn5lTjMEjNJBdjLqlXquQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AjSn5lTjMEjNJBdjLqlXquQ.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🥳👏🏾Well done, we just did an STS ASSUME ROLE and if you like my content please like, share and comment what you think about STS and what you like to see next content, your understanding is my priority 💟&lt;/p&gt;

&lt;h1&gt;
  
  
  awscommunitybuilder #AWS #STSAssumeRole #ContinuesLearning
&lt;/h1&gt;

&lt;p&gt;🔗 LinkedIn: &lt;a href="https://www.linkedin.com/in/joseph-ndambombi-honpah-2044b5277" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/joseph-ndambombi-honpah-2044b5277&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Joseph Ndambombi Honpah 😊&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS SECURITY MEASURES TO PUT IN PLACE.</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Sat, 08 Mar 2025 14:44:36 +0000</pubDate>
      <link>https://dev.to/josephhonpah/aws-security-measures-to-put-in-place-5lf</link>
      <guid>https://dev.to/josephhonpah/aws-security-measures-to-put-in-place-5lf</guid>
      <description>&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1372%2Fformat%3Awebp%2F1%2AH8RdFkO2QvL5gTIN8t41eQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1372%2Fformat%3Awebp%2F1%2AH8RdFkO2QvL5gTIN8t41eQ.jpeg" alt="captionless image" width="686" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@honpahj/in-todays-rapidly-evolving-digital-landscape-securing-your-aws-environment-is-more-critical-9e16fc9b24a0" rel="noopener noreferrer"&gt;Reference&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://medium.com/@honpahj?source=post_page---byline--9e16fc9b24a0---------------------------------------" rel="noopener noreferrer"&gt;Joseph Ndambombi Honpah&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💡In today's rapidly evolving digital landscape, securing your AWS environment is more critical than ever. Recent incidents, underscore the pressing need for robust security measures.&lt;/p&gt;

&lt;p&gt;✍🏾To fortify your AWS infrastructure, consider implementing the following best practices:&lt;/p&gt;

&lt;p&gt;1) 🔐Strengthen Identity and Access Management (IAM).&lt;/p&gt;

&lt;p&gt;★Enforce the principle of least privilege by granting users only the permissions they need.&lt;br&gt;
★Regularly rotate credentials and utilize multi-factor authentication (MFA) to enhance security.&lt;br&gt;
★Ensure Proper Configuration Management:&lt;/p&gt;

&lt;p&gt;2) ⚙️Regularly audit and monitor your AWS configurations to identify and rectify vulnerabilities.&lt;/p&gt;

&lt;p&gt;★Leverage AWS Config and other tools to maintain compliance with security standards.&lt;/p&gt;

&lt;p&gt;3) 📡 Implement Network Security Measures.&lt;/p&gt;

&lt;p&gt;★Use Virtual Private Clouds (VPCs) to isolate sensitive resources.&lt;br&gt;
★Configure security groups and network access control lists (ACLs) to regulate traffic flow effectively.&lt;/p&gt;

&lt;p&gt;4) 🕵🏼‍♂️Adopt Continuous Monitoring and Incident Response:&lt;/p&gt;

&lt;p&gt;★Deploy monitoring solutions to detect unusual activities promptly.&lt;br&gt;
★Establish a comprehensive incident response plan to address potential security breaches swiftly.&lt;/p&gt;

&lt;p&gt;🎯By proactively addressing these aspects, organizations can significantly reduce the risk of security incidents and safeguard their AWS environments against emerging threats.&lt;/p&gt;

&lt;p&gt;🚨Stay vigilant and prioritize security to protect your digital assets in the cloud.&lt;/p&gt;

&lt;p&gt;👉 What’s your biggest challenge in AWS security? Have you tried automating compliance or incident response? Share your thoughts in the comments! 👇&lt;/p&gt;

&lt;p&gt;If you found this post helpful, give it a like, comment, or share to spread the knowledge! Let’s build a safer cloud together. 🚀🔐&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #AWSSecurity #CloudSecurity #Automation #Compliance #IncidentResponse #AWSCommunitybuilder #Serverless #CyberSecurity #Innovation #TechCommunity #CloudComputing #AWSCommunity #continueslearning
&lt;/h1&gt;

&lt;h1&gt;
  
  
  AWSSecurity
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>AWS DEMO: Step By Step Guide To Deploy Full End To End Web Application on 7 Services</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Sat, 08 Mar 2025 14:39:02 +0000</pubDate>
      <link>https://dev.to/josephhonpah/aws-demo-step-by-step-guide-to-deploy-full-end-to-end-web-application-on-7-services-hk3</link>
      <guid>https://dev.to/josephhonpah/aws-demo-step-by-step-guide-to-deploy-full-end-to-end-web-application-on-7-services-hk3</guid>
      <description>&lt;h1&gt;
  
  
  Step By Step Guide To Deploy Full End To End Web Application on 7 Services.
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AiOL95whT3kKRyaUVa7kEzg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AiOL95whT3kKRyaUVa7kEzg.jpeg" alt="captionless image" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@honpahj/step-by-step-guide-to-deploy-full-end-to-end-web-application-on-7-services-f7874ae08b70" rel="noopener noreferrer"&gt;Reference&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://medium.com/@honpahj?source=post_page---byline--f7874ae08b70---------------------------------------" rel="noopener noreferrer"&gt;Joseph Ndambombi Honpah&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; INTRODUCTION&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In this hands-on tutorial, I’ll walk you through how to build a ride sharing functionality app (for unicorns!), pulled from Wild Rydes sample project. We’ll use seven different services — GitHub, Amplify, Cognito, Lambda, IAM, API Gateway and DynamoDB — talking about why/where to use them, and how to get them to work with each other. As move on, we’ll build each service and giving these services the ride sharing functionality for the application.&lt;/p&gt;

&lt;p&gt;This application is deployed on Amazon Amplify integrated with github repository for CI/CD pipeline. Amazon cognito user pool used for authentication of users to sign up or sign in to the application using username or email, password and password confirmation. IAM used to give lambda the write access to dynamodb table and Lambda used to put items (user data) to dynamodb table logs. Api gateway used as rest API which helps user to invoke lambda function for Unicorn Ride. stay tuned for final functionality of this application… let me know what you think in comment box&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What you need to follow along this project(Prerequisite):&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;i. text editor(notepad) to write down Id’s, ARN etc.&lt;/p&gt;

&lt;p&gt;ii. An AWS account, logged in to the AWS Console as a an IAM user.&lt;/p&gt;

&lt;p&gt;iii. Some basic knowledge of AWS is preferable, but you can still follow along if you’re an absolute newbie&lt;/p&gt;

&lt;p&gt;iv) A GitHub account and the code from my GitHub repo: &lt;a href="https://github.com/JosephHonpah/end-to-end-web-app" rel="noopener noreferrer"&gt;https://github.com/JosephHonpah/end-to-end-web-app&lt;/a&gt;&lt;br&gt;
4) Architectural view to application: &lt;a href="https://main.d2i8yld6dviyk2.amplifyapp.com/" rel="noopener noreferrer"&gt;https://main.d2i8yld6dviyk2.amplifyapp.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) How to copy the application code from my GitHub repository to yours:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Create or login to you GitHub account.&lt;/li&gt;
&lt;li&gt;  Click on link below to get access to my GitHub repository. &lt;a href="https://github.com/JosephHonpah/end-to-end-web-app" rel="noopener noreferrer"&gt;https://github.com/JosephHonpah/end-to-end-web-app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  You can use template by creating new repository on GitHub from the template or cloning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;4) Creating new web app on AWS Amplify from you repository:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Navigate to aws management console and search for Amplify and click on AWS Amplify&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ASlsc-VCEYR6sdR9sjQwlXw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ASlsc-VCEYR6sdR9sjQwlXw.jpeg" alt="captionless image" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  click on Deploy an app below to build web application&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A8MXd0tzeFZnDEX6xWpvS_g.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A8MXd0tzeFZnDEX6xWpvS_g.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on GitHub because application code is stored in GitHub repository you created above&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AVB7xWmPYIWfw19kaIlr5tA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AVB7xWmPYIWfw19kaIlr5tA.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  You need to select your github account which is JosephHonpah for me.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Acdjj1D6kHnJmiXi10KZX6w.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Acdjj1D6kHnJmiXi10KZX6w.jpeg" alt="captionless image" width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  sign in to your GitHub account and click confirm&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AUS-nokQWmpHE86dhOkF1NA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AUS-nokQWmpHE86dhOkF1NA.jpeg" alt="captionless image" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  After successful sign in, you need to select the repository in which you stored your code. you can upload all repositories to amplify and select from Amplify but best you click on Only select repositories and choose the repository you want to build on amplify.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ASRYOqyeJN8vESZy-Sam25A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ASRYOqyeJN8vESZy-Sam25A.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Scroll down and click next&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AQeJIPaZtz9_cXAiSxG3VZw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AQeJIPaZtz9_cXAiSxG3VZw.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  On app settings leave everything default and scroll down click next.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOxxtadbcpB1Vx75odEhprA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOxxtadbcpB1Vx75odEhprA.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Review and click on save and deploy.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ad8ekUsV8UIFWgwjhIHC7YA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ad8ekUsV8UIFWgwjhIHC7YA.jpeg" alt="captionless image" width="800" height="355"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Amplify deploying and might take 2mins or more depnding on network bandwidth.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ADyAnk5ptPN5dkixvkfIBnw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ADyAnk5ptPN5dkixvkfIBnw.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Amplify deployed successfully and with a DNS name to access application: &lt;a href="https://main.d2i8yld6dviyk2.amplifyapp.com/" rel="noopener noreferrer"&gt;https://main.d2i8yld6dviyk2.amplifyapp.com/&lt;/a&gt;
&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A1oAj0ZGXHcFkVq8bMyXnlw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A1oAj0ZGXHcFkVq8bMyXnlw.jpeg" alt="captionless image" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Application can now be accessed from GitHub repository using amplify domain name provided above. Good right? Okay lets go…&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AWFAwuSQT3gzjOfYBOAIdCw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AWFAwuSQT3gzjOfYBOAIdCw.jpeg" alt="captionless image" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5) You need authenticated users to securely and successfully sign up and sign in to your application. which we will use Amazon cognito user pool with the following steps below;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Navigate once again to search bar on management console, search cognito and open in new tab.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ARa9jpc4o0H89meBTIkxnBA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ARa9jpc4o0H89meBTIkxnBA.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on create user pool.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AEkE4DgX4DYQNmZ_nTQb3qw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AEkE4DgX4DYQNmZ_nTQb3qw.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Put in name of cognito user pool app client. it could be any name but make sure you have notepad to write down.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AkcmMubDoZkecOoHwnTrddQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AkcmMubDoZkecOoHwnTrddQ.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  select configuration type. How you want users to sign up and sign in into your application and select attributes. scroll down and click on create.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AVmMlkxrDdqgvpiZ6-z2TyQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AVmMlkxrDdqgvpiZ6-z2TyQ.jpeg" alt="captionless image" width="800" height="353"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on User pool and make sure to copy the User pool ID to notepad. Because you need to add configurations to your code for authentication to your appliction.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AtHxJlTrQjQGQNzEo0H3H8w.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AtHxJlTrQjQGQNzEo0H3H8w.jpeg" alt="captionless image" width="800" height="357"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  On left corner of page click on App clients and copy the the Client-ID and drop on notepad.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AHbsjhUtuGBQrwWSnIB6agQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AHbsjhUtuGBQrwWSnIB6agQ.jpeg" alt="captionless image" width="800" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Navigate to your github repository on directory js/config.js and add user pool ID, client ID and AWS region which you copied and paste on note pad.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Az1aRgI71UdKtmqvMoopJoA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Az1aRgI71UdKtmqvMoopJoA.jpeg" alt="captionless image" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Once that is done then click on commit changes on top left corner and amplify with automatically deploy the changes made to your code since is a serverless CI/CD pipeline service.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AL4Hrx_SbL1AJ51nlHrElzw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AL4Hrx_SbL1AJ51nlHrElzw.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Back on application click on sign up and register with email and password, clicl on LET’S RYDE.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOD9m1dhnyWlQhzp28aKxjQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOD9m1dhnyWlQhzp28aKxjQ.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Put in code on email and click Verify. you should be able able to get code from Amazon cognito and Verification successful message from AWS Amplify which means user is good to go and sign in to application&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A4XvzlgmX6ZTFhw2HZhgOGQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A4XvzlgmX6ZTFhw2HZhgOGQ.jpeg" alt="captionless image" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Once sign in with credentials, you get a token and you copy and drop that on notepad aswell for future use. this token will be needed to invoke API gateway so users to make API calls for rides from any location on the map.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A05BHvrqM_FksQZIi6StGOA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A05BHvrqM_FksQZIi6StGOA.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6) Here we are going to see how to use dynamodb to store users credentials, orders etc. And lambda will be good service to automatically store theses details to dynamodb.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Create dynamoDB table by typing dynamodb on search bar. click on it and create table.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AU8nHekGyka8kA1wQNTeXwg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AU8nHekGyka8kA1wQNTeXwg.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Give table a name and a partion key name which will be used to retrieve items from your table and allocate data across hosts for scalability and availability. scroll down and create table.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AyRz9udTtBPWNY2FxcaSseg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AyRz9udTtBPWNY2FxcaSseg.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  once table created, click on table , scroll down and click on additional Info. You need to copy and paste ARN of table and paste on notepad&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AoE3jVG2siUTZZWrjgqPI6A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AoE3jVG2siUTZZWrjgqPI6A.jpeg" alt="captionless image" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  You need to give lambda the the permission to write to dynamodb when even user sign up, sign in, orders ride, ride details etc. Which will be done on AWS Identity Access Management (IAM). Open IAM on new tab from aws management console.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AnwazFXWZmX2IJTsL9FlZ3w.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AnwazFXWZmX2IJTsL9FlZ3w.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  click on Roles and create role.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A_-lQJEdMoTmu999Tj-Rybg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A_-lQJEdMoTmu999Tj-Rybg.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Trusted entity type as AWS service and use case should be lambda, scroll down and click next.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AU5Q16COUM8ewB3ljie6fBQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AU5Q16COUM8ewB3ljie6fBQ.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  add permission to role AWSLambdaBasicExecutionRole.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AUMfmKDtcokyhN2AZA3zUHA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AUMfmKDtcokyhN2AZA3zUHA.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Give a name to lambda role and scroll down click on create role.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AMZew5WL9yuhQuB6Csop7Ag.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AMZew5WL9yuhQuB6Csop7Ag.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  After role is created, click on role (webapp2025_lambda) and click on Add permissions to create Inline policy for dynamodb.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A3nt8B0pWIC657IJ--189iw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A3nt8B0pWIC657IJ--189iw.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Use case should be DynamoDB and we need for best practice is to give permission to let lambda putitem to dynamodb table created above.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A4ccPyS1Aju402jWRGoQLqw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A4ccPyS1Aju402jWRGoQLqw.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  scroll down and click on Add ARNs to restrict access.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AaaRm1u8aBuRt4zj1apl-7Q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AaaRm1u8aBuRt4zj1apl-7Q.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on Text and paste the dynamodb table ARN you created and copied above from notepad. click on Add ARNs and proceed to Next.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AlEsN690u_IM3JGeKnR3TGg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AlEsN690u_IM3JGeKnR3TGg.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Review and give policy name. scroll down and proceed to create policy. Good to go…&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AD1COvCVtDIkfvJa51LTpZg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AD1COvCVtDIkfvJa51LTpZg.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Lambda function is now needed to perform the magic on application. so you once again navigate to search bar and search lambda and open in new tab, Click on create function.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A_EYwLtYMX7hcFZZqiaXpMQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A_EYwLtYMX7hcFZZqiaXpMQ.jpeg" alt="captionless image" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Author from scratch and give lambda function a name and i will go with Node.js 20 x, because my code in repository is configured for Node.js 20 x and scroll down.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A8kXPTN04Rn3EpLzYHj6tfw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A8kXPTN04Rn3EpLzYHj6tfw.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Add Permissions to lambda funtion which was created above on IAM. click on Use an existing role and select the role created. scroll down and click create function.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AuSFInInhhXS63o90Ypxkxw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AuSFInInhhXS63o90Ypxkxw.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  once function created, scroll down, copy and paste the lambda code from github repository created from beginning on the lambda code editor and Include dynamodb table name you created above in the code, the proceed to Deploy.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ApnVexKtSeEYbQprfd_jjVQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ApnVexKtSeEYbQprfd_jjVQ.jpeg" alt="captionless image" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  On left page click on create new event so as to test if lambda function is working properly. give the Event name and scroll down to the Event Json.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AEhrOt_zTukn1zZMNm3yNxw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AEhrOt_zTukn1zZMNm3yNxw.jpeg" alt="captionless image" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Copy test event code from github repository above and paste it in Eveny Json, scroll up and save test event.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AS2lflluuIO2MbU8QEEPq7Q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AS2lflluuIO2MbU8QEEPq7Q.jpeg" alt="captionless image" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on test and should be able to get a statuscode of 201, which means the functions works properly.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A_DIMY8wegYj2uLTqI52Hlw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A_DIMY8wegYj2uLTqI52Hlw.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Going back to dynamodb table, you can see two items have been recorded into the table from lambda. Implying lambda function now works properly and writes to dynamodb.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ANJm1VKVAAmQ9lUlZYvdCdA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ANJm1VKVAAmQ9lUlZYvdCdA.jpeg" alt="captionless image" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope your enjoying the Architecture and just one more service to make the puzzle whole for the application.&lt;/p&gt;

&lt;p&gt;7) In this last puzzle of the architecture it consist of how users on frontend of application can be able to make request for rides on map from any location using lambda. But lambda will not be best solution for users to make these calls, so API Gateway will be perfect solution and will seat between front end and lambda function to give it the proper functionality.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Navigate to API gateway on search bar and open in new tab, scroll down and click on REST API.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AbBC9JPnV2M4NtrdeH6L1mA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AbBC9JPnV2M4NtrdeH6L1mA.jpeg" alt="captionless image" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  select new API and give API gateway name. scroll down and click create API.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ay2As0Yn_MoEIdGH3w6V5vQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ay2As0Yn_MoEIdGH3w6V5vQ.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Create an authorizer so API Gateway can work with Cognito, because API gateway will need Json web tokens from cognito to do api calls. So have to integrate the two services. click Authorizers pn left page and proceed to Create an authorizer.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AfsX8z_3tRSJkQzJOeS65pQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AfsX8z_3tRSJkQzJOeS65pQ.jpeg" alt="captionless image" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Give authorizer name, use case(Authorizer type) should be cognito. select the cognito user pool created above and recall you should be in thesame region you created the userp pool. Token Source type in Authorization, scroll down and click create authorizer.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A9Bc6vd1jwVTyluvGZwklVg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A9Bc6vd1jwVTyluvGZwklVg.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Click on created Authorizer and proceed to Test authorizer. Copy and paste in the Token Value as the token which was gotten from cognito user pool above saved in notepad during sign in process into application . click on Test authorizer.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AMEjs0HW6pO6AYJrrzk3vmQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AMEjs0HW6pO6AYJrrzk3vmQ.jpeg" alt="captionless image" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A status code 200 signifies cognito user pool now integrated with API gateway succesfully and other meta data provided by cognito.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AF275oqDmVJeBYFkWtJhgBw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AF275oqDmVJeBYFkWtJhgBw.jpeg" alt="captionless image" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Create a Resource to hook up lambda function. Click on Resources on left page and proceed to create resource.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ae0INa7dsRfAmfOTu3NS7xQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2Ae0INa7dsRfAmfOTu3NS7xQ.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Resource path is default and give name resource name (webapp). Enable CORS(Cross Origin Resource Sharing) because the domain of amplify site above is different from domain of API gateway so its going to go cross origin. Proceed to Create resource.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AoExw72c2SyG8CSHewPBkOg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AoExw72c2SyG8CSHewPBkOg.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  On right of page click on Create method.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ANN47NocxahpOJtykp5SFIA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ANN47NocxahpOJtykp5SFIA.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  On method type select POST, Integration type should be lambda and scroll down.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ATg1y_WaBTH9FlB6qgXrTKA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ATg1y_WaBTH9FlB6qgXrTKA.jpeg" alt="captionless image" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Enable proxy so requests are sent to lambda funtion in structured event. Select the lambda function which was created above (webapp_lambda), scroll down and click Create method.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A6cUTU56Np_FTGlR4fg55-A.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A6cUTU56Np_FTGlR4fg55-A.jpeg" alt="captionless image" width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Under the Method request, click on edit which will hook up the authorization created above.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOWeq3FmAp9gyl1qlYQZmTw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AOWeq3FmAp9gyl1qlYQZmTw.jpeg" alt="captionless image" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Under Authorization, select the user pool authorizer created above (webapp2025), scroll down and click save.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AJ12-La-jEc-0dzHbkUYADg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AJ12-La-jEc-0dzHbkUYADg.jpeg" alt="captionless image" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Everything set, now proceed to Deploy API on top right page.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ANbrR8PnI_KJBeCqCtgqlFQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2ANbrR8PnI_KJBeCqCtgqlFQ.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  For stage select new stage. Stage name (dev) and click on Deploy.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A8GWcU0V6Wp7LgXrXIn0AgQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A8GWcU0V6Wp7LgXrXIn0AgQ.jpeg" alt="captionless image" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Copy the invoke URL and paste in code in config.js file on github repository above. so request from users accessing the application from frontend will be proxied by API gateway to lambda function at the back end and lambda putitem to dynamodb table.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AS5yaEDmh2E1gVw2qhJV07Q.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AS5yaEDmh2E1gVw2qhJV07Q.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Paste the copied invoke url above in the config.js file on github repository. Proceed to commit changes so it will be applied on application running on Amplify authomatically since its a CI/CD service.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A2fXttHKkVoBq5wC7r0ULIw.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A2fXttHKkVoBq5wC7r0ULIw.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Finally to test out everything. A user from Capitol Hill on map click on Request Unicorn&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AZgTN14XwUOIT02q6EEVwEg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AZgTN14XwUOIT02q6EEVwEg.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  There a Unicorn Rocinante on the way and has arrived. wow great right?&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A5tFZwxCC61rCuxp7KsNRig.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A5tFZwxCC61rCuxp7KsNRig.jpeg" alt="captionless image" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Check on Dynamodb table, all request forwarded by API gateway to lambda function and its stored to dynamodb which you can as well do some analyses and much more.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AM3MKEKJQ_B6f6GCjzOSCpA.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2AM3MKEKJQ_B6f6GCjzOSCpA.jpeg" alt="captionless image" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;I faced many challenges on how to get the right funtionality buy building and deleting and again, just know its not how fast you can deploy but why each service is the way it is .&lt;/p&gt;

&lt;p&gt;This project is geared to perfect understanding of how AWS services work together to give a rebost architecture. let me know in comment if need any assitance and if you find any errors. please like and share as well.&lt;/p&gt;

&lt;p&gt;JOSEPH NDAMBOMBI HONPAH.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>AWS CONTROL TOWER FOR MULTI ACCOUNT AND COMPLIANCE.</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Sat, 08 Mar 2025 14:34:12 +0000</pubDate>
      <link>https://dev.to/josephhonpah/aws-control-tower-for-multi-account-and-compliance-1h35</link>
      <guid>https://dev.to/josephhonpah/aws-control-tower-for-multi-account-and-compliance-1h35</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;Implementing AWS Control Tower for Multi-Account Governance and Security&lt;/strong&gt;
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A7-kDul2E1rmRzQDz" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A7-kDul2E1rmRzQDz" alt="captionless image" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@honpahj/implementing-aws-control-tower-for-multi-account-governance-and-security-360135f3423f" rel="noopener noreferrer"&gt;Reference&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://medium.com/@honpahj?source=post_page---byline--360135f3423f---------------------------------------" rel="noopener noreferrer"&gt;Joseph Ndambombi Honpah&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1.1 Introduction To AWS Control Tower
&lt;/h1&gt;

&lt;p&gt;AWS Control Tower is a service that provides an automated way to set up and manage a secure, multi-account AWS environment based on best practices. It simplifies account governance by offering centralized management, compliance enforcement, and security policies, making it an ideal solution for organizations looking to scale operations while maintaining control, thereby helping institutions and individuals who want to learn more about multi-account environments. &lt;a href="https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html" rel="noopener noreferrer"&gt;AWS Control Tower&lt;/a&gt; &lt;em&gt;orchestrates&lt;/em&gt; the capabilities of several other &lt;a href="https://docs.aws.amazon.com/controltower/latest/userguide/integrated-services.html" rel="noopener noreferrer"&gt;AWS services&lt;/a&gt;, including &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" rel="noopener noreferrer"&gt;AWS Organizations&lt;/a&gt;, &lt;a href="https://aws.amazon.com/servicecatalog/" rel="noopener noreferrer"&gt;AWS Service Catalog&lt;/a&gt;, and &lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html" rel="noopener noreferrer"&gt;AWS IAM Identity Center&lt;/a&gt;, to build a landing zone in less than an hour. Resources are set up and managed on your behalf.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/images/prescriptive-guidance/latest/migration-aws-environment/images/aws-control-tower.png" rel="noopener noreferrer"&gt;&lt;strong&gt;Architectural Diagram&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1.2 Why AWS Control Tower For Multi-Account Management?
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized Governance &amp;amp; Compliance&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Automates multi-account setup with &lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/framework/sec-bp.html" rel="noopener noreferrer"&gt;AWS best practices&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uses &lt;a href="https://docs.aws.amazon.com/audit-manager/latest/userguide/controltower.html" rel="noopener noreferrer"&gt;Guardrails&lt;/a&gt; (preventive &amp;amp; detective controls) to enforce security.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ensures compliance with standards like &lt;a href="https://www.humansecurity.com/learn/topics/what-is-pci-dss-compliance/" rel="noopener noreferrer"&gt;PCI DSS&lt;/a&gt;, &lt;a href="https://www.csoonline.com/article/562107/general-data-protection-regulation-gdpr-requirements-deadlines-and-facts.html" rel="noopener noreferrer"&gt;GDPR&lt;/a&gt;, &lt;a href="https://www.fortinet.com/resources/cyberglossary/nist-compliance" rel="noopener noreferrer"&gt;NIST&lt;/a&gt;, &lt;a href="https://secureframe.co.uk/hub/hipaa/what-is-hipaa-compliance" rel="noopener noreferrer"&gt;HIPAA&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security &amp;amp; Policy Enforcement&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;-&lt;/strong&gt; Pre-configured security settings prevent misconfigurations.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html" rel="noopener noreferrer"&gt;AWS Security Hub&lt;/a&gt;, &lt;a href="https://aws.amazon.com/guardduty/" rel="noopener noreferrer"&gt;AWS GuardDuty&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/cloudtrail/" rel="noopener noreferrer"&gt;AWS CloudTrail&lt;/a&gt; integration for real-time security monitoring.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://aws.amazon.com/iam/" rel="noopener noreferrer"&gt;IAM&lt;/a&gt; and &lt;a href="https://aws.amazon.com/what-is/sso/" rel="noopener noreferrer"&gt;AWS SSO (Single Sign-On)&lt;/a&gt; for centralized user access control.\&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automated Account Provisioning&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Uses AWS Organizations to create and group AWS accounts&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Account Factory automates account setup with predefined policies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Standardized networking, logging, and security configurations for new accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost &amp;amp; Operational Efficiency&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduces manual effort by automating governance and security tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Prevents unauthorized changes that could lead to security vulnerabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Centralized billing and resource tracking across multiple accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalability &amp;amp; Flexibility&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Supports &lt;a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/aws-multi-region-fundamentals/introduction.html" rel="noopener noreferrer"&gt;multi-region deployments&lt;/a&gt; for global operations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Easily scales with your organization as new teams and workloads are added.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customizable &lt;a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/migration-aws-environment/understanding-landing-zones.html" rel="noopener noreferrer"&gt;landing zones&lt;/a&gt; for different use cases.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The table below summarizes the benefits of AWS Control Tower over manual management of AWS accounts.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A2yhF4H3cd49JpoeLRvbfVQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A2yhF4H3cd49JpoeLRvbfVQ.jpeg" alt="captionless image" width="702" height="310"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.3 Considerations Before Using AWS Control Tower&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before adopting AWS Control Tower, it’s crucial to evaluate whether it aligns with your business, security, and operational needs. Here are some points to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Implications&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS Control Tower is free but it uses services like AWS Config, CloudTrail, and Security Hub that incur costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;More AWS accounts = Higher costs for logging, monitoring, and security services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multi-account management&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you’re managing multiple AWS accounts and need governance, Control Tower is a great fit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you have a single AWS account, Control Tower may be overkill.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AWS Organizations&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Control Tower depends on AWS Organizations to manage accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you’re not using AWS Organizations, Control Tower will automatically set it up.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized security and compliance&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If your company follows strict compliance standards (e.g., PCI DSS, HIPAA, GDPR), Control Tower helps enforce guardrails.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you prefer custom governance solutions, Control Tower may not be flexible enough.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standardized security &amp;amp; networking model&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Control Tower creates a predefined landing zone with &lt;a href="https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html" rel="noopener noreferrer"&gt;VPCs&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html" rel="noopener noreferrer"&gt;IAM policies&lt;/a&gt;, and logging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If you need a fully custom network setup, AWS Control Tower may not be flexible enough.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User access and IAM&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;-&lt;/strong&gt; Control Tower integrates with AWS SSO for access management.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If you’re using an external Identity Provider (&lt;a href="https://help.okta.com/en-us/content/topics/security/identity_providers.htm" rel="noopener noreferrer"&gt;Okta&lt;/a&gt;, &lt;a href="https://www.geeksforgeeks.org/azure-active-directory/" rel="noopener noreferrer"&gt;Azure AD&lt;/a&gt;, etc.), ensure compatibility.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Existing accounts compatibility&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Control Tower cannot manage existing accounts automatically.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You may need to migrate accounts manually to Control Tower’s governance model.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Using Terraform, CDK, or Infrastructure as Code&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS Control Tower does not natively support &lt;a href="https://developer.hashicorp.com/terraform/intro" rel="noopener noreferrer"&gt;Terraform&lt;/a&gt; but can be managed via APIs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.aws.amazon.com/cdk/v2/guide/home.html" rel="noopener noreferrer"&gt;AWS CDK&lt;/a&gt; and &lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html" rel="noopener noreferrer"&gt;CloudFormation&lt;/a&gt; have limited support for Control Tower resources.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>FINTECH SCALABILITY</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Sat, 08 Mar 2025 14:18:10 +0000</pubDate>
      <link>https://dev.to/josephhonpah/fintech-scalability-48ol</link>
      <guid>https://dev.to/josephhonpah/fintech-scalability-48ol</guid>
      <description>&lt;h1&gt;
  
  
  ARCHITECTING FOR SCALABILITY ON AWS
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A-wpvACzqZOCIl4OrntymHw.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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F1%2A-wpvACzqZOCIl4OrntymHw.png" alt="captionless image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@honpahj/architecting-for-scalability-on-aws-fe8d3903c43b" rel="noopener noreferrer"&gt;Reference&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://medium.com/@honpahj?source=post_page---byline--fe8d3903c43b---------------------------------------" rel="noopener noreferrer"&gt;Joseph Ndambombi Honpah&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One of the biggest challenges in cloud architecture is scalability. Whether you’re handling unpredictable traffic spikes or building for global users, designing resilient, scalable systems is critical.&lt;/p&gt;

&lt;p&gt;In the fintech world, milliseconds matter. Whether processing payments, detecting fraud, or ensuring regulatory compliance, cloud architecture plays a crucial role. Here’s how AWS helps fintech companies stay ahead:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Security — AWS services like IAM(Identity and Access Management, AWS KMS(Key Management Service), and AWS WAF(Web Application Firewall) ensure data protection and compliance with PCI DSS(Payment Card Industry Data Security Standard), GDPR(General Data Protection Regulation), and other regulations.&lt;/li&gt;
&lt;li&gt; Real-Time Processing — With &lt;a href="https://aws.amazon.com/kinesis/" rel="noopener noreferrer"&gt;Amazon Kinesis&lt;/a&gt; and &lt;a href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html" rel="noopener noreferrer"&gt;Amazon DynamoDB&lt;/a&gt;, fintech firms can analyze transactions instantly, identify fraud before it happens.&lt;/li&gt;
&lt;li&gt; Resilient Architecture — Multi-AZ deployments with Amazon RDS(Relational Database Service), Amazon Aurora, and Amazon S3(Simple Storage Service) provide high availability, reducing downtime to near zero.&lt;/li&gt;
&lt;li&gt; Cost Optimization — Serverless solutions like AWS Lambda, Amazon API Gateway and AWS Step Functions help fintech startups scale dynamically without over-provisioning resources.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;As a Solution Architect, I’ve seen fintech companies transform their operations with these services. Let me know what you think and what are your biggest cloud challenges in fintech? comment and share.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Sat, 08 Mar 2025 08:59:09 +0000</pubDate>
      <link>https://dev.to/josephhonpah/-19pb</link>
      <guid>https://dev.to/josephhonpah/-19pb</guid>
      <description></description>
    </item>
    <item>
      <title>HISTORY OF CLOUD COMPUTING AND MY PERSONAL EXPERIENCE WITH AWS IDENTITY AND ACCESS MANAGEMENT (IAM).</title>
      <dc:creator>JosephHonpah</dc:creator>
      <pubDate>Sat, 25 Jan 2025 16:49:22 +0000</pubDate>
      <link>https://dev.to/josephhonpah/cloud-computing-and-aws-identity-and-access-management-iam-history-21h</link>
      <guid>https://dev.to/josephhonpah/cloud-computing-and-aws-identity-and-access-management-iam-history-21h</guid>
      <description>&lt;h1&gt;
  
  
  HISTORY OF CLOUD COMPUTING AND MY PERSONAL EXPERIENCE WITH AWS IDENTITY AND ACCESS MANAGEMENT (IAM).
&lt;/h1&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A8QllyMnnwSOGJUEP" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A8QllyMnnwSOGJUEP" alt="captionless image" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://medium.com/@honpahj/history-of-cloud-computing-and-my-personal-experience-with-aws-identity-and-access-management-iam-ea1b8544e732" rel="noopener noreferrer"&gt;Reference&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by &lt;a href="https://medium.com/@honpahj?source=post_page---byline--ea1b8544e732---------------------------------------" rel="noopener noreferrer"&gt;Joseph Ndambombi Honpah&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blog 2: “WHAT IS CLOUD COMPUTING?”&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;INTRODUCTION TO CLOUD COMPUTING.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Have you ever wondered how cloud computing came into existence?&lt;/p&gt;

&lt;p&gt;Cloud based computing has modified how individuals and businesses interact with technology, reviewing the traditional standard of computing resources. Cloud computing refers to the on-demand delivery of computing services such as storage, processing power and applications over the Internet, enabling users to access resources flexibly and efficiently without owning and maintaining physical infrastructure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn.codecoda.com/img/blog/cloud-computing-architecture-schema.png" rel="noopener noreferrer"&gt;&lt;strong&gt;https://cdn.codecoda.com/img/blog/cloud-computing-architecture-schema.png&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The history of cloud computing boils down back in the 1960s when a computer scientist by name John McCarthy came up with a suggestion that “computation may someday be organized as a public utility,” such as water or electricity. This vision began actively with the advent of time-sharing systems and the commercialization of internet services in the late 20th century. &lt;a href="https://www.winmeen.com/the-evolution-of-cloud-computing-a-timeline/" rel="noopener noreferrer"&gt;&lt;strong&gt;Reference for more details&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon Web Services (AWS) later came into picture in early 2000s marking a significant milestone with its first cloud computing services &lt;a href="https://docs.aws.amazon.com/s3/" rel="noopener noreferrer"&gt;Amazon S3 (Simple Storage Service)&lt;/a&gt; and &lt;a href="https://docs.aws.amazon.com/ec2/" rel="noopener noreferrer"&gt;Amazon EC2 (Elastic Compute Cloud)&lt;/a&gt;. Which popularized the pay-as-you-go model and the concept of &lt;a href="https://www.cloudflare.com/learning/cloud/what-is-iaas/" rel="noopener noreferrer"&gt;Infrastructure as a Service (IaaS)&lt;/a&gt;. This was followed by the emergence of major players like Microsoft Azure, Google Cloud Platform, and IBM Cloud, which expanded the range of cloud offerings to include &lt;a href="https://www.cloudflare.com/learning/serverless/glossary/platform-as-a-service-paas/?_gl=1*1kk2e6x*_gcl_au*NDA2NjEwNjU0LjE3Mzc3Mjk5Nzc.*_ga*MTAzMjA4MDY5NS4xNzE0NzcyNjc3*_ga_SQCRB0TXZW*MTczNzcyOTk3Ny40LjEuMTczNzczMDA2NC42MC4wLjA." rel="noopener noreferrer"&gt;Platform as a Service (PaaS)&lt;/a&gt; and &lt;a href="https://www.cloudflare.com/learning/cloud/what-is-saas/?_gl=1*yrbos1*_gcl_au*NDA2NjEwNjU0LjE3Mzc3Mjk5Nzc.*_ga*MTAzMjA4MDY5NS4xNzE0NzcyNjc3*_ga_SQCRB0TXZW*MTczNzcyOTk3Ny40LjEuMTczNzczMDE0MS40My4wLjA." rel="noopener noreferrer"&gt;Software as a Service (SaaS)&lt;/a&gt;. These services coordinated access to powerful computing capabilities, enabling startups, enterprises, and governments to innovate and scale with unique agility.&lt;/p&gt;

&lt;p&gt;Today cloud computing is a cornerstone of modern IT infrastructure. It powers everything from artificial intelligence and big data analytics to remote work and global collaboration. The cloud has also become critical for digital transformation across industries, driving innovations such as serverless computing, containerization, and edge computing.&lt;/p&gt;

&lt;p&gt;Looking ahead into the future of cloud computing appears even more transformative. Trends like hybrid and multi-cloud environments, quantum computing integration, and the increasing role of artificial intelligence promise to expand its potential. With the growing focus on sustainability, cloud providers are investing in greener data centers and renewable energy sources to minimize their environmental impact.Due to this initiative, AWS included a new pillar just for this it’s Well-Architected Framework: &lt;a href="https://docs.aws.amazon.com/wellarchitected/latest/framework/sustainability.html" rel="noopener noreferrer"&gt;&lt;strong&gt;https://docs.aws.amazon.com/wellarchitected/latest/framework/sustainability.html&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As we move forward, cloud computing is assured to become even more universal and powering a world where innovation knows no bounds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. INTRODUCTION TO AWS(AMAZON WEB SERVICE).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Amazon Web Services (AWS) is a subsidiary of Amazon, designed to provide cloud computing services to individuals, businesses, and governments. During the early 2000s, Amazon had developed internal services that could be sectioned and reused leading to the realization that this framework could benefit external users.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A948%2Fformat%3Awebp%2F0%2A-uJAOlc8hT74yGdP" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A948%2Fformat%3Awebp%2F0%2A-uJAOlc8hT74yGdP" alt="captionless image" width="474" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  In &lt;strong&gt;2002&lt;/strong&gt; Amazon officially launched AWS, offering its first services like &lt;a href="https://docs.aws.amazon.com/s3/" rel="noopener noreferrer"&gt;&lt;strong&gt;Amazon S3&lt;/strong&gt; (Simple Storage Service)&lt;/a&gt; and &lt;a href="https://docs.aws.amazon.com/ec2/" rel="noopener noreferrer"&gt;&lt;strong&gt;Amazon EC2&lt;/strong&gt; (Elastic Compute Cloud)&lt;/a&gt;. These products introduced the concept of scalable, pay-as-you-go infrastructure, where customers paid only for the resources they used, eliminating the need for large upfront hardware investments and thereby reducing cost.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2006&lt;/strong&gt;, AWS was formally relaunched with the core services&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Amazon S3 which is a scalable storage service for storing and retrieving data (Object storage). S3 supports objects from 0 bytes up to 5TB.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1280%2Fformat%3Awebp%2F0%2AB0ONFYWDbaieoB7i" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1280%2Fformat%3Awebp%2F0%2AB0ONFYWDbaieoB7i" alt="captionless image" width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Amazon EC2 which is a virtual server environment offering resizable compute capacity. These services marked the foundation of modern cloud computing.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2AjuwoDlvipgsAv3YP" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2AjuwoDlvipgsAv3YP" alt="captionless image" width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;2009&lt;/strong&gt; AWS Introduced the attachment of &lt;a href="https://docs.aws.amazon.com/ebs/latest/userguide/what-is-ebs.html" rel="noopener noreferrer"&gt;Amazon EBS (Elastic Block Store)&lt;/a&gt;, a persistent block storage for EC2 instances, enhancing its capabilities for enterprise applications.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A7CiGRLtyIzGhH_w2" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A7CiGRLtyIzGhH_w2" alt="captionless image" width="800" height="546"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;2012&lt;/strong&gt; AWS held its first re:Invent conference, which has since become an annual event showcasing new services, customer stories, and innovative solutions.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2014&lt;/strong&gt; &lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/welcome.html" rel="noopener noreferrer"&gt;AWS Lambda&lt;/a&gt; was launched, with serverless computing introduced with Lambda, allowing developers to run code without managing servers, charging only for execution time.&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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A485FLM-3Mxvl9Cmh" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A485FLM-3Mxvl9Cmh" alt="captionless image" width="720" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;2018&lt;/strong&gt; AWS became a major revenue driver for Amazon, reaching $25 billion in revenue. By this time, it accounted for a significant portion of Amazon’s operating income.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2020&lt;/strong&gt; AWS announced sustainability initiatives and edge computing services like &lt;a href="https://docs.aws.amazon.com/outposts" rel="noopener noreferrer"&gt;AWS Outposts&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html" rel="noopener noreferrer"&gt;Lambda@edge&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html" rel="noopener noreferrer"&gt;AWS Greengrass&lt;/a&gt; bringing cloud services closer to on-premises environments.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2023&lt;/strong&gt; Adam Selipsky succeeded Andy Jassy (who became Amazon CEO) as the head of AWS, focusing on expanding the business globally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS has numerous advantages it offers over traditional IT infrastructures and competing cloud providers such as:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A. Scalability and Flexibility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  AWS provides instant scalability, allowing businesses to scale their infrastructure up or down based on demand. Such as Auto scaling, Load balancing.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;B. Cost-Effectiveness&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Users pay only for the resources they consume, eliminating upfront capital expenses (Pay-As-You-Go Model) and no need to pay for hardware cost.&lt;/li&gt;
&lt;li&gt;  AWS offers cost-saving options for predictable workloads and unused capacity such as spot and reserved instances.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;C. Security and Compliance&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  AWS uses robust security protocols, including data encryption, multi-factor authentication (MFA), and firewalls to provide built in security.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;D. Speed and Agility&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Users can deploy infrastructure in minutes, accelerating development cycles.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;E. Reliability&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  AWS is built on a robust infrastructure with redundancy and failover mechanisms to ensure maximum uptime.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;F. High-Performance Computing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  AWS offers powerful compute options for high-performance tasks like Simulations and data analysis, Graphics rendering and machine learning training.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The benefits of AWS make it a powerful and versatile platform for businesses and developers. Whether you’re a startup, an enterprise, or an individual, AWS offers the tools, resources, and infrastructure to support your specific needs while enabling innovation and cost efficiency. &lt;a href="https://docs.aws.amazon.com/whitepapers/latest/aws-overview/six-advantages-of-cloud-computing.html" rel="noopener noreferrer"&gt;&lt;strong&gt;Refer for more benefits of AWS cloud computing&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. INTRODUCTION TO IAM.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A0QUj0CTU9NkypiIh" 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%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1400%2Fformat%3Awebp%2F0%2A0QUj0CTU9NkypiIh" alt="captionless image" width="800" height="399"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AWS Identity and Access Management (IAM)&lt;/strong&gt; is a foundational service provided by Amazon Web Services, that helps individuals or organizations to securely control access to AWS resources. It allows administrators to manage permissions, define roles, and enforce security policies for users, groups, and applications interacting with AWS services. By granting the principle of least privilege, IAM ensures that users and systems have only the permissions necessary to perform their tasks, thereby reducing security risks. AWS Training and Certification provides a 10-minute video introduction to IAM:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.aws.training/learningobject/video?id=16448" rel="noopener noreferrer"&gt;Introduction to AWS Identity and Access Management&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;**Use Cases&lt;br&gt;
**IAM is widely used in scenarios requiring granular access control, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Multi-User Environments&lt;/strong&gt;: Assigning specific roles and permissions to employees based on their responsibilities.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Application Authentication&lt;/strong&gt;: Providing applications with access to AWS services using IAM roles and policies.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Compliance and Auditing&lt;/strong&gt;: Monitoring access patterns, ensuring that security protocols align with regulatory requirements.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Federated Access&lt;/strong&gt;: Integrating with identity providers (e.g., Google, Microsoft Active Directory) to manage user access seamlessly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Billing&lt;br&gt;
**IAM itself is a **free service&lt;/strong&gt;, and customers are not charged for creating users, groups, roles, or policies. Costs only arise indirectly when users perform actions that consume AWS resources, such as running EC2 instances or accessing S3 storage. For a complete list of charges and prices for IAM Access Analyzer, see &lt;a href="https://aws.amazon.com/iam/access-analyzer/pricing" rel="noopener noreferrer"&gt;IAM Access Analyzer pricing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;IAM was launched in &lt;strong&gt;May 2011&lt;/strong&gt; as a way to provide more robust identity and access management for its growing suite of services. Over time, IAM has undergone significant enhancements to meet evolving security needs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;2012&lt;/strong&gt; Introduced AWS Identity Federation, allowing users to log in using external identity providers.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2015&lt;/strong&gt; Rolled out &lt;strong&gt;IAM Roles for EC2&lt;/strong&gt;, enabling applications running on EC2 to securely interact with AWS services without hardcoding credentials.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2018&lt;/strong&gt; Launched AWS IAM Access Analyzer, a tool to identify resources shared outside an organization.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;2020&lt;/strong&gt; Expanded support for fine-grained permissions with service-specific condition keys and improved auditing features.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Today, IAM remains a critical pillar in AWS’s security framework, continuously evolving to address the complex security requirements of modern cloud environments. Its role in enabling secure and scalable cloud usage ensures it is indispensable for AWS customers worldwide. IAM is integrated with many AWS services. For a list of AWS services that work with IAM and the IAM features the services support, see &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html" rel="noopener noreferrer"&gt;AWS services that work with IAM&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. PERSONAL EXPERIENCE WITH IAM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Working with AWS Identity and Access Management (IAM) can be both empowering and challenging. It’s a robust system, but mistakes can happen, often with significant consequences. Here’s a candid recount of some IAM missteps I’ve encountered, how I identified them, and what I learned from each experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  A. Over-Permissive Policies
&lt;/h2&gt;

&lt;p&gt;In the early days in tech industries, I created policies that were overly broad, such as attaching AdministratorAccess or using “Action”: “&lt;em&gt;” with “Resource”: “&lt;/em&gt;”. It was a quick way to get things working, especially during urgent deployments, but it exposed resources unnecessarily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Realized It:&lt;/strong&gt;&lt;br&gt;
During a routine security check, an audit tool flagged multiple users and roles with excessive permissions. Additionally, one instance of a misconfigured access policy allowed unintended access to sensitive S3 buckets.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  The principle of least privilege is non-negotiable.&lt;/li&gt;
&lt;li&gt;  Avoid shortcuts during policy creation, even under time pressure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to avoid It:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Use AWS managed policies as a starting point and refine them based on specific needs.&lt;/li&gt;
&lt;li&gt;  Regularly run &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html" rel="noopener noreferrer"&gt;IAM Access Analyzer&lt;/a&gt; to identify and mitigate over-permissive policies.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  B. Hardcoding Access Keys
&lt;/h2&gt;

&lt;p&gt;I once embedded access keys in application code for testing purposes, intending to replace them later. Unfortunately, the code was committed to a public repository. While the keys were inactive, it created an unnecessary risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Realized It:&lt;/strong&gt;&lt;br&gt;
A security scan alerted me to the exposed keys, and AWS automatically flagged the incident in the &lt;a href="https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor.html" rel="noopener noreferrer"&gt;Trusted Advisor Service&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Hardcoding credentials, even temporarily, is a bad practice.&lt;/li&gt;
&lt;li&gt;  Public repositories are a high-risk environment for sensitive data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Avoid It:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Use &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html" rel="noopener noreferrer"&gt;IAM Roles&lt;/a&gt; for applications running on AWS (e.g., EC2 or Lambda) to avoid needing hardcoded keys.&lt;/li&gt;
&lt;li&gt;  Enable &lt;a href="https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html" rel="noopener noreferrer"&gt;AWS Secrets Manager&lt;/a&gt; for securely storing and retrieving sensitive data.&lt;/li&gt;
&lt;li&gt;  Add pre-commit hooks or tools like Git Secrets to prevent accidental leaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  C. Insufficient Multi-Factor Authentication (MFA) Enforcement.
&lt;/h2&gt;

&lt;p&gt;In my early days in AWS cloud, I neglected to enforce Multi-Factor Authentication (MFA) for the root account and critical IAM users. While no security breaches occurred, this left the environment vulnerable to phishing or brute-force attacks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Realized It:&lt;/strong&gt;&lt;br&gt;
During an AWS Well-Architected Review, MFA enforcement was flagged as a major gap in our security posture.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Protecting root and privileged accounts with MFA is crucial.&lt;/li&gt;
&lt;li&gt;  Even if no breaches occur, overlooking MFA undermines best practices.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Avoid It:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Mandate MFA for all users with elevated privileges.&lt;/li&gt;
&lt;li&gt;  Use &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html" rel="noopener noreferrer"&gt;IAM policies&lt;/a&gt; to enforce MFA and block access if not enabled.&lt;/li&gt;
&lt;li&gt;  Leverage &lt;a href="https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html" rel="noopener noreferrer"&gt;AWS Config&lt;/a&gt; to continuously monitor and report on MFA compliance.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  D. Ignoring Service-Linked Roles
&lt;/h2&gt;

&lt;p&gt;I deleted an IAM role that was service-linked to &lt;a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html" rel="noopener noreferrer"&gt;AWS CloudFormation&lt;/a&gt;, thinking it was unused. This broke critical workflows and caused failed stack deployments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How I Realized It:&lt;/strong&gt;&lt;br&gt;
CloudFormation deployments started failing immediately with error messages indicating a missing role.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Service-linked roles are crucial for the operation of specific AWS services.&lt;/li&gt;
&lt;li&gt;  Deleting roles without understanding their purpose can disrupt production systems.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Avoid It:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Verify role dependencies before deletion using tools like IAM Access Analyzer.&lt;/li&gt;
&lt;li&gt;  Consult AWS documentation to understand service-linked roles and their importance. For information about service-linked roles: &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create-service-linked-role.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  E. Neglecting Role and User Rotation
&lt;/h1&gt;

&lt;p&gt;Some IAM users and roles were left active long after the employees or applications associated with them were no longer in use. This created potential vulnerabilities.&lt;/p&gt;

&lt;p&gt;**How I Realized It:&lt;br&gt;
**A periodic review using &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html" rel="noopener noreferrer"&gt;AWS IAM Credential Report&lt;/a&gt; showed users with keys that hadn’t been rotated or used in years.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lessons Learned:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Stale credentials are a security risk, even if unused.&lt;/li&gt;
&lt;li&gt;  Regularly auditing IAM resources is essential for maintaining hygiene.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Avoid It:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Implement automated cleanup scripts or workflows to disable unused users and roles.&lt;/li&gt;
&lt;li&gt;  Use IAM Access Advisor to monitor usage and deactivate unused permissions.&lt;/li&gt;
&lt;li&gt;  Enforce strict key rotation policies and lifecycle management for roles.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  An Upgraded IAM Mindset:
&lt;/h1&gt;

&lt;p&gt;Working with IAM has taught me that security is a continuous process requiring vigilance and adherence to best practices. Each mistake reinforced the importance of balancing functionality and security while leveraging AWS tools to automate monitoring and compliance.&lt;/p&gt;

&lt;p&gt;IAM isn’t just about granting access — it’s about controlling and auditing it effectively. By learning from these missteps, I’ve adopted a proactive approach to avoid similar issues in the future and ensure that IAM configurations align with organizational security goals.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. BEST PRACTICES&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Over the years in AWS cloud, I’ve seen IAM play a pivotal role in ensuring secure and efficient cloud operations for various organizations. Here are some notable successes and lessons learned:&lt;/p&gt;

&lt;h1&gt;
  
  
  A. Scaling Securely in Multi-Account Environments
&lt;/h1&gt;

&lt;p&gt;In one scenario, an organization migrated to &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" rel="noopener noreferrer"&gt;AWS Organizations&lt;/a&gt; to manage multiple AWS accounts. By combining IAM roles with &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html" rel="noopener noreferrer"&gt;Service Control Policies (SCPs)&lt;/a&gt;, we ensured:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Centralized governance across all accounts.&lt;/li&gt;
&lt;li&gt;  Strict control over permissions without impacting individual teams’ productivity.
This approach reduced misconfigurations, minimized the attack surface, and enhanced security audits across accounts.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;**Key Takeaway&lt;br&gt;
**IAM roles, when paired with &lt;a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html" rel="noopener noreferrer"&gt;AWS Organizations&lt;/a&gt;, provide a scalable and secure foundation for managing multi-account architectures.&lt;/p&gt;

&lt;h1&gt;
  
  
  B. Implementing Granular Access Control for Third-Party Integrations
&lt;/h1&gt;

&lt;p&gt;For an e-commerce company integrating with external analytics tools, creating custom IAM roles with fine-grained permissions limited access to only the necessary S3 buckets and data. This ensured the tool operated effectively without exposing sensitive resources.&lt;/p&gt;

&lt;p&gt;**Key Takeaway:&lt;br&gt;
**Always apply the principle of &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege" rel="noopener noreferrer"&gt;least privilege&lt;/a&gt; to integrations, start with minimal permissions and adjust as required.&lt;/p&gt;

&lt;h1&gt;
  
  
  C. Automation with Temporary Credentials
&lt;/h1&gt;

&lt;p&gt;A logistics company transitioned from using static &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id-credentials-access-keys-update.html" rel="noopener noreferrer"&gt;IAM access keys&lt;/a&gt; to relying on IAM roles with temporary credentials through &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html" rel="noopener noreferrer"&gt;AWS STS (Security Token Service)&lt;/a&gt;. This significantly reduced the risk of credential leaks while automating key rotation for developers and applications.&lt;/p&gt;

&lt;p&gt;**Key Takeaway:&lt;br&gt;
**Whenever possible, prefer roles and temporary credentials over long-term access keys.&lt;/p&gt;

&lt;h1&gt;
  
  
  What Should Always Be Done When Starting with IAM
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Enable MFA anywhere&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Protect the root account and all users with multi-factor authentication (MFA).&lt;/li&gt;
&lt;li&gt;  Enforce MFA through IAM policies for privileged operations. See, &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Define Roles Before Users&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Design a role-based access control (RBAC) system from the beginning. See, &lt;a href="https://docs.aws.amazon.com/redshift/latest/dg/t_Roles.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/redshift/latest/dg/t_Roles.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Assign roles to users instead of granting direct permissions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Leverage AWS Managed Policies First&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Start with AWS-managed policies for common use cases and then refine or create custom policies if needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use IAM Access Analyzer&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Identify resources that are accessible outside the AWS environment and ensure proper restrictions. &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html" rel="noopener noreferrer"&gt;https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Regularly Audit IAM Configurations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Use tools like &lt;a href="https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html" rel="noopener noreferrer"&gt;AWS Config&lt;/a&gt;, &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html" rel="noopener noreferrer"&gt;Credential Reports&lt;/a&gt;, and &lt;a href="https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor.html" rel="noopener noreferrer"&gt;AWS Trusted Advisor&lt;/a&gt; to monitor compliance and catch misconfigurations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What Should Never Be Done with IAM&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Grant Wildcard Permissions&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Avoid policies like “Action”: “&lt;em&gt;” or “Resource”: “&lt;/em&gt;”. These can inadvertently open access to unintended resources and services.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use Root Account for Daily Tasks&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Never use the root account for routine operations. Instead, create administrative IAM users or roles for day-to-day management. See, &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/root-user-best-practices.html" rel="noopener noreferrer"&gt;Root user best practices for your AWS account.&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Embed Static Access Keys in Code&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Hardcoding access keys in scripts or applications is a major security risk. Use IAM roles for applications running on AWS services like EC2 or Lambda.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Ignore IAM Policy Versioning&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Always review and update policies as your architecture evolves. Outdated policies can leave gaps or grant excessive permissions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Delete Roles or Policies Without Checking Dependencies&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Always verify if a role or policy is in active use before deleting it to avoid disrupting workflows or critical operations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AWS IAM is the backbone of cloud security and access management, but its effectiveness depends on how thoughtfully it is configured and maintained. By following best practices, avoiding common pitfalls, and leveraging automation, organizations can create a secure, scalable, and efficient cloud environment. IAM’s flexibility makes it a powerful tool, but with great power comes the responsibility to use it wisely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. CONCLUSION.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;IAM (Identity and Access Management) is a framework of policies and technologies that ensures the right individuals or systems have appropriate access to resources at the right time. Use IAM to manage access to cloud resources, enforce least privilege, and secure user identities. Avoid using IAM when access management is better handled by external tools or when over-complicating policies could lead to security misconfigurations. With IAM, you can create fine-grained access controls, enable multi-factor authentication, and automate secure resource provisioning.&lt;/p&gt;

&lt;p&gt;Tired of juggling complex IAM policies? In the next post, we’ll dive into crafting scalable, foolproof IAM strategies, exploring advanced techniques like policy simulations, automated audits, and how to spot and fix security gaps before they become costly mistakes.&lt;/p&gt;

&lt;p&gt;JOSEPH NDAMBOMBI HONPAH&lt;/p&gt;

</description>
      <category>cloudcomputing</category>
      <category>awsiam</category>
      <category>aws</category>
      <category>awschallenge</category>
    </item>
  </channel>
</rss>
