<?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: Marylinda Okparaogu</title>
    <description>The latest articles on DEV Community by Marylinda Okparaogu (@marylinda).</description>
    <link>https://dev.to/marylinda</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%2F3955127%2Fa981b981-adae-4a53-bd05-564771f7bc6b.jpeg</url>
      <title>DEV Community: Marylinda Okparaogu</title>
      <link>https://dev.to/marylinda</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marylinda"/>
    <language>en</language>
    <item>
      <title>The Startup's First Website: Deploying a Static Website on AWS Using Amazon S3 and CloudFront</title>
      <dc:creator>Marylinda Okparaogu</dc:creator>
      <pubDate>Wed, 22 Jul 2026 07:07:52 +0000</pubDate>
      <link>https://dev.to/marylinda/beginners-guide-hosting-a-static-website-on-aws-s3-cloudfront-5fab</link>
      <guid>https://dev.to/marylinda/beginners-guide-hosting-a-static-website-on-aws-s3-cloudfront-5fab</guid>
      <description>&lt;p&gt;&lt;strong&gt;Lab Overview&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A startup company with three employees needs its first public-facing website to showcase its product. The founder wants a solution that is:&lt;/p&gt;

&lt;p&gt;Low cost&lt;br&gt;
Easy to manage&lt;br&gt;
Highly available&lt;br&gt;
Secure&lt;br&gt;
Able to handle sudden traffic spikes from social media platforms such as Reddit&lt;/p&gt;

&lt;p&gt;As the Solutions Architect, your responsibility is to evaluate AWS hosting options and deploy the most suitable solution.&lt;/p&gt;

&lt;p&gt;In this lab, you will compare Amazon EC2, AWS Amplify, and Amazon S3 before implementing a highly scalable static website solution using Amazon S3 and Amazon CloudFront.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scenario&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The startup has already developed a simple static website containing HTML, CSS, JavaScript, and image files. Since the website does not require server-side processing or a database, the goal is to identify the AWS service that provides the lowest cost while remaining highly scalable and reliable.&lt;br&gt;
**&lt;br&gt;
The Architecture Diagram used in this lab is shown below.**&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%2Fit907yludnmbaku6h790.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%2Fit907yludnmbaku6h790.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why This Architecture?&lt;/p&gt;

&lt;p&gt;CloudFront provides:&lt;/p&gt;

&lt;p&gt;HTTPS by default&lt;br&gt;
Global caching&lt;br&gt;
Faster website loading&lt;br&gt;
Protection against traffic spikes&lt;br&gt;
Improved security&lt;/p&gt;

&lt;p&gt;Amazon S3 provides:&lt;/p&gt;

&lt;p&gt;Durable storage&lt;br&gt;
High availability&lt;br&gt;
Serverless hosting&lt;br&gt;
Very low cost&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning Objectives&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;By completing this lab, you will be able to:&lt;/strong&gt;&lt;br&gt;
Compare EC2, Amplify, and S3 hosting options&lt;br&gt;
Select the most cost-effective AWS service&lt;br&gt;
Create an S3 bucket&lt;br&gt;
Upload website files&lt;br&gt;
Configure permissions securely&lt;br&gt;
Create a CloudFront distribution&lt;br&gt;
Configure Origin Access Control (OAC)&lt;br&gt;
Deliver a website over HTTPS&lt;br&gt;
Explain how CDNs improve performance&lt;/p&gt;

&lt;p&gt;Note: This tutorial uses the AWS Management Console. Some labels and layouts may change slightly over time as AWS updates its interface, but the overall process remains the same&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;&lt;br&gt;
Before starting you the need the following:&lt;/p&gt;

&lt;p&gt;1)AWS Account&lt;br&gt;
(If you've never touched AWS before or do not have an account, this is how to create one, &lt;/p&gt;

&lt;p&gt;Go to aws.amazon.com/free&lt;br&gt;
Click Create a Free Account&lt;br&gt;
Enter your email, choose an account name (e.g. "YourName-Labs"), and set a password&lt;br&gt;
You'll be asked for a credit card — this is normal and required even for free tier. Everything in this lab stays within free limits, and we'll show you exactly how to confirm that at the end.&lt;br&gt;
Verify your phone number and choose the Basic Support Plan (Free)&lt;/p&gt;

&lt;p&gt;2)Internet connection&lt;br&gt;
3)Modern web browser&lt;br&gt;
4)Static website files (HTML, CSS, JavaScript, and images) download it here: &lt;a href="https://drive.google.com/drive/folders/1k1ZDBwwV05lToi-0ugOAgv3pfJhKODi9" rel="noopener noreferrer"&gt;https://drive.google.com/drive/folders/1k1ZDBwwV05lToi-0ugOAgv3pfJhKODi9&lt;/a&gt; If the files are downloaded as a ZIP folder, extract them first and Rename the extracted file to index &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution Analysis&lt;/strong&gt;&lt;br&gt;
Before selecting a hosting service, evaluate the available AWS options.&lt;br&gt;
| AWS Service | Advantages | Limitations | Decision |&lt;br&gt;
|------------|------------|-------------|----------|&lt;br&gt;
| &lt;strong&gt;Amazon EC2&lt;/strong&gt; | • Supports dynamic websites&lt;br&gt;• Full server control | • Requires server management&lt;br&gt;• Operating system maintenance&lt;br&gt;• Higher cost | ❌ Not Selected |&lt;br&gt;
| &lt;strong&gt;AWS Amplify&lt;/strong&gt; | • Ideal for React &amp;amp; Angular applications&lt;br&gt;• Built-in CI/CD | • Too complex for this project&lt;br&gt;• Unnecessary features for a simple HTML/CSS website | ❌ Not Selected |&lt;br&gt;
| &lt;strong&gt;Amazon S3 Static Website Hosting&lt;/strong&gt; | • Low cost&lt;br&gt;• Serverless&lt;br&gt;• Highly scalable&lt;br&gt;• Easy to configure | • Supports static websites only | ✅ Selected |&lt;/p&gt;

