<?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: Mohammed N Zubair</title>
    <description>The latest articles on DEV Community by Mohammed N Zubair (@nooruddin-zubair).</description>
    <link>https://dev.to/nooruddin-zubair</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1245358%2F2808d1cf-7ac7-4b70-999a-5537d98cbd0b.jpeg</url>
      <title>DEV Community: Mohammed N Zubair</title>
      <link>https://dev.to/nooruddin-zubair</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nooruddin-zubair"/>
    <language>en</language>
    <item>
      <title>AI is Like a New Employee</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Thu, 16 Jul 2026 09:59:07 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/ai-is-like-a-new-employee-16pc</link>
      <guid>https://dev.to/nooruddin-zubair/ai-is-like-a-new-employee-16pc</guid>
      <description>&lt;h2&gt;
  
  
  Understanding LLMs, RAG, Embeddings, and Vector Databases
&lt;/h2&gt;

&lt;p&gt;Based on the &lt;strong&gt;'Tea Shop Example' Analogy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Core Concepts Overview&lt;br&gt;
• LLM (Smart Employee): The brain. It knows how to communicate but doesn't know your specific business secrets yet.&lt;br&gt;
• RAG (Finds the Right Info): The process of looking up the right page in the manual instead of reading the whole book every time.&lt;br&gt;
• Embeddings (Meaning into Numbers): Converting words into mathematical coordinates so the AI understands 'context' and 'similarity'.&lt;br&gt;
• Vector DB (Quick &amp;amp; Smart Search): The filing cabinet or 'Google Maps' that stores these coordinates for lightning-fast retrieval.&lt;/p&gt;