&lt;p&gt;Amazon S3 Static Website Hosting was selected because the application consists entirely of static files and does not require a web server or backend processing. CloudFront was added to improve global performance, provide HTTPS support, and protect the S3 bucket from direct public access in future enhancements.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; Sign in to the AWS Management Console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expected Result&lt;/strong&gt;&lt;br&gt;
You should successfully access the AWS Console.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 2&lt;/strong&gt;: Create an S3 Bucket&lt;br&gt;
Go to the search bar, type S3 and select S3 bucket:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F35rmns0xk45hg12rvaox.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%2F35rmns0xk45hg12rvaox.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click Create bucket&lt;br&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%2Fp1kzmow0jtwokw0tciol.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%2Fp1kzmow0jtwokw0tciol.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enter a unique bucket name: e.g cooktogether-landing-page&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%2F8xwxog3tih6pyidldjlo.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%2F8xwxog3tih6pyidldjlo.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leave Region as default or choose a nearby region.&lt;/p&gt;

&lt;p&gt;Click Create bucket:&lt;br&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%2Fpbc5vy2d3pzb77a3wa0y.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%2Fpbc5vy2d3pzb77a3wa0y.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expected Result&lt;/strong&gt;&lt;br&gt;
You should see Bucket successfully created&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 3&lt;/strong&gt;: Upload Website Files &lt;/p&gt;

&lt;p&gt;Open the bucket.&lt;/p&gt;

&lt;p&gt;Click:&lt;br&gt;
Upload, then upload the index file you downloaded earlier&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 4&lt;/strong&gt;: Enable Static Website Hosting&lt;/p&gt;

&lt;p&gt;Open:&lt;/p&gt;

&lt;p&gt;Bucket,bthen navigate to&lt;br&gt;
   ↓&lt;br&gt;
Properties&lt;/p&gt;

&lt;p&gt;Scroll down to:&lt;/p&gt;

&lt;p&gt;Static website hosting&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Edit&lt;/p&gt;

&lt;p&gt;Enable:&lt;/p&gt;

&lt;p&gt;Enable&lt;/p&gt;

&lt;p&gt;Choose:&lt;/p&gt;

&lt;p&gt;Host a static website&lt;/p&gt;

&lt;p&gt;on Index document option type:&lt;/p&gt;

&lt;p&gt;index.html&lt;/p&gt;

&lt;p&gt;on Error document option type:&lt;/p&gt;

&lt;p&gt;index.html&lt;/p&gt;

&lt;p&gt;Leave:&lt;/p&gt;

&lt;p&gt;Redirection rules blank.&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Save changes&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 5&lt;/strong&gt;: Verify S3 Website Works&lt;/p&gt;

&lt;p&gt;After saving:&lt;/p&gt;

&lt;p&gt;Go to:&lt;/p&gt;

&lt;p&gt;Properties&lt;br&gt;
   ↓&lt;br&gt;
Static website hosting&lt;/p&gt;

&lt;p&gt;Copy:&lt;/p&gt;

&lt;p&gt;Bucket website endpoint Example:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cooktogether-landing-page.s3-website-us-east-1.amazonaws.com" rel="noopener noreferrer"&gt;http://cooktogether-landing-page.s3-website-us-east-1.amazonaws.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Copy it and paste in your Browser,&lt;/p&gt;

&lt;p&gt;If everything is configured correctly:&lt;br&gt;
You will see your website, the cook together landing page, the landing page will load just like a normal website.&lt;/p&gt;

&lt;p&gt;If the page does not load or displays an Access Denied error, do not continue yet. Complete the Public Access and Bucket Policy steps below, then test the S3 website endpoint again before creating CloudFront.&lt;/p&gt;

&lt;p&gt;STEP 6: Configure Public Access&lt;/p&gt;

&lt;p&gt;Go to:&lt;/p&gt;

&lt;p&gt;Permissions&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Edit&lt;/p&gt;

&lt;p&gt;under:&lt;/p&gt;

&lt;p&gt;Block Public Access&lt;/p&gt;

&lt;p&gt;Disable:&lt;/p&gt;

&lt;p&gt;Block all public access&lt;/p&gt;

&lt;p&gt;Save.&lt;/p&gt;

&lt;p&gt;Type:&lt;/p&gt;

&lt;p&gt;confirm&lt;/p&gt;

&lt;p&gt;when prompted.&lt;/p&gt;

&lt;p&gt;STEP 7: Add Bucket Policy&lt;/p&gt;

&lt;p&gt;Open:&lt;/p&gt;

&lt;p&gt;Permissions&lt;br&gt;
   ↓&lt;br&gt;