&lt;p&gt;Introduction: The Tea Shop Analogy&lt;br&gt;
Imagine you hire a new employee for your tea shop. On the first day, a customer asks, 'Do you have Ginger Tea?' The employee says, 'I don't know.' This isn't because they are a bad employee; they simply haven't learned your specific menu yet. Generative AI works exactly the same way. Without knowledge, it guesses (hallucinates). With knowledge, it answers confidently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: The New Employee (LLM)&lt;/strong&gt;&lt;br&gt;
An LLM (Large Language Model) is like a smart new employee. It already comes equipped with general knowledge—it understands English, grammar, and basic communication.&lt;br&gt;
The Problem:&lt;br&gt;
It doesn't know your specific business. If you ask a foundational model, 'What is the leave policy of my company?', it cannot answer because it was never trained on your private company documents.&lt;br&gt;
Trainer Context/Deep Dive:&lt;br&gt;
This is a great place to explain that training an LLM from scratch costs millions of dollars and months of GPU time. We can't afford to re-train the model every time our leave policy changes. We need a dynamic solution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Give the Employee a Manual (Knowledge Base)&lt;/strong&gt;&lt;br&gt;
Instead of forcing the employee to memorize everything (which is like training/fine-tuning a model), you simply hand them an Employee Handbook (a PDF or a Knowledge Base).&lt;br&gt;
This manual contains your Leave Policy, Office Rules, Holidays, and Working Hours. Now, when asked, the employee can look it up and answer correctly. In AWS, this is exactly what Amazon Bedrock Knowledge Bases do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3: But AI Cannot Read 500 Pages Every Time (RAG)&lt;/strong&gt;&lt;br&gt;
Imagine every time a customer asks a question, the employee starts reading all 500 pages of the manual from page 1. That's impossible and too slow.&lt;br&gt;
Instead, the employee looks at the index, finds only the relevant page, and reads just that section to answer the question. This is exactly what Retrieval-Augmented Generation (RAG) does.&lt;br&gt;
Trainer Context/Deep Dive:&lt;br&gt;
An LLM has a limited memory per conversation (e.g., 4K, 128K, or 200K tokens). You physically cannot stuff a massive enterprise database into the prompt. RAG solves the token limit issue and saves inference costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 &amp;amp; 5: How Does AI Find the Right Page? (Embeddings)&lt;/strong&gt;&lt;br&gt;
Suppose your handbook has Office Timing on page 12, Leave Policy on page 25, and Salary on page 150. When a customer asks, 'Can I take maternity leave?', the AI immediately jumps to Page 25. How? By using Embeddings.&lt;br&gt;
What are Embeddings? Imagine every document, paragraph, or concept becomes GPS coordinates. Similar topics stay close together on this map. For example, 'Leave Policy' and 'Maternity Leave' will have coordinates very close to each other, while 'Tea' and 'Milk' will be close to each other, but far away from 'Salary'.&lt;br&gt;
When someone asks a question, the AI converts the question into coordinates and searches for nearby coordinates. That is semantic search.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6: Where are these Coordinates Stored? (Vector Database)&lt;/strong&gt;&lt;br&gt;
These coordinates are stored inside a Vector Database. Think of it like Google Maps for your data.&lt;br&gt;
Just as Google Maps stores Latitude and Longitude to find places, a Vector Database stores Embeddings to find information.&lt;br&gt;
Examples include: Amazon OpenSearch, Pinecone, FAISS, and ChromaDB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7: The Complete AI Flow&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; User asks a Question.&lt;/li&gt;
&lt;li&gt; Convert the question into an Embedding (Numbers).&lt;/li&gt;
&lt;li&gt; Perform a Vector Database Search.&lt;/li&gt;
&lt;li&gt; Relevant Document/Text Chunk is Retrieved.&lt;/li&gt;
&lt;li&gt; Combine Prompt + Context.&lt;/li&gt;
&lt;li&gt; Send to the LLM.&lt;/li&gt;
&lt;li&gt; LLM generates the Final Answer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 8: Real AWS Architecture&lt;/strong&gt;&lt;br&gt;
A standard enterprise architecture on AWS for this looks like:&lt;br&gt;
• 1. Documents (PDFs) stored in Amazon S3.&lt;br&gt;
• 2. AWS Knowledge Bases process the data.&lt;br&gt;
• 3. Amazon Titan Embeddings converts text to vectors.&lt;br&gt;
• 4. Amazon OpenSearch Serverless acts as the Vector DB.&lt;br&gt;
• 5. Amazon Bedrock routes the prompt to an LLM (like Claude or Titan).&lt;br&gt;
• 6. The AI Chatbot delivers the response to the user.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4y8508fu6kdergapkgnl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4y8508fu6kdergapkgnl.png" alt="Artificial Intelligence explained using a cup of tea analogy" width="652" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key Takeaways &amp;amp; Final Thoughts&lt;br&gt;
• • AI doesn't magically know your data; it needs a manual.&lt;br&gt;
• • RAG helps AI read only the relevant information.&lt;br&gt;
• • Embeddings convert meaning into numbers to enable semantic matching.&lt;br&gt;
• • Vector Databases are the search engines that quickly find similar information.&lt;br&gt;
• • Amazon Bedrock + Knowledge Bases make building enterprise AI much easier by abstracting the heavy lifting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thought:&lt;/strong&gt;&lt;br&gt;
Think of AI as a brilliant employee. If you give it the right knowledge (S3/DBs), the right search system (Vector DB/Embeddings), and the right context (RAG via prompt engineering)—it becomes an exceptional assistant.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa2gwk1sa4kf39lhfv8x5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa2gwk1sa4kf39lhfv8x5.png" alt="Step-by-step AI workflow showing input, processing, model, and output" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>aws</category>
    </item>
    <item>
      <title>AWS Auto Scaling: Optimize Performance and Cost with Ease</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Thu, 20 Mar 2025 10:43:46 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/aws-auto-scaling-optimize-performance-and-cost-with-ease-1k3k</link>
      <guid>https://dev.to/nooruddin-zubair/aws-auto-scaling-optimize-performance-and-cost-with-ease-1k3k</guid>
      <description>&lt;p&gt;In today's dynamic cloud environment, ensuring application availability and cost efficiency is crucial. AWS Auto Scaling provides a seamless way to automatically adjust resources based on demand, optimizing performance while minimizing costs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto Scaling options :&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dynamic&lt;/li&gt;
&lt;li&gt;Predictive&lt;/li&gt;
&lt;li&gt;Scheduled&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Dynamic :&lt;/strong&gt; Automatic scaling can be configured to be dynamic. For example, suppose that you have a web application that&lt;br&gt;
currently runs on three instances. You do not want the CPU utilization of the auto scaling group to exceed 70&lt;br&gt;
percent for more than 2 minutes. You can configure your auto scaling group to scale automatically to meet this&lt;br&gt;
need. The policy type determines how the scaling action is performed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Predictive :&lt;/strong&gt; AWS also provides predictive scaling&lt;br&gt;
Predictive scaling uses machine learning models to predict your expected traffic (and Amazon EC2 usage), including daily and weekly patterns. These predictions use data that is collected from your actual Amazon EC2 usage and data points that are drawn from your own observations. The model needs historical data from at least 1 day to start making predictions. The model is re-evaluated every 24 hours to create a forecast for the next 48 hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scheduled :&lt;/strong&gt; By scaling based on a schedule, you can scale your application in response to predictable load changes. For&lt;br&gt;
example, suppose that every week, the traffic to your web application starts to increase on Wednesday, remains partially&lt;br&gt;
high on Thursday, and starts to decrease by Friday. In these situations, you can plan your scaling activities based on the predictable traffic patterns of your web application.&lt;/p&gt;

&lt;p&gt;Note : loadfile.txt (copy the file content and create .py file in EC2 and paste. Now run .py file to increase CPU utilization temporarily)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1OhGCdYNfEfi_tJ7IKm_N_dpcwcsWpcV3/view?usp=drive_link" rel="noopener noreferrer"&gt;Click here to Download .pdf step-by-step file&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/141fJgoH42OgML6XcWILzyCzX1zpRwxU3/view?usp=sharing" rel="noopener noreferrer"&gt;Click here to Download temporary (python) file.&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Connect to your Linux instance from AWS console.</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Tue, 21 Jan 2025 07:57:59 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/connect-to-your-linux-instance-form-aws-console-1e4d</link>
      <guid>https://dev.to/nooruddin-zubair/connect-to-your-linux-instance-form-aws-console-1e4d</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%2F1ry2zggezpwbbmhhxhkx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1ry2zggezpwbbmhhxhkx.jpg" alt="Image description" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 Launching an EC2 Instance&lt;br&gt;
🔗 Connect to Your EC2 Instance (Practice Only)&lt;br&gt;
🛑 Terminating Your Instance&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1iH6CxwFVTeAJiKCAp9580dN0nJa7e2gD/view?usp=drive_link" rel="noopener noreferrer"&gt;Click here to Download .pdf step-by-step file&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>linux</category>
      <category>devops</category>
    </item>
    <item>
      <title>Launching an EC2 Instance with Boto3 in Python</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Fri, 23 Aug 2024 07:02:08 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/launching-an-ec2-instance-with-boto3-in-python-4e7g</link>
      <guid>https://dev.to/nooruddin-zubair/launching-an-ec2-instance-with-boto3-in-python-4e7g</guid>
      <description>&lt;p&gt;In this example, we'll use the AWS SDK for Python (Boto3) to programmatically launch an EC2 instance. This script demonstrates how to create a session with your AWS credentials and then use that session to start an EC2 instance in your specified region.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Session Creation:&lt;/strong&gt; We begin by creating a session with our AWS credentials.&lt;br&gt;
&lt;strong&gt;EC2 Client:&lt;/strong&gt; Using this session, we establish an EC2 client to interact with the EC2 service.&lt;br&gt;
&lt;strong&gt;Launching an Instance:&lt;/strong&gt; We then launch an EC2 instance by specifying the AMI ID, instance type, key pair, security group, and subnet.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import boto3

# Create a session using your credentials
session = boto3.Session(
    aws_access_key_id='access key need to paste', #replace wit your access key
    aws_secret_access_key='sec access key need to paste', #replace with your sec access key
    region_name='ap-southeast-1' # Replace with your region name
)