Bucket Policy&lt;/p&gt;

&lt;p&gt;Paste this policy below:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "Version": "2012-10-17",&lt;br&gt;
  "Statement": [&lt;br&gt;
    {&lt;br&gt;
      "Sid": "PublicRead",&lt;br&gt;
      "Effect": "Allow",&lt;br&gt;
      "Principal": "&lt;em&gt;",&lt;br&gt;
      "Action": "s3:GetObject",&lt;br&gt;
      "Resource": "arn:aws:s3:::cooktogether-landing-page/&lt;/em&gt;"&lt;br&gt;
    }&lt;br&gt;
  ]&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;then click Save.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 8&lt;/strong&gt;: Confirm Website Works&lt;/p&gt;

&lt;p&gt;Open:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://your-bucket-name.s3-website-region.amazonaws.com" rel="noopener noreferrer"&gt;http://your-bucket-name.s3-website-region.amazonaws.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should see your website. If your website loads correctly from the S3 website endpoint, you are ready to continue to CloudFront. If it does not load, review the previous steps before proceeding.&lt;/p&gt;

&lt;p&gt;Do NOT proceed to CloudFront until this works.&lt;/p&gt;

&lt;p&gt;STEP 9: Create CloudFront Distribution&lt;/p&gt;

&lt;p&gt;Search:&lt;/p&gt;

&lt;p&gt;CloudFront&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Create Distribution&lt;br&gt;
General Information&lt;/p&gt;

&lt;p&gt;Distribution name:&lt;/p&gt;

&lt;p&gt;cooktogether-website&lt;/p&gt;

&lt;p&gt;on Description option type:&lt;/p&gt;

&lt;p&gt;CloudFront distribution for landing page&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Next&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 10:&lt;/strong&gt; Configure Origin&lt;/p&gt;

&lt;p&gt;Origin Type:&lt;/p&gt;

&lt;p&gt;Amazon S3&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Browse S3&lt;/p&gt;

&lt;p&gt;Select:&lt;/p&gt;

&lt;p&gt;cooktogether-landing-page&lt;/p&gt;

&lt;p&gt;Keep:&lt;/p&gt;

&lt;p&gt;Allow private S3 bucket access to CloudFront&lt;/p&gt;

&lt;p&gt;enabled.&lt;/p&gt;

&lt;p&gt;Keep:&lt;/p&gt;

&lt;p&gt;Use recommended origin settings&lt;/p&gt;

&lt;p&gt;enabled.&lt;/p&gt;

&lt;p&gt;Origin Path:&lt;br&gt;
Leave blank.&lt;/p&gt;

&lt;p&gt;Note: AWS may ask you to create or select an Origin Access Control (OAC). Choose Create new OAC if prompted, then continue using the recommended settings.&lt;br&gt;
(This is only for those who will encounter the OAC prompt).&lt;/p&gt;

&lt;p&gt;Click Next&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 11:&lt;/strong&gt; Security Settings&lt;/p&gt;

&lt;p&gt;WAF:&lt;/p&gt;

&lt;p&gt;Choose:&lt;/p&gt;

&lt;p&gt;Monitor Mode&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Safe for beginners&lt;br&gt;
No blocking&lt;br&gt;
Lets AWS observe traffic&lt;/p&gt;

&lt;p&gt;Do NOT upgrade plans.&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Next&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 12:&lt;/strong&gt; SSL Certificate&lt;/p&gt;