# Create an EC2 client
ec2_client = session.client('ec2')

# Launch an EC2 instance
response = ec2_client.run_instances(
    ImageId='ami-0a6b545f62129c495',  # Replace with your AMI ID
    InstanceType='t2.micro',          # Replace with your instance type
    MinCount=1,
    MaxCount=1,
    KeyName='sinapore-mac',      # Replace with your key pair name
    SecurityGroupIds=['sg-064b056b2a7650e76'],  # Replace with your security group ID
    SubnetId='subnet-08237211566f4e5f5'  # Replace with your subnet ID
)

# Print the instance ID
instance_id = response['Instances'][0]['InstanceId']
print(f'Launched instance with ID: {instance_id}')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Web server installation / configuration on Amazon Linux machine.</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Thu, 01 Aug 2024 11:56:51 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/web-server-installation-configuration-on-amazon-linux-machine-jg</link>
      <guid>https://dev.to/nooruddin-zubair/web-server-installation-configuration-on-amazon-linux-machine-jg</guid>
      <description>&lt;p&gt;&lt;strong&gt;What Is a Web Server?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;File servers, database servers, mail servers, and web servers use different kinds of server software. Each of these applications can access files stored on a physical server and use them for various purposes.&lt;/p&gt;

&lt;p&gt;The job of a web server is to serve websites on the internet. To achieve that goal, it acts as a middleman between the server and client machines. It pulls content from the server on each user request and delivers it to the web.&lt;/p&gt;

&lt;p&gt;The biggest challenge of a web server is to serve many different web users at the same time each of whom is requesting different pages. Web servers process files written in different programming languages such as PHP, Python, Java, and others.&lt;/p&gt;

&lt;p&gt;They turn them to static HTML files and serve these files in the browser for web users. When you hear the word web server, think of it as the tool responsible for the proper server-client communication.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1S5uBR9aUDGDqpZ7cVOUQDSpEOaFdeYO8/view?usp=sharing" rel="noopener noreferrer"&gt;To download installation command click here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/170XSth3vW30c2ELwJuVLoTZkAXvRfLHe/view?usp=drive_link" rel="noopener noreferrer"&gt;Steps to connect with putty &amp;amp; convert .pem to .ppk&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Connect your Linux instance from Windows, using "Putty".</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Thu, 01 Aug 2024 11:42:18 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/connect-to-your-linux-instance-form-windows-using-putty-1fdh</link>
      <guid>https://dev.to/nooruddin-zubair/connect-to-your-linux-instance-form-windows-using-putty-1fdh</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Verify that the instance is ready&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install PuTTY on your local computer&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Convert your private .pem key to .ppk using PuTTYgen&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5cc21zhkcn3sp2ipk33x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5cc21zhkcn3sp2ipk33x.png" alt="Image description" width="545" height="288"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1nc3-XqEtmdevIkKSh0J5_A7huRdWGSLx/view?usp=sharing" rel="noopener noreferrer"&gt;Kindly use this link to download step-by-step process .pdf file&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Scenario based practices for securing an AWS S3 bucket.</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Sun, 07 Jul 2024 10:57:48 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/scenario-based-practices-for-securing-an-aws-s3-bucket-10bh</link>
      <guid>https://dev.to/nooruddin-zubair/scenario-based-practices-for-securing-an-aws-s3-bucket-10bh</guid>
      <description>&lt;p&gt;&lt;strong&gt;Scenario:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You have an AWS S3 bucket named &lt;strong&gt;my-example-bucket&lt;/strong&gt; where you store sensitive documents. You want to ensure the bucket is secure according to AWS S3 best practices.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Enable Versioning:&lt;/strong&gt;&lt;br&gt;
Versioning helps protect against accidental deletion or modification of objects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action:&lt;/strong&gt; Enable versioning on the &lt;strong&gt;my-example-bucket&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;How:&lt;/strong&gt; Using AWS Management Console:&lt;br&gt;
Navigate to the S3 console.&lt;br&gt;
Select &lt;strong&gt;my-example-bucket&lt;/strong&gt;.&lt;br&gt;
Click on the &lt;strong&gt;Properties&lt;/strong&gt; tab.&lt;br&gt;
Under &lt;strong&gt;Advanced settings&lt;/strong&gt;, select &lt;strong&gt;Versioning&lt;/strong&gt;.&lt;br&gt;
Click &lt;strong&gt;Enable versioning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Configure Bucket Policies:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Implement a bucket policy to restrict access based on the principle of least privilege.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action:&lt;/strong&gt; Create a bucket policy that allows only specific IAM users or roles to access the bucket.&lt;br&gt;
&lt;strong&gt;Example Policy&lt;/strong&gt; (replace &lt;strong&gt;my-example-bucket&lt;/strong&gt; and &lt;strong&gt;arn:aws:iam::123456789012:user/authorized-user&lt;/strong&gt; with your actual bucket name and IAM user ARN):&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fi6357o7llbhyk0titf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5fi6357o7llbhyk0titf.png" alt="Image description" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
    "Version": "2012-10-17",&lt;br&gt;
    "Statement": [&lt;br&gt;
        {&lt;br&gt;
            "Effect": "Allow",&lt;br&gt;
            "Principal": {&lt;br&gt;
                "AWS": "arn:aws:iam::123456789012:user/authorized-user"&lt;br&gt;
            },&lt;br&gt;
            "Action": [&lt;br&gt;
                "s3:GetObject",&lt;br&gt;
                "s3:PutObject",&lt;br&gt;
                "s3:DeleteObject"&lt;br&gt;
            ],&lt;br&gt;
            "Resource": [&lt;br&gt;
                "arn:aws:s3:::my-example-bucket/*"&lt;br&gt;
            ]&lt;br&gt;
        }&lt;br&gt;
    ]&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How:&lt;/strong&gt; Using AWS Management Console:&lt;br&gt;