&lt;p&gt;Since you are using the default CloudFront domain name (*.cloudfront.net), CloudFront automatically provides an SSL/TLS certificate. You only need to request your own SSL certificate if you later connect a custom domain name (for example, &lt;a href="http://www.cooktogether.com" rel="noopener noreferrer"&gt;www.cooktogether.com&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;So You DO NOT need one.&lt;/p&gt;

&lt;p&gt;Leave blank:&lt;/p&gt;

&lt;p&gt;Alternate Domain Name (CNAME)&lt;/p&gt;

&lt;p&gt;Leave blank:&lt;/p&gt;

&lt;p&gt;Custom SSL Certificate&lt;/p&gt;

&lt;p&gt;CloudFront already provides HTTPS using:&lt;/p&gt;

&lt;p&gt;.cloudfront.net&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 13:&lt;/strong&gt; Create Distribution&lt;/p&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;p&gt;Create Distribution&lt;/p&gt;

&lt;p&gt;Wait 5–20 minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 14:&lt;/strong&gt; Find CloudFront URL&lt;/p&gt;

&lt;p&gt;Type Cloudfront on the search bar, Go to:&lt;/p&gt;

&lt;p&gt;CloudFront&lt;br&gt;
   ↓&lt;br&gt;
Distributions&lt;/p&gt;

&lt;p&gt;You will see:&lt;/p&gt;

&lt;p&gt;Domain Name&lt;/p&gt;

&lt;p&gt;Example:&lt;/p&gt;

&lt;p&gt;drqqdng3e0nw5.cloudfront.net&lt;/p&gt;

&lt;p&gt;This is your website URL.&lt;/p&gt;

&lt;p&gt;Open:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drqqdng3e0nw5.cloudfront.net" rel="noopener noreferrer"&gt;https://drqqdng3e0nw5.cloudfront.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 15:&lt;/strong&gt; Configure Default Root Object&lt;/p&gt;

&lt;p&gt;Open:&lt;/p&gt;

&lt;p&gt;CloudFront&lt;br&gt;
   ↓&lt;br&gt;
Distribution&lt;br&gt;
   ↓&lt;br&gt;
Edit Settings&lt;/p&gt;

&lt;p&gt;Find:&lt;/p&gt;

&lt;p&gt;Default root object&lt;/p&gt;

&lt;p&gt;Enter:&lt;/p&gt;

&lt;p&gt;index.html&lt;/p&gt;

&lt;p&gt;Save.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Take Note:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If this field is blank, CloudFront may return:&lt;/p&gt;

&lt;p&gt;403 Forbidden&lt;/p&gt;

&lt;p&gt;even though the website exists.&lt;/p&gt;

&lt;p&gt;Always set:&lt;/p&gt;

&lt;p&gt;index.html&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;STEP 16:&lt;/strong&gt; Wait for Deployment&lt;/p&gt;

&lt;p&gt;CloudFront needs time to update.&lt;/p&gt;

&lt;p&gt;Wait approximately 5–20 minutes for CloudFront to finish deploying. During this time, you may temporarily receive a 403 Forbidden or 404 Not Found response. This is normal. Refresh the page after deployment completes.&lt;/p&gt;

&lt;p&gt;before testing again.&lt;/p&gt;

&lt;p&gt;Do You Need a Domain Name?&lt;/p&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;p&gt;Your site is already live at:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://drqqdng3e0nw5.cloudfront.net" rel="noopener noreferrer"&gt;https://drqqdng3e0nw5.cloudfront.net&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A domain name is only needed if you want:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cooktogether.com" rel="noopener noreferrer"&gt;https://www.cooktogether.com&lt;/a&gt; instead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Troubleshooting&lt;/strong&gt;&lt;br&gt;
If you receive 403 Forbidden&lt;/p&gt;

&lt;p&gt;Check the following:&lt;/p&gt;

&lt;p&gt;The CloudFront distribution has finished deploying.&lt;br&gt;
The Default Root Object is set to index.html.&lt;br&gt;
The bucket policy is correct.&lt;br&gt;
Your bucket contains index.html.&lt;br&gt;
You are using the CloudFront URL shown in your distribution.&lt;br&gt;
If your website has no CSS or images&lt;/p&gt;

&lt;p&gt;Check that you uploaded:&lt;/p&gt;

&lt;p&gt;CSS files&lt;br&gt;
JavaScript files&lt;br&gt;
Image folders&lt;/p&gt;

&lt;p&gt;Uploading only index.html will cause the page to appear broken.&lt;/p&gt;

&lt;p&gt;If your website does not load from the S3 website endpoint&lt;/p&gt;

&lt;p&gt;Verify:&lt;/p&gt;

&lt;p&gt;Static Website Hosting is enabled.&lt;br&gt;
Public Access settings are configured correctly.&lt;br&gt;
The bucket policy has been saved.&lt;br&gt;
The correct website endpoint is being used.&lt;/p&gt;

&lt;p&gt;Troubleshooting&lt;br&gt;
If you receive 403 Forbidden&lt;/p&gt;

&lt;p&gt;Check the following:&lt;/p&gt;

&lt;p&gt;The CloudFront distribution has finished deploying.&lt;br&gt;
The Default Root Object is set to index.html.&lt;br&gt;
The bucket policy is correct.&lt;br&gt;
Your bucket contains index.html.&lt;br&gt;
You are using the CloudFront URL shown in your distribution.&lt;br&gt;
If your website has no CSS or images&lt;/p&gt;

&lt;p&gt;Check that you uploaded:&lt;/p&gt;

&lt;p&gt;CSS files&lt;br&gt;
JavaScript files&lt;br&gt;
Image folders&lt;/p&gt;

&lt;p&gt;Uploading only index.html will cause the page to appear broken.&lt;/p&gt;

&lt;p&gt;If your website does not load from the S3 website endpoint&lt;/p&gt;

&lt;p&gt;Verify:&lt;/p&gt;

&lt;p&gt;Static Website Hosting is enabled.&lt;br&gt;
Public Access settings are configured correctly.&lt;br&gt;
The bucket policy has been saved.&lt;br&gt;
The correct website endpoint is being used.&lt;/p&gt;

&lt;p&gt;Final Checklist&lt;/p&gt;

&lt;p&gt;confirm:&lt;/p&gt;

&lt;p&gt;✅ Bucket exists&lt;/p&gt;

&lt;p&gt;✅ Static website hosting enabled&lt;/p&gt;

&lt;p&gt;✅ index.html exists&lt;/p&gt;

&lt;p&gt;✅ Not index.html.html&lt;/p&gt;

&lt;p&gt;✅ Not index (1).html&lt;/p&gt;

&lt;p&gt;✅ Public access configured (if using website endpoint)&lt;/p&gt;

&lt;p&gt;✅ S3 website works first&lt;/p&gt;

&lt;p&gt;✅ CloudFront distribution created&lt;/p&gt;

&lt;p&gt;✅ Default root object set to index.html&lt;/p&gt;

&lt;p&gt;✅ Waited for deployment&lt;/p&gt;

&lt;p&gt;✅ Using actual CloudFront domain name&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You now have a production-style architecture used by many startups:&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%2F7p51b3f9cio4a4r3r1a1.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%2F7p51b3f9cio4a4r3r1a1.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>beginners</category>
      <category>cloud</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Implementing Secure File Access in Azure Blob Storage Using Shared Access Signatures (SAS)</title>
      <dc:creator>Marylinda Okparaogu</dc:creator>
      <pubDate>Thu, 28 May 2026 22:19:29 +0000</pubDate>
      <link>https://dev.to/marylinda/implementing-secure-file-access-in-azure-blob-storage-using-shared-access-signatures-sas-59e2</link>
      <guid>https://dev.to/marylinda/implementing-secure-file-access-in-azure-blob-storage-using-shared-access-signatures-sas-59e2</guid>
      <description>&lt;p&gt;Cloud security is one of the most critical aspects of modern infrastructure management, especially when dealing with file storage and resource accessibility.&lt;/p&gt;

&lt;p&gt;In this hands-on implementation, I worked with Microsoft Azure Blob Storage to configure secure storage resources, manage container access levels, upload files, and generate Shared Access Signatures (SAS) for controlled resource sharing.&lt;/p&gt;

&lt;p&gt;This guide walks through the complete process step-by-step.&lt;/p&gt;




&lt;h1&gt;
  
  
  What We’ll Cover
&lt;/h1&gt;

&lt;p&gt;In this implementation, we will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an Azure Storage Account&lt;/li&gt;
&lt;li&gt;Create a Blob Storage Container&lt;/li&gt;
&lt;li&gt;Upload files to the container&lt;/li&gt;
&lt;li&gt;Configure container access levels&lt;/li&gt;
&lt;li&gt;Generate a Shared Access Signature (SAS)&lt;/li&gt;
&lt;li&gt;Securely share resources without exposing storage account keys&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%2Fd4jpuwl30xrqm84rvujj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd4jpuwl30xrqm84rvujj.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Shared Access Signatures (SAS) Matter
&lt;/h1&gt;

&lt;p&gt;One of the biggest security risks in cloud environments is overexposing storage credentials.&lt;/p&gt;

&lt;p&gt;Instead of granting full access to an entire storage account, Azure SAS allows organizations to provide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Temporary access&lt;/li&gt;
&lt;li&gt;Permission-specific access&lt;/li&gt;
&lt;li&gt;Traceable access&lt;/li&gt;
&lt;li&gt;Restricted resource-level authorization&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This creates a more secure and scalable way to manage cloud storage access.&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%2F0nlnm8s2qvc3ti7jjvj6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0nlnm8s2qvc3ti7jjvj6.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Prerequisites
&lt;/h1&gt;

&lt;p&gt;Before starting, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Microsoft Azure account&lt;/li&gt;
&lt;li&gt;Access to the Azure Portal&lt;/li&gt;
&lt;li&gt;Basic understanding of cloud storage concepts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Azure Portal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;https://portal.azure.com&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1 — Create a Storage Account
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Sign in to the Azure Portal&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create a Resource&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Search for &lt;strong&gt;Storage Account&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Fill in the required details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscription&lt;/li&gt;
&lt;li&gt;Resource Group&lt;/li&gt;
&lt;li&gt;Storage Account Name&lt;/li&gt;
&lt;li&gt;Region&lt;/li&gt;
&lt;li&gt;Performance Type&lt;/li&gt;
&lt;li&gt;Redundancy Option&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click &lt;strong&gt;Review + Create&lt;/strong&gt; and deploy the resource.&lt;/p&gt;

&lt;p&gt;Once deployment is complete, open the Storage Account.&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%2Fjy1uf8fdzprd5300wdsf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjy1uf8fdzprd5300wdsf.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📸 &lt;strong&gt;Insert Image Here&lt;/strong&gt;&lt;br&gt;
(Screenshot showing successful Storage Account deployment)&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 2 — Create a Blob Storage Container
&lt;/h1&gt;

&lt;p&gt;Inside the Storage Account:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Data Storage&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Containers&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select &lt;strong&gt;+ Container&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Enter a container name&lt;/li&gt;
&lt;li&gt;Configure the access level&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Access levels include:&lt;/p&gt;

&lt;h3&gt;
  
  
  Private
&lt;/h3&gt;

&lt;p&gt;Only authorized users can access resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Blob
&lt;/h3&gt;

&lt;p&gt;Allows public read access for blobs only.&lt;/p&gt;

&lt;h3&gt;
  
  
  Container
&lt;/h3&gt;

&lt;p&gt;Allows public read access for the entire container.&lt;/p&gt;

&lt;p&gt;For secure implementations, Private access is recommended.&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&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%2Fx0uneqmfxtfb3bb9wtly.png" alt=" " width="800" height="425"&gt;
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Step 3 — Upload Files to the Container
&lt;/h1&gt;

&lt;p&gt;After creating the container:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the container&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Upload&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select your file&lt;/li&gt;
&lt;li&gt;Upload the resource&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Azure stores the file securely inside Blob Storage.&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%2Fblx2p8014yhzmdrqm7oi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fblx2p8014yhzmdrqm7oi.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

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




&lt;h1&gt;
  
  
  Step 4 — Modify Container Access Levels
&lt;/h1&gt;

&lt;p&gt;One important part of storage security is understanding how visibility changes based on access configurations.&lt;/p&gt;

&lt;p&gt;To modify access:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the container&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Change Access Level&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Select the preferred access setting&lt;/li&gt;
&lt;li&gt;Save changes&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This directly affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Resource visibility&lt;/li&gt;
&lt;li&gt;Authorization requirements&lt;/li&gt;
&lt;li&gt;Public accessibility&lt;/li&gt;
&lt;li&gt;Security posture&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In enterprise environments, proper access governance is essential for maintaining secure infrastructure.&lt;/p&gt;

&lt;h2&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%2Ftheve51t4jc96zqdor98.png" alt=" " width="800" height="425"&gt;
&lt;/h2&gt;

&lt;h1&gt;
  
  
  Step 5 — Generate a Shared Access Signature (SAS)
&lt;/h1&gt;

&lt;p&gt;To securely share a file without exposing account credentials:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Select the uploaded file&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Generate SAS&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Configure the SAS settings&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can define:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Permissions (Read, Write, Delete)&lt;/li&gt;
&lt;li&gt;Start and Expiry Time&lt;/li&gt;
&lt;li&gt;Allowed IP Addresses&lt;/li&gt;
&lt;li&gt;Allowed Protocols (HTTPS Recommended)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After configuration:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Generate SAS Token and URL&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Copy the generated SAS URL&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The generated URL provides temporary and controlled access to the resource.&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%2Fubxzzsqjxb2dmi4nsb68.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fubxzzsqjxb2dmi4nsb68.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Step 6 — Understand the Security Benefits
&lt;/h1&gt;

&lt;p&gt;What stands out about SAS in Azure is the level of granular security it provides.&lt;/p&gt;

&lt;p&gt;Rather than granting full access to storage accounts, organizations can enforce limited, traceable, and temporary access to specific resources — a critical practice in secure cloud environments.&lt;/p&gt;

&lt;p&gt;Key benefits include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reduced credential exposure&lt;/li&gt;
&lt;li&gt;Better access governance&lt;/li&gt;
&lt;li&gt;Time-limited authorization&lt;/li&gt;
&lt;li&gt;Permission-based access control&lt;/li&gt;
&lt;li&gt;Secure collaboration and file sharing&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Working with Azure Blob Storage and SAS tokens highlights how modern cloud platforms balance accessibility with enterprise-grade security.&lt;/p&gt;

&lt;p&gt;Understanding how to configure storage resources, manage access levels, and implement delegated authorization is an essential skill for cloud engineers, security professionals, and infrastructure administrators.&lt;/p&gt;

&lt;p&gt;As cloud adoption continues to grow, secure resource management becomes increasingly important in designing scalable and protected environments.&lt;/p&gt;

&lt;h1&gt;
  
  
  Azure #CloudComputing #CloudSecurity #AzureStorage #BlobStorage #CyberSecurity #DevOps #SASToken #CloudInfrastructure
&lt;/h1&gt;

</description>
      <category>azure</category>
      <category>cloud</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Hands-on Azure Entra ID Lab: User Creation, Role Assignment &amp; Privilege Revocation</title>
      <dc:creator>Marylinda Okparaogu</dc:creator>
      <pubDate>Thu, 28 May 2026 22:11:37 +0000</pubDate>
      <link>https://dev.to/marylinda/hands-on-azure-entra-id-lab-user-creation-role-assignment-privilege-revocation-241l</link>
      <guid>https://dev.to/marylinda/hands-on-azure-entra-id-lab-user-creation-role-assignment-privilege-revocation-241l</guid>
      <description>&lt;p&gt;Introduction&lt;/p&gt;

&lt;p&gt;In this assignment, I performed user and role management tasks in Azure Entra ID. The tasks included:&lt;/p&gt;

&lt;p&gt;Creating a new user&lt;br&gt;
Signing in with the new user account&lt;br&gt;
Assigning Global Administrator privileges&lt;br&gt;
Creating another user using the promoted account&lt;br&gt;
Revoking administrative privileges&lt;/p&gt;

&lt;p&gt;This practical helped me understand identity and access management in Microsoft Azure.&lt;/p&gt;

&lt;p&gt;Requirements&lt;/p&gt;

&lt;p&gt;Before starting, ensure you have:&lt;/p&gt;

&lt;p&gt;An active Microsoft Azure account&lt;br&gt;
Access to Azure Portal&lt;br&gt;
Permission to manage users and roles&lt;/p&gt;

&lt;p&gt;Azure Portal:&lt;br&gt;
Microsoft Azure Portal&lt;/p&gt;

&lt;p&gt;Step 1: Sign in to Azure Portal&lt;br&gt;
Open the Azure Portal.&lt;br&gt;
Sign in with your administrator account.&lt;/p&gt;

&lt;p&gt;(&lt;a href="https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i15gzk5ay2rhjogxihlj.png" rel="noopener noreferrer"&gt;https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i15gzk5ay2rhjogxihlj.png&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;Azure Portal dashboard after login&lt;br&gt;
Step 2: Open Azure Entra ID&lt;br&gt;
In the search bar, type Entra ID&lt;br&gt;
Click on Microsoft Entra ID&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%2Fdstyl5y94gjxp5ah9ic4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdstyl5y94gjxp5ah9ic4.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Azure Entra ID homepage/dashboard&lt;br&gt;
Step 3: Create a New User&lt;br&gt;
Navigate to:&lt;br&gt;
Users → All Users&lt;br&gt;
Click + New User&lt;br&gt;
Select Create new user&lt;br&gt;
Fill in:&lt;br&gt;
Username&lt;br&gt;
Name&lt;br&gt;
Password settings&lt;br&gt;
Click Review + Create&lt;br&gt;
Click Create&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%2Fxfnbobg4e1500pr7zsjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfnbobg4e1500pr7zsjc.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

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

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

&lt;p&gt;New user creation page&lt;br&gt;
Successfully created user&lt;br&gt;
Explanation&lt;/p&gt;

&lt;p&gt;This step creates a new identity within Azure Entra ID that can access Azure resources depending on assigned permissions.&lt;/p&gt;

&lt;p&gt;Step 4: Sign In with the Newly Created User&lt;br&gt;
Open an incognito/private browser&lt;br&gt;
Go to Azure Portal&lt;br&gt;
Sign in using:&lt;br&gt;
Newly created username&lt;br&gt;
Temporary password&lt;br&gt;
Change the password if prompted&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%2Ffmqmmpu1hnb83e6likzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmqmmpu1hnb83e6likzw.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Login page with new account&lt;br&gt;
Successful login dashboard&lt;br&gt;
Explanation&lt;/p&gt;

&lt;p&gt;This confirms the user account was successfully created and can authenticate into Azure.&lt;/p&gt;

&lt;p&gt;Step 5: Assign Global Administrator Role&lt;br&gt;
Return to the main administrator account&lt;br&gt;
Go to:&lt;br&gt;
Entra ID → Users&lt;br&gt;
Select the newly created user&lt;br&gt;
Navigate to:&lt;br&gt;
Assigned Roles&lt;br&gt;
Click:&lt;br&gt;
Add assignments&lt;br&gt;
Search for:&lt;br&gt;
Global Administrator&lt;br&gt;
Select it and assign the role&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%2Fxguueewdp7wo2scdi7m5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxguueewdp7wo2scdi7m5.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Role assignment page&lt;br&gt;
Global Administrator role selected&lt;br&gt;
Confirmation of assigned role&lt;br&gt;
Explanation&lt;/p&gt;

&lt;p&gt;The Global Administrator role provides full administrative access to Azure Entra ID resources and settings.&lt;/p&gt;

&lt;p&gt;Step 6: Sign In Using the Promoted Account&lt;br&gt;
Open another incognito/private browser&lt;br&gt;
Sign in using the promoted account&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%2Fhqbs6cd25sqd9m9vp7j5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqbs6cd25sqd9m9vp7j5.png" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Successful login as Global Administrator&lt;br&gt;
Step 7: Create Another User with the Promoted Account&lt;br&gt;
Using the promoted account:&lt;br&gt;
Go to Entra ID → Users&lt;br&gt;
Click:&lt;br&gt;
New User&lt;br&gt;
Fill in the required information&lt;br&gt;
Create the second user&lt;/p&gt;

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

&lt;p&gt;Second user creation form&lt;br&gt;
Successful creation message&lt;br&gt;
Explanation&lt;/p&gt;

&lt;p&gt;This demonstrates that the newly promoted Global Administrator account has sufficient privileges to manage users.&lt;/p&gt;

&lt;p&gt;Step 8: Revoke Global Administrator Access&lt;br&gt;
Return to:&lt;br&gt;
Entra ID → Users&lt;br&gt;
Select the first user&lt;br&gt;
Open:&lt;br&gt;
Assigned Roles&lt;br&gt;
Remove:&lt;br&gt;
Global Administrator role&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%2Fihdn0toepr9yg9i204ch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihdn0toepr9yg9i204ch.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Assigned roles page before removal&lt;br&gt;
Confirmation after removing role&lt;br&gt;
Explanation&lt;/p&gt;

&lt;p&gt;Revoking privileged access is an important security practice that follows the principle of least privilege.&lt;/p&gt;

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

&lt;p&gt;Through this assignment, I learned how to:&lt;/p&gt;

&lt;p&gt;Create users in Azure Entra ID&lt;br&gt;
Manage administrative privileges&lt;br&gt;
Assign and revoke roles&lt;br&gt;
Test user authentication and access management&lt;/p&gt;

&lt;p&gt;This exercise improved my practical understanding of identity and access control in Azure.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>beginners</category>
      <category>security</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Hands-on Azure Entra ID Lab: User Creation, Role Assignment &amp; Privilege Revocation</title>
      <dc:creator>Marylinda Okparaogu</dc:creator>
      <pubDate>Wed, 27 May 2026 22:34:41 +0000</pubDate>
      <link>https://dev.to/marylinda/hands-on-azure-entra-id-lab-user-creation-role-assignment-privilege-revocation-30n0</link>
      <guid>https://dev.to/marylinda/hands-on-azure-entra-id-lab-user-creation-role-assignment-privilege-revocation-30n0</guid>
      <description>&lt;h1&gt;
  
  
  Azure Entra ID User and Role Management Assignment
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this assignment, I performed user and role management tasks in Azure Entra ID. The tasks included:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a new user
&lt;/li&gt;
&lt;li&gt;Signing in with the new user account
&lt;/li&gt;
&lt;li&gt;Assigning Global Administrator privileges
&lt;/li&gt;
&lt;li&gt;Creating another user using the promoted account
&lt;/li&gt;
&lt;li&gt;Revoking administrative privileges
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This practical helped me understand identity and access management in Microsoft Azure.&lt;/p&gt;




&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;Before starting, ensure you have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An active Microsoft Azure account
&lt;/li&gt;
&lt;li&gt;Access to Azure Portal
&lt;/li&gt;
&lt;li&gt;Permission to manage users and roles
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Azure Portal: &lt;a href="https://portal.azure.com" rel="noopener noreferrer"&gt;https://portal.azure.com&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 1: Sign in to Azure Portal
&lt;/h1&gt;

&lt;p&gt;Open the Azure Portal and sign in with your administrator account.&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%2Fi15gzk5ay2rhjogxihlj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi15gzk5ay2rhjogxihlj.png" alt="Azure Portal dashboard after login" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 2: Open Azure Entra ID
&lt;/h1&gt;

&lt;p&gt;In the search bar, type &lt;strong&gt;Entra ID&lt;/strong&gt; and click on &lt;strong&gt;Microsoft Entra ID&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdstyl5y94gjxp5ah9ic4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdstyl5y94gjxp5ah9ic4.png" alt="Azure Entra ID homepage/dashboard" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 3: Create a New User
&lt;/h1&gt;

&lt;p&gt;Navigate to:&lt;/p&gt;

&lt;p&gt;Users → All Users → + New User → Create new user&lt;/p&gt;

&lt;p&gt;Fill in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Username
&lt;/li&gt;
&lt;li&gt;Name
&lt;/li&gt;
&lt;li&gt;Password settings
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Click:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Review + Create
&lt;/li&gt;
&lt;li&gt;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%2Fxfnbobg4e1500pr7zsjc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxfnbobg4e1500pr7zsjc.png" alt="User creation step 1" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqy0r3rk9rd8gmdehoa1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbqy0r3rk9rd8gmdehoa1.png" alt="User creation step 2" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4pfbrxwj91hbovs251n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw4pfbrxwj91hbovs251n.png" alt="User creation step 3" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Explanation
&lt;/h2&gt;

&lt;p&gt;This step creates a new identity within Azure Entra ID that can later be assigned permissions and roles.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 4: Sign In with the Newly Created User
&lt;/h1&gt;

&lt;p&gt;Open an incognito/private browser and sign in using the new account credentials.&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%2Ffmqmmpu1hnb83e6likzw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffmqmmpu1hnb83e6likzw.png" alt="Login page with new account" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Explanation
&lt;/h2&gt;

&lt;p&gt;This confirms the user account was successfully created and can authenticate into Azure.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 5: Assign Global Administrator Role
&lt;/h1&gt;

&lt;p&gt;Return to the administrator account and navigate:&lt;/p&gt;

&lt;p&gt;Entra ID → Users → Select user → Assigned Roles → Add assignments&lt;/p&gt;

&lt;p&gt;Select:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Global Administrator
&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%2Fxguueewdp7wo2scdi7m5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxguueewdp7wo2scdi7m5.png" alt="Role assignment page" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Explanation
&lt;/h2&gt;

&lt;p&gt;The Global Administrator role provides full control over Azure Entra ID resources and identity management.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 6: Sign In Using the Promoted Account
&lt;/h1&gt;

&lt;p&gt;Open another incognito window and sign in using the promoted account.&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%2Fhqbs6cd25sqd9m9vp7j5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhqbs6cd25sqd9m9vp7j5.png" alt="Successful login as Global Administrator" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 7: Create Another User with the Promoted Account
&lt;/h1&gt;

&lt;p&gt;Using the promoted Global Administrator account:&lt;/p&gt;

&lt;p&gt;Go to Entra ID → Users → New User&lt;br&gt;&lt;br&gt;
Create a second user account.&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%2Flqf92jv4n3bxgpzfch0l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flqf92jv4n3bxgpzfch0l.png" alt="Second user creation form" width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Explanation
&lt;/h2&gt;

&lt;p&gt;This confirms that the elevated account has permission to manage users.&lt;/p&gt;




&lt;h1&gt;
  
  
  Step 8: Revoke Global Administrator Access
&lt;/h1&gt;

&lt;p&gt;Return to:&lt;/p&gt;

&lt;p&gt;Entra ID → Users → Select first user → Assigned Roles&lt;/p&gt;

&lt;p&gt;Remove:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Global Administrator
&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%2Fihdn0toepr9yg9i204ch.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihdn0toepr9yg9i204ch.png" alt="Assigned roles page before removal" width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Explanation
&lt;/h2&gt;

&lt;p&gt;Revoking admin access enforces the principle of least privilege and improves security.&lt;/p&gt;




&lt;h1&gt;
  
  
  Observation
&lt;/h1&gt;

&lt;p&gt;During this exercise, I observed that newly created users did not receive email notifications automatically. However, the accounts were still successfully created and accessible using the provided credentials.&lt;/p&gt;




&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;This assignment demonstrated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User creation in Azure Entra ID
&lt;/li&gt;
&lt;li&gt;Role assignment and privilege management
&lt;/li&gt;
&lt;li&gt;Administrative access control
&lt;/li&gt;
&lt;li&gt;Role revocation and security enforcement
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, it strengthened my practical understanding of identity and access management in Microsoft Azure.&lt;/p&gt;

</description>
      <category>azure</category>
      <category>identity</category>
      <category>cloudcomputing</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