Navigate to the S3 console.&lt;br&gt;
Select &lt;strong&gt;my-example-bucket&lt;/strong&gt;.&lt;br&gt;
Click on the &lt;strong&gt;Permissions&lt;/strong&gt; tab.&lt;br&gt;
Click &lt;strong&gt;Bucket Policy&lt;/strong&gt;.&lt;br&gt;
Paste the JSON policy above, modifying it with your specific IAM user ARN and bucket name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Enable Server-Side Encryption (SSE):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Encrypt data at rest to protect sensitive information stored in the bucket.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action:&lt;/strong&gt; Enable SSE for objects uploaded to &lt;strong&gt;my-example-bucket&lt;/strong&gt;.&lt;br&gt;
&lt;strong&gt;How:&lt;/strong&gt; Using AWS Management Console:&lt;br&gt;
Navigate to the S3 console.&lt;br&gt;
Select &lt;strong&gt;my-example-bucket&lt;/strong&gt;.&lt;br&gt;
Click on the &lt;strong&gt;Properties&lt;/strong&gt; tab.&lt;br&gt;
Under &lt;strong&gt;Default encryption&lt;/strong&gt;, click &lt;strong&gt;Edit&lt;/strong&gt;.&lt;br&gt;
Select &lt;strong&gt;AES-256&lt;/strong&gt; (SSE-S3) or &lt;strong&gt;AWS-KMS&lt;/strong&gt; (SSE-KMS).&lt;br&gt;
Click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Enable Logging and Monitoring:&lt;/strong&gt;&lt;br&gt;
Enable access logging to track requests made to &lt;strong&gt;my-example-bucket&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action:&lt;/strong&gt; Enable logging to record access requests for audit and compliance purposes.&lt;br&gt;
&lt;strong&gt;How:&lt;/strong&gt; Using AWS Management Console:&lt;br&gt;
Navigate to the S3 console.&lt;br&gt;
Select &lt;strong&gt;my-example-bucket&lt;/strong&gt;.&lt;br&gt;
Click on the &lt;strong&gt;Properties&lt;/strong&gt; tab.&lt;br&gt;
Under &lt;strong&gt;Server access logging&lt;/strong&gt;, click &lt;strong&gt;Edit&lt;/strong&gt;.&lt;br&gt;
Select &lt;strong&gt;Enable logging&lt;/strong&gt;.&lt;br&gt;
Specify a target bucket and prefix for storing log files.&lt;br&gt;
Click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Regular Audits and Reviews:&lt;/strong&gt;&lt;br&gt;
Regularly review access permissions, policies, and configurations for &lt;strong&gt;my-example-bucket&lt;/strong&gt; to ensure security best practices are maintained.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Action:&lt;/strong&gt; Schedule periodic audits to review bucket policies, IAM roles, and access logs.&lt;br&gt;
&lt;strong&gt;How:&lt;/strong&gt; Manually or using AWS Config and AWS CloudTrail for automated monitoring and auditing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Summary:&lt;/strong&gt;&lt;br&gt;
By following these steps, you've implemented several AWS S3 security best practices for &lt;strong&gt;my-example-bucket&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Ensured data protection with versioning and encryption.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Controlled access with a bucket policy based on least privilege.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced visibility and accountability with access logging.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These practices help secure your sensitive documents stored in AWS S3 and mitigate risks associated with unauthorized access or accidental data loss.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>aws</category>
      <category>learning</category>
      <category>security</category>
    </item>
    <item>
      <title>Best Practices for S3 Security</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Sun, 07 Jul 2024 09:05:05 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/best-practices-for-s3-security-1jac</link>
      <guid>https://dev.to/nooruddin-zubair/best-practices-for-s3-security-1jac</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bucket Policies:&lt;/strong&gt; Restrict access using the principle of least privilege.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encryption:&lt;/strong&gt; Always enable SSE for data at rest. Use SSE-S3 or SSE-KMS based on your security and compliance requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Access Logging: Enable logging to track access and monitor for unauthorized activities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Versioning: Enable versioning to protect against accidental deletion or overwrite.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;IAM: Use IAM roles and policies to control who can create, modify, or delete S3 resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitoring: Use Amazon CloudWatch for monitoring S3 access patterns and set up alerts for unusual activities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Regular Audits: Conduct regular security audits and reviews of your S3 configurations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Amazon VPC (Virtual Private Cloud)</title>
      <dc:creator>Mohammed N Zubair</dc:creator>
      <pubDate>Sun, 31 Dec 2023 11:03:16 +0000</pubDate>
      <link>https://dev.to/nooruddin-zubair/amazon-vpc-virtual-private-cloud-3mpg</link>
      <guid>https://dev.to/nooruddin-zubair/amazon-vpc-virtual-private-cloud-3mpg</guid>
      <description>&lt;p&gt;Amazon VPC is your network environment in the cloud. With Amazon VPC, you can launch AWS resources into a virtual network that you have defined.&lt;/p&gt;

&lt;p&gt;VPCs deploy into one of the AWS Regions and can host resources from any Availability Zone within its Region.&lt;/p&gt;

&lt;p&gt;Amazon VPC is designed to provide greater control over the isolation of your environments and their resources. With Amazon VPC, you can:&lt;/p&gt;

&lt;p&gt;Select your own IP address range&lt;br&gt;
Create subnets&lt;br&gt;
Configure route tables and network gateways&lt;/p&gt;

&lt;p&gt;_Following diagram will help to understand VPC and components with Login activity by DBA (database Admin) and normal user accessing website and database.&lt;br&gt;
_&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9BUl9HIS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27488fq05plc64qxkur3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9BUl9HIS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27488fq05plc64qxkur3.png" alt="Image description" width="656" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note : To know step-by-step process Kindly click here &lt;a href="https://drive.google.com/file/d/1fsqJrCqfg7S9xzQWU2jwdGRFGKWgjEl4/view?usp=drive_link"&gt;“DOWNLOAD”&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>aws</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
