<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Mantalus blog</title>
    <link>https://hstest.mantalus.com/mantalus-blog</link>
    <description />
    <language>en</language>
    <pubDate>Mon, 19 Oct 2026 02:33:03 GMT</pubDate>
    <dc:date>2026-10-19T02:33:03Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Mantalus | AWS | Blog | Installing Prometheus and Grafana on EKS</title>
      <link>https://hstest.mantalus.com/mantalus-blog/mantalus-aws-blog-installing-prometheus-and-grafana-on-eks</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://hstest.mantalus.com/mantalus-blog/mantalus-aws-blog-installing-prometheus-and-grafana-on-eks" title="" class="hs-featured-image-link"&gt; &lt;img src="https://hstest.mantalus.com/hubfs/SucessStories.jpg" alt="Mantalus | AWS | Blog | Installing Prometheus and Grafana on EKS" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;div class="fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container has-pattern-background has-mask-background fusion-parallax-fixed nonhundred-percent-fullwidth non-hundred-percent-height-scrolling banner banner-case-studies " style="--awb-background-position: left bottom; --awb-border-radius-top-left: 0px; --awb-border-radius-top-right: 0px; --awb-border-radius-bottom-right: 0px; --awb-border-radius-bottom-left: 0px; --awb-padding-top: 5%; --awb-padding-right: 5%; --awb-padding-bottom: 5%; --awb-padding-left: 5%; --awb-padding-top-small: 5%; --awb-padding-right-small: 5%; --awb-padding-bottom-small: 5%; --awb-padding-left-small: 5%; --awb-margin-bottom: 0%; --awb-min-height: 50vh; --awb-background-color: #000000; --awb-background-image: linear-gradient(233deg, #000000 0%,rgba(12,51,120,0.52) 78%),url('https://hstest.mantalus.com/hubfs/Imported_Blog_Media/Case_studies_header3-Sep-30-2026-12-16-30-9273-PM.png'); --awb-background-size: cover; --awb-flex-wrap: wrap; background-attachment: fixed;"&gt; 
 &lt;div class="fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-align-content-center fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width: 1310.4px;"&gt; 
  &lt;div class="fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size: cover; --awb-width-large: 100%; --awb-margin-top-large: 0px; --awb-spacing-right-large: 1.92%; --awb-margin-bottom-large: 20px; --awb-spacing-left-large: 1.92%; --awb-width-medium: 100%; --awb-order-medium: 0; --awb-spacing-right-medium: 1.92%; --awb-spacing-left-medium: 1.92%; --awb-width-small: 100%; --awb-order-small: 0; --awb-spacing-right-small: 1.92%; --awb-spacing-left-small: 0%;"&gt; 
   &lt;div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"&gt; 
    &lt;div class="fusion-separator fusion-full-width-sep" style="align-self: center; margin: 20px auto 20px auto;"&gt; 
     &lt;div class="fusion-separator-border sep-single sep-solid" style="--awb-height: 20px; --awb-amount: 20px; --awb-sep-color: var(--awb-custom_color_3); border-color: var(--awb-custom_color_3); border-top-width: 1px;"&gt; 
      &lt;div class="fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-one" style="--awb-margin-top-small: 10px; --awb-margin-right-small: 0px; --awb-margin-bottom-small: 10px; --awb-margin-left-small: 0px;"&gt; 
       &lt;p class="fusion-title-heading title-heading-left fusion-responsive-typography-calculated" style="margin: 0; --fontsize: 60; line-height: var(--awb-typography1-line-height);"&gt;&lt;span style="font-size: 24px;"&gt;&lt;span style="color: #232f3e; font-weight: normal;"&gt;As cloud-native applications grow in complexity, having a robust monitoring and observability system becomes essential. Prometheus and Grafana are widely used, pow&lt;/span&gt;&lt;span style="color: #232f3e; font-weight: normal;"&gt;erful open-source tools for monitoring and alerting. In this guide, we will walk you through setting up Prometheus and Grafana on an Amazon Elastic Kubernetes Service (EKS) cluster to monitor your Kubernetes environment.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;</description>
      <content:encoded>&lt;div class="fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container has-pattern-background has-mask-background fusion-parallax-fixed nonhundred-percent-fullwidth non-hundred-percent-height-scrolling banner banner-case-studies " style="--awb-background-position: left bottom; --awb-border-radius-top-left: 0px; --awb-border-radius-top-right: 0px; --awb-border-radius-bottom-right: 0px; --awb-border-radius-bottom-left: 0px; --awb-padding-top: 5%; --awb-padding-right: 5%; --awb-padding-bottom: 5%; --awb-padding-left: 5%; --awb-padding-top-small: 5%; --awb-padding-right-small: 5%; --awb-padding-bottom-small: 5%; --awb-padding-left-small: 5%; --awb-margin-bottom: 0%; --awb-min-height: 50vh; --awb-background-color: #000000; --awb-background-image: linear-gradient(233deg, #000000 0%,rgba(12,51,120,0.52) 78%),url('https://hstest.mantalus.com/hubfs/Imported_Blog_Media/Case_studies_header3-Sep-30-2026-12-16-30-9273-PM.png'); --awb-background-size: cover; --awb-flex-wrap: wrap; background-attachment: fixed;"&gt; 
 &lt;div class="fusion-builder-row fusion-row fusion-flex-align-items-center fusion-flex-align-content-center fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width: 1310.4px;"&gt; 
  &lt;div class="fusion-layout-column fusion_builder_column fusion-builder-column-5 fusion_builder_column_1_1 1_1 fusion-flex-column" style="--awb-bg-size: cover; --awb-width-large: 100%; --awb-margin-top-large: 0px; --awb-spacing-right-large: 1.92%; --awb-margin-bottom-large: 20px; --awb-spacing-left-large: 1.92%; --awb-width-medium: 100%; --awb-order-medium: 0; --awb-spacing-right-medium: 1.92%; --awb-spacing-left-medium: 1.92%; --awb-width-small: 100%; --awb-order-small: 0; --awb-spacing-right-small: 1.92%; --awb-spacing-left-small: 0%;"&gt; 
   &lt;div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"&gt; 
    &lt;div class="fusion-separator fusion-full-width-sep" style="align-self: center; margin: 20px auto 20px auto;"&gt; 
     &lt;div class="fusion-separator-border sep-single sep-solid" style="--awb-height: 20px; --awb-amount: 20px; --awb-sep-color: var(--awb-custom_color_3); border-color: var(--awb-custom_color_3); border-top-width: 1px;"&gt; 
      &lt;div class="fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-one" style="--awb-margin-top-small: 10px; --awb-margin-right-small: 0px; --awb-margin-bottom-small: 10px; --awb-margin-left-small: 0px;"&gt; 
       &lt;p class="fusion-title-heading title-heading-left fusion-responsive-typography-calculated" style="margin: 0; --fontsize: 60; line-height: var(--awb-typography1-line-height);"&gt;&lt;span style="font-size: 24px;"&gt;&lt;span style="color: #232f3e; font-weight: normal;"&gt;As cloud-native applications grow in complexity, having a robust monitoring and observability system becomes essential. Prometheus and Grafana are widely used, pow&lt;/span&gt;&lt;span style="color: #232f3e; font-weight: normal;"&gt;erful open-source tools for monitoring and alerting. In this guide, we will walk you through setting up Prometheus and Grafana on an Amazon Elastic Kubernetes Service (EKS) cluster to monitor your Kubernetes environment.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;  
&lt;div class="fusion-fullwidth fullwidth-box fusion-builder-row-4 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling no-min-height" style="--awb-border-radius-top-left: 0px; --awb-border-radius-top-right: 0px; --awb-border-radius-bottom-right: 0px; --awb-border-radius-bottom-left: 0px; --awb-padding-top: 5%; --awb-padding-right: 5%; --awb-padding-bottom: 5%; --awb-padding-left: 5%; --awb-padding-top-small: 10%; --awb-padding-right-small: 5%; --awb-padding-bottom-small: 5%; --awb-padding-left-small: 5%; --awb-background-color: var(--awb-color6); --awb-flex-wrap: wrap;"&gt; 
 &lt;div class="fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-align-content-center fusion-flex-justify-content-center fusion-flex-content-wrap" style="max-width: 1310.4px;"&gt; 
  &lt;div class="fusion-layout-column fusion_builder_column fusion-builder-column-6 fusion_builder_column_1_1 1_1 fusion-flex-column fusion-flex-align-self-flex-start" style="--awb-bg-size: cover; --awb-width-large: 100%; --awb-margin-top-large: 0px; --awb-spacing-right-large: 1.92%; --awb-margin-bottom-large: 20px; --awb-spacing-left-large: 1.92%; --awb-width-medium: 100%; --awb-order-medium: 0; --awb-spacing-right-medium: 1.92%; --awb-spacing-left-medium: 1.92%; --awb-width-small: 100%; --awb-order-small: 2; --awb-spacing-right-small: 1.92%; --awb-spacing-left-small: 1.92%;"&gt; 
   &lt;div class="fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column"&gt; 
    &lt;div class="fusion-title title fusion-title-2 fusion-sep-none fusion-title-text fusion-title-size-one" style="--awb-margin-top-small: 10px; --awb-margin-right-small: 0px; --awb-margin-bottom-small: 10px; --awb-margin-left-small: 0px;"&gt;
     &amp;nbsp;
    &lt;/div&gt; 
    &lt;div class="fusion-text fusion-text-3"&gt; 
     &lt;p&gt;&lt;span style="color: #0047bb; font-size: 34px; font-weight: 800;"&gt;Why Prometheus and Grafana?&lt;/span&gt;&lt;/p&gt; 
    &lt;/div&gt; 
    &lt;div class="fusion-text fusion-text-4" style="font-size: 18px;"&gt; 
     &lt;ul style="font-size: 18px;"&gt; 
      &lt;li&gt;&lt;strong&gt;Prometheus&lt;/strong&gt; is an open-source monitoring system with a time-series database, a powerful query language (PromQL), and built-in alerting. It's designed to handle dynamic cloud environments like Kubernetes.&lt;/li&gt; 
      &lt;li&gt;&lt;strong&gt;Grafana&lt;/strong&gt; is a popular open-source visualization tool that integrates seamlessly with Prometheus. It helps visualize metrics and build insightful dashboards.&lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Prerequisites&lt;/h3&gt; 
     &lt;p style="font-size: 18px;"&gt;Before we begin, ensure you have the following:&lt;/p&gt; 
     &lt;ol style="font-size: 18px;"&gt; 
      &lt;li&gt;&lt;strong&gt;EKS Cluster&lt;/strong&gt;: A running Amazon EKS cluster.&lt;/li&gt; 
      &lt;li&gt;&lt;strong&gt;kubectl&lt;/strong&gt;: Installed and configured to interact with your EKS cluster.&lt;/li&gt; 
      &lt;li&gt;&lt;strong&gt;Helm&lt;/strong&gt;: A package manager for Kubernetes to simplify the installation process.&lt;/li&gt; 
      &lt;li&gt;&lt;strong&gt;IAM Permissions&lt;/strong&gt;: Adequate permissions to manage your EKS cluster, including installing Helm charts.&lt;/li&gt; 
     &lt;/ol&gt; 
     &lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Step-by-Step Guide&lt;/h3&gt; 
     &lt;h5 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;&lt;strong&gt;Step 1: Install the Prometheus and Grafana Helm Chart&lt;/strong&gt;&lt;/h5&gt; 
     &lt;p style="font-size: 18px;"&gt;The easiest way to deploy Prometheus and Grafana in your Kubernetes cluster is via Helm. We will use the stable Helm charts.&lt;/p&gt; 
     &lt;p style="font-size: 18px;"&gt;First, add the Helm repository for Prometheus and Grafana:&lt;/p&gt; 
     &lt;div class="code-toolbar" style="font-size: 18px;"&gt; 
      &lt;pre class="language-bash"&gt;&lt;code class="language-bash"&gt;helm repo &lt;span class="token function"&gt;add&lt;/span&gt; prometheus-community https://prometheus-community.github.io/helm-charts
helm repo &lt;span class="token function"&gt;add&lt;/span&gt; grafana https://grafana.github.io/helm-charts
helm repo update&lt;/code&gt;&lt;/pre&gt; 
      &lt;div class="toolbar"&gt; 
       &lt;div class="toolbar-item"&gt;
        &lt;span&gt;Bash&lt;/span&gt;
       &lt;/div&gt; 
       &lt;div class="toolbar-item"&gt;
        &lt;span&gt;Copy&lt;/span&gt;
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;p style="font-size: 18px;"&gt;Now, install the Prometheus Helm chart into your EKS cluster. You can specify a namespace for Prometheus (e.g., &lt;code class=""&gt;monitoring&lt;/code&gt;).&lt;/p&gt; 
     &lt;div class="code-toolbar" style="font-size: 18px;"&gt; 
      &lt;pre class="language-bash"&gt;&lt;code class="language-bash"&gt;kubectl create namespace monitoring
helm &lt;span class="token function"&gt;install&lt;/span&gt; prometheus prometheus-community/kube-prometheus-stack &lt;span class="token parameter variable"&gt;--namespace&lt;/span&gt; monitoring&lt;/code&gt;&lt;/pre&gt; 
      &lt;div class="toolbar"&gt; 
       &lt;div class="toolbar-item"&gt;
        &lt;span&gt;Bash&lt;/span&gt;
       &lt;/div&gt; 
       &lt;div class="toolbar-item"&gt;
        &lt;span&gt;Copy&lt;/span&gt;
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;p style="font-size: 18px;"&gt;The &lt;strong&gt;Kube-Prometheus stack&lt;/strong&gt; will install both &lt;strong&gt;Grafana,&lt;/strong&gt; &lt;strong&gt;Prometheus&lt;/strong&gt; and&lt;strong&gt; AlertManager&lt;/strong&gt;, as well as the node-exporter and kube-state-metrics components for gathering Kubernetes metrics.&lt;/p&gt; 
     &lt;p style="font-size: 18px;"&gt;You can verify all pods in the stack are running through the following command:&lt;/p&gt; 
     &lt;div class="code-toolbar" style="font-size: 18px;"&gt; 
      &lt;pre class="language-bash"&gt;&lt;code class="language-bash"&gt;kubectl get pods &lt;span class="token parameter variable"&gt;-n&lt;/span&gt; monitoring&lt;/code&gt;&lt;/pre&gt; 
      &lt;div class="toolbar"&gt; 
       &lt;div class="toolbar-item" style="font-size: 18px;"&gt;
        &lt;span&gt;Bash&lt;/span&gt;
       &lt;/div&gt; 
       &lt;div class="toolbar-item"&gt;
        &lt;span&gt;Copy&lt;/span&gt;
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;p&gt;&lt;img class="wp-image-11590 aligncenter" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/Screenshot-2024-10-10-at-1_39_26%E2%80%AFpm-300x65.png?width=859&amp;amp;height=186&amp;amp;name=Screenshot-2024-10-10-at-1_39_26%E2%80%AFpm-300x65.png" alt="kubernetes monitoring pods" width="859" height="186"&gt;&lt;/p&gt; 
     &lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;&amp;nbsp;&lt;/h3&gt; 
     &lt;h5 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;&lt;strong&gt;Step 2: Accessing Prometheus and Grafana&lt;/strong&gt;&lt;/h5&gt; 
     &lt;p&gt;&lt;span style="font-size: 18px;"&gt;By default, Prometheus and Grafana services are not exposed to the public internet. You can expose them through an AWS Application Load Balancer (ALB). To access Prometheus and Grafana externally, you can patch the corresponding services to use an ALB.&lt;/span&gt;&lt;/p&gt; 
     &lt;div class="code-toolbar"&gt; 
      &lt;pre class="language-bash"&gt;&lt;span style="font-size: 18px;"&gt;&lt;code class="language-bash"&gt;kubectl patch svc prometheus-kube-prometheus-prometheus &lt;span class="token parameter variable"&gt;-n&lt;/span&gt; monitoring &lt;span class="token parameter variable"&gt;-p&lt;/span&gt; &lt;span class="token string"&gt;''&lt;/span&gt; &lt;/code&gt;&lt;code class="language-bash"&gt;kubectl patch svc prometheus-grafana &lt;span class="token parameter variable"&gt;-n&lt;/span&gt; monitoring &lt;span class="token parameter variable"&gt;-p&lt;/span&gt; &lt;span class="token string"&gt;''&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt; 
      &lt;div class="toolbar"&gt; 
       &lt;div class="toolbar-item"&gt;
        &lt;span style="font-size: 18px;"&gt;Bash&lt;/span&gt;
       &lt;/div&gt; 
       &lt;div class="toolbar-item"&gt;
        &lt;span style="font-size: 18px;"&gt;Copy&lt;/span&gt;
       &lt;/div&gt; 
      &lt;/div&gt; 
     &lt;/div&gt; 
     &lt;p&gt;&lt;span style="font-size: 18px;"&gt;At this point, you can get the public DNS of the load balancer from the AWS console. Be sure to associate a security group to your load balancer to limit access to your monitoring solution. Once the load balancer is up and running, you can access Grafana using the &lt;strong&gt;DNS&lt;/strong&gt; name of the load balancer.&lt;/span&gt;&lt;/p&gt; 
     &lt;p&gt;&lt;span style="font-size: 18px;"&gt;&lt;strong&gt;Alternatively&lt;/strong&gt;, if you are experimenting with Minikube, you can expose your services via port-forwarding using the following commands:&lt;/span&gt;&lt;/p&gt; 
     &lt;pre class="overflow-x-auto"&gt;&lt;span style="font-size: 18px;"&gt;&lt;code class=""&gt;kubectl port-forward -n monitoring svc/prometheus-kube-prometheus-prometheus 9090:9090 &lt;/code&gt;&lt;code class=""&gt;kubectl port-forward -n monitoring svc/prometheus-grafana 3000:80&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt; 
     &lt;p&gt;&lt;span style="font-size: 18px;"&gt;You can now access Prometheus at &lt;code class=""&gt;http://localhost:9090&lt;/code&gt; and Grafana at &lt;code class=""&gt;http://localhost:3000&lt;/code&gt;.&lt;/span&gt;&lt;/p&gt; 
     &lt;p&gt;&lt;img class="wp-image-11597 aligncenter" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/Screenshot-2024-10-10-at-2_07_34%E2%80%AFpm-300x175.png?width=931&amp;amp;height=543&amp;amp;name=Screenshot-2024-10-10-at-2_07_34%E2%80%AFpm-300x175.png" alt="" width="931" height="543"&gt;&lt;/p&gt; 
     &lt;p style="font-size: 18px;"&gt;The default credentials are:&lt;/p&gt; 
     &lt;ul style="font-size: 18px;"&gt; 
      &lt;li&gt;&lt;strong&gt;Username&lt;/strong&gt;: &lt;code class=""&gt;admin&lt;/code&gt;&lt;/li&gt; 
      &lt;li&gt;&lt;strong&gt;Password&lt;/strong&gt;: &lt;code class=""&gt;prom-operator&lt;/code&gt;&lt;/li&gt; 
     &lt;/ul&gt; 
     &lt;p style="font-size: 18px;"&gt;Be sure to change your password after your first login.&lt;/p&gt; 
     &lt;h4 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;&lt;strong&gt;Step 3: Setting up Grafana Dashboards&lt;/strong&gt;&lt;/h4&gt; 
     &lt;p&gt;&lt;span style="font-size: 18px;"&gt;Grafana comes with pre-configured dashboards for Kubernetes monitoring. Once you're logged into Grafana, follow these steps to set them up:&lt;/span&gt;&lt;/p&gt; 
     &lt;ol&gt; 
      &lt;li&gt;&lt;span style="font-size: 18px;"&gt;&lt;strong&gt;Prometheus Data Source&lt;/strong&gt;: If you setup Prometheus and Grafana using the Kube-Prometheus stack, this data source will already be configured. If you have installed Prometheus and Grafana separately, you will need to setup Prometheus as a data source.&lt;/span&gt; 
       &lt;ul&gt; 
        &lt;li&gt;&lt;span style="font-size: 18px;"&gt;Navigate to &lt;code class=""&gt;Connections&lt;/code&gt; -&amp;gt; &lt;code class=""&gt;Data Sources&lt;/code&gt;.&lt;/span&gt;&lt;/li&gt; 
        &lt;li&gt;&lt;span style="font-size: 18px;"&gt;Add a new data source and choose "Prometheus."&lt;/span&gt;&lt;/li&gt; 
        &lt;li&gt;&lt;span style="font-size: 18px;"&gt;Enter the Prometheus service URL: &lt;code class=""&gt;http://prometheus-kube-prometheus-prometheus.monitoring.svc:9090&lt;/code&gt;.&lt;/span&gt;&lt;/li&gt; 
        &lt;li&gt;&lt;span style="font-size: 18px;"&gt;Click "Save &amp;amp; Test" to ensure Grafana can connect to Prometheus.&lt;/span&gt;&lt;/li&gt; 
       &lt;/ul&gt; &lt;/li&gt; 
      &lt;li&gt;&lt;span style="font-size: 18px;"&gt;&lt;strong&gt;Import Pre-Built Dashboards&lt;/strong&gt;: Grafana allows you to import community-built dashboards specifically designed for Kubernetes monitoring.&lt;/span&gt; 
       &lt;ul&gt; 
        &lt;li&gt;&lt;span style="font-size: 18px;"&gt;Go to &lt;code class=""&gt;Dashboards&lt;/code&gt; -&amp;gt; &lt;code class=""&gt;New&lt;/code&gt; -&amp;gt; &lt;code class=""&gt;Import&lt;/code&gt;.&lt;/span&gt;&lt;/li&gt; 
        &lt;li&gt;&lt;span style="font-size: 18px;"&gt;Use dashboard IDs from Grafana's official dashboard page (https://grafana.com/grafana/dashboards).&lt;/span&gt;&lt;/li&gt; 
        &lt;li&gt;&lt;span style="font-size: 18px;"&gt;Copy the ID for any popular dashboard you want to use. For this post, we will use the "Node Exporter Full" dashboard.&lt;/span&gt;&lt;br&gt;&lt;img class="alignnone wp-image-11599" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/Screenshot-2024-10-10-at-2_29_48%E2%80%AFpm-300x229.png?width=854&amp;amp;height=652&amp;amp;name=Screenshot-2024-10-10-at-2_29_48%E2%80%AFpm-300x229.png" alt="" width="854" height="652"&gt;&lt;/li&gt; 
        &lt;li&gt;The dashboard you get from this looks like the following:&lt;br&gt;&lt;img class="alignnone wp-image-11600" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/Screenshot-2024-10-10-at-2_31_19%E2%80%AFpm-300x169.png?width=1149&amp;amp;height=647&amp;amp;name=Screenshot-2024-10-10-at-2_31_19%E2%80%AFpm-300x169.png" alt="" width="1149" height="647"&gt;&lt;/li&gt; 
       &lt;/ul&gt; &lt;/li&gt; 
     &lt;/ol&gt; 
     &lt;h4 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;&lt;strong&gt;Step 4: Configuring Alerts&lt;/strong&gt;&lt;/h4&gt; 
     &lt;p style="font-size: 18px;"&gt;Prometheus comes with a powerful alerting system. Alerts are defined in &lt;code class=""&gt;Alertmanager&lt;/code&gt;, which you can configure in the &lt;code class=""&gt;values.yaml&lt;/code&gt; file before installing the Helm chart or modify later. To set up a simple alert, follow these steps:&lt;/p&gt; 
     &lt;pre class="overflow-x-auto"&gt;&lt;code class=""&gt;kubectl edit configmap -n monitoring prometheus-kube-prometheus-alertmanager&lt;/code&gt;&lt;/pre&gt; 
     &lt;p style="font-size: 18px;"&gt;Add your alert rules under the &lt;code class=""&gt;alertmanager.yaml&lt;/code&gt; section. For example, to set up a basic alert for high CPU usage:&lt;/p&gt; 
     &lt;pre class="overflow-x-auto"&gt;&lt;code class=""&gt;yaml
   alert: HighCPUUsage
   expr: sum(rate(container_cpu_usage_seconds_total[5m])) by (instance) &amp;gt; 0.85
   for: 2m
   labels:
     severity: critical
   annotations:
     summary: "Instance  CPU usage is over 85%"
     description: "CPU usage is above 85% for the past 2 minutes."&lt;/code&gt;&lt;/pre&gt; 
     &lt;p style="font-size: 18px;"&gt;Once you've configured alerts, Prometheus will automatically reload the configuration. You can verify the alerts by visiting the Alertmanager web UI (accessible through port-forwarding or Load Balancer).&lt;/p&gt; 
     &lt;h5 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;&lt;strong&gt;Step 5: Persisting Data&lt;/strong&gt;&lt;/h5&gt; 
     &lt;p&gt;By default, Prometheus and Grafana store data in their respective pods, which means the data will be lost if the pod restarts. To persist data, you need to configure persistent volume claims (PVCs). Modify the Helm values to enable persistence:&lt;/p&gt; 
     &lt;pre class="overflow-x-auto"&gt;&lt;code class=""&gt;prometheus:
  prometheusSpec:
    storageSpec:
      volumeClaimTemplate:
        spec:
          accessModes: ["ReadWriteOnce"]
          resources:
            requests:
              storage: 20Gi

grafana:
  persistence:
    enabled: true
    size: 10Gi&lt;/code&gt;&lt;/pre&gt; 
     &lt;p&gt;After updating the values, you'll need to redeploy the Helm chart with:&lt;/p&gt; 
     &lt;pre class="overflow-x-auto"&gt;&lt;code class=""&gt;helm upgrade prometheus prometheus-community/kube-prometheus-stack --namespace monitoring&lt;/code&gt;&lt;/pre&gt; 
     &lt;p&gt;This ensures your data remains even after pod restarts.&lt;/p&gt; 
     &lt;h4 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;Conclusion&lt;/h4&gt; 
     &lt;p&gt;With Prometheus and Grafana installed on your EKS cluster, you now have a powerful monitoring stack capable of tracking the health and performance of your Kubernetes environment. This setup provides detailed metrics, insightful visualizations, and flexible alerting capabilities, making it easier to ensure your applications and infrastructure are running smoothly. Monitoring with Prometheus and Grafana can be further extended by integrating with additional data sources, enabling long-term storage, or customizing alerts based on your system's needs. Happy monitoring!&lt;/p&gt; 
     &lt;p&gt;Learn more about Amazon EKS here:&amp;nbsp; https://aws.amazon.com/eks/&lt;br&gt;Learn more about Prometheus here:&amp;nbsp; https://prometheus.io/docs/visualization/grafana/&lt;br&gt;Learn more about Grafana here:&amp;nbsp; https://grafana.com/&lt;/p&gt; 
     &lt;p&gt;And don't forget to check out more great Mantalus &lt;a href="https://mantalus.com/blog/"&gt;Blogs&lt;/a&gt; and &lt;a href="https://mantalus.com/case-studies/"&gt;Case Studies&lt;/a&gt;&lt;/p&gt; 
    &lt;/div&gt; 
   &lt;/div&gt; 
  &lt;/div&gt; 
 &lt;/div&gt; 
&lt;/div&gt;  
&lt;img src="https://track-ap1.hubspot.com/__ptq.gif?a=442934832&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fhstest.mantalus.com%2Fmantalus-blog%2Fmantalus-aws-blog-installing-prometheus-and-grafana-on-eks&amp;amp;bu=https%253A%252F%252Fhstest.mantalus.com%252Fmantalus-blog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>EKS Cluster</category>
      <category>Prometheus</category>
      <category>Grafana</category>
      <pubDate>Wed, 14 Oct 2026 23:55:54 GMT</pubDate>
      <guid>https://hstest.mantalus.com/mantalus-blog/mantalus-aws-blog-installing-prometheus-and-grafana-on-eks</guid>
      <dc:date>2026-10-14T23:55:54Z</dc:date>
      <dc:creator>Salek Ali</dc:creator>
    </item>
    <item>
      <title>Mantalus | AWS | Blog | AWS Verified Access</title>
      <link>https://hstest.mantalus.com/mantalus-blog/blog/aws-verified-access</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://hstest.mantalus.com/mantalus-blog/blog/aws-verified-access" title="" class="hs-featured-image-link"&gt; &lt;img src="https://hstest.mantalus.com/hubfs/Website%20images/Migration_1080.jpg" alt="Mantalus | AWS | Blog | AWS Verified Access" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Introduction&lt;/h3&gt; 
&lt;p&gt;Secure access to corporate and internal applications is critical in today's distributed work environment. Organisations' most common and traditional approach is to have a Virtual Private Network (VPN), but they are often cumbersome to manage and provide a broad level of access, increasing security risks. Whether your applications are deployed within the AWS cloud or on external platforms such as on-premises infrastructure or third-party cloud environments, AWS Verified Access simplifies access to your internal applications using access policies integrated with your own trusted providers to assess user requests without managing the VPN infrastructure.&lt;/p&gt;</description>
      <content:encoded>&lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Introduction&lt;/h3&gt; 
&lt;p&gt;Secure access to corporate and internal applications is critical in today's distributed work environment. Organisations' most common and traditional approach is to have a Virtual Private Network (VPN), but they are often cumbersome to manage and provide a broad level of access, increasing security risks. Whether your applications are deployed within the AWS cloud or on external platforms such as on-premises infrastructure or third-party cloud environments, AWS Verified Access simplifies access to your internal applications using access policies integrated with your own trusted providers to assess user requests without managing the VPN infrastructure.&lt;/p&gt;  
&lt;h3 class=""&gt;How it works&lt;/h3&gt; 
&lt;p&gt;AWS Verified Access assesses each user request to your applications and grants access based on two criteria:&lt;/p&gt; 
&lt;ol&gt; 
 &lt;li&gt;&lt;strong&gt;Trust Data&lt;/strong&gt;&amp;nbsp;provided by your selected trust provider (either AWS or a third-party service).&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Access Policies&lt;/strong&gt;&amp;nbsp;that you define within Verified Access.&lt;/li&gt; 
&lt;/ol&gt; 
&lt;p&gt;When a user attempts to access an application, Verified Access retrieves their trust data from the provider and evaluates it against your configured policies. Access is granted only if the user satisfies the specified security criteria. By default, all requests are denied until a policy is established.&lt;/p&gt; 
&lt;h3 class=""&gt;Architecture&lt;/h3&gt; 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;div style="width: 744px;" class="wp-caption aligncenter"&gt;
 &lt;img src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/verified-access-components.png?width=734&amp;amp;height=341&amp;amp;name=verified-access-components.png" alt="Using Verified Access to authenticate an application request from a user." width="734" height="341"&gt; 
 &lt;p class="wp-caption-text"&gt;Key components of Verified Access^[1^]&lt;/p&gt; 
&lt;/div&gt; This blog will explain how it works and the steps to configure AWS Verified Access in your AWS environment. 
&lt;p&gt;&amp;nbsp;&lt;/p&gt; 
&lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Type of Verifications&lt;/h3&gt; 
&lt;p&gt;Verified Access supports two types of verifications:&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;&lt;strong&gt;Identity/User Verification&lt;/strong&gt; integrates with AWS IAM or AWS SSO for user identity verification. You can also use third-party identity providers such as Okta, Azure AD or Google Workspace.&lt;/li&gt; 
 &lt;li&gt;&lt;strong&gt;Device Posture Verification&lt;/strong&gt;&amp;nbsp;&lt;span style="margin: 0px; padding: 0px;"&gt;integrates with&amp;nbsp;device management solutions, and&amp;nbsp;&lt;/span&gt;AWS Verified Access verifies user device compliance. For example, it checks whether the device has up-to-date antivirus software and OS patches or is encrypted.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Access Group Policy Enforcement&lt;/h3&gt; 
&lt;p&gt;AWS Verified Access evaluates access policies defined by the organisation. These policies specify which users, roles, or groups are allowed access and whether the device meets security posture requirements for the device trust provider. Policies can be enforced at the application level, ensuring only authorised users and compliant devices can access a specific app. It uses Cedar policy language, and here are some examples of the policies that can enforced.&lt;/p&gt; 
&lt;p&gt;The following is a user access policy that ensures that only the users from xyz.com domain are permitted to access the application:&lt;/p&gt; 
&lt;p&gt;&lt;code class="language-json"&gt;permit(principal&lt;span class="token punctuation"&gt;,&lt;/span&gt; action&lt;span class="token punctuation"&gt;,&lt;/span&gt; resource) when ; &lt;/code&gt;&lt;/p&gt; 
&lt;p&gt;Here is an example of a device compliance policy that ensures the device's location is in the US and MFA is enabled.&lt;/p&gt; 
&lt;p&gt;&lt;code class="language-json"&gt;permit(principal&lt;span class="token punctuation"&gt;,&lt;/span&gt; action&lt;span class="token punctuation"&gt;,&lt;/span&gt; resource) when ;&lt;/code&gt;&lt;br&gt;&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;Based on the policy evaluation, access to the requested application is granted or denied. If access is denied, the user may be notified of the specific requirements for accessing the requested application.&lt;/p&gt; 
&lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Logging and Monitoring&lt;/h3&gt; 
&lt;p&gt;All calls made to the application are logged in CloudWatch for auditing and monitoring purposes. Using CloudWatch alarms, you can set up alerts for unauthorised access attempts or suspicious activities to ensure the security incidents are properly handled.&lt;/p&gt; 
&lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Steps to Create it from AWS Console&lt;/h3&gt; 
&lt;h4 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;1. Create a Verified Access Trust Provider&lt;/h4&gt; 
&lt;h5 class="fusion-responsive-typography-calculated" style="--fontsize: 18; line-height: 1.1; --minfontsize: 18;"&gt;Configuring user trust provider&lt;/h5&gt; 
&lt;ul&gt; 
 &lt;li style="list-style-type: none;"&gt; 
  &lt;ul&gt; 
   &lt;li&gt;On the AWS Console, select VPC and go to the &lt;strong&gt;AWS Verified Access&lt;/strong&gt; section.&lt;/li&gt; 
   &lt;li&gt;Select &lt;strong&gt;Verified Access trust providers&lt;/strong&gt; and click &lt;strong&gt;Create Verified Access trust provider&lt;/strong&gt; button.&lt;/li&gt; 
   &lt;li&gt;Select the &lt;strong&gt;User trust provider&lt;/strong&gt; as the &lt;strong&gt;Trust provider type &lt;/strong&gt;and the required information based on the &lt;strong&gt;User trust provider type&lt;/strong&gt; that you want to integrate. You can either choose IAM Identity Centre or your corporate Identity provider's OIDC settings to incorporate it.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h5 class="fusion-responsive-typography-calculated" style="--fontsize: 18; line-height: 1.1; --minfontsize: 18;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Configuring user trust provider&lt;/h5&gt; 
&lt;ul&gt; 
 &lt;li style="list-style-type: none;"&gt; 
  &lt;ul&gt; 
   &lt;li&gt;To configure this verification: 
    &lt;ul&gt; 
     &lt;li&gt;On the AWS Console, select VPC and go to the &lt;strong&gt;AWS Verified Access&lt;/strong&gt; section.&lt;/li&gt; 
     &lt;li&gt;Select &lt;strong&gt;Verified Access trust providers&lt;/strong&gt; and click &lt;strong&gt;Create Verified Access trust provider&lt;/strong&gt; button.&lt;/li&gt; 
     &lt;li&gt;Select the &lt;strong&gt;Device trust provider&lt;/strong&gt; as the &lt;strong&gt;&lt;strong&gt;Trust provider type &lt;/strong&gt;&lt;/strong&gt;and enter&lt;strong&gt;&lt;strong&gt; the Device trust provider type&lt;br&gt;&lt;/strong&gt;&lt;/strong&gt;&amp;nbsp;that you want to integrate.&lt;/li&gt; 
    &lt;/ul&gt; &lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;2. Create a Verified Access Group&lt;/h4&gt; 
&lt;p&gt;A &lt;strong&gt;Verified Access Group&lt;/strong&gt; allows you to manage policies and configurations for multiple endpoints at once. You can assign endpoints to a group for easier management.&lt;/p&gt; 
&lt;ul&gt; 
 &lt;li&gt;Navigate to the &lt;strong&gt;Verified Access Groups&lt;/strong&gt; section.&lt;/li&gt; 
 &lt;li&gt;Click &lt;strong&gt;Create Verified Access Group&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Specify the policies that apply to the group, such as user identity verification and device posture checks.&amp;nbsp;&lt;span style="margin: 0px; padding: 0px;"&gt;For policy examples, refer to the&amp;nbsp;&lt;strong&gt;Access Group Policy Enforcement&amp;nbsp;&lt;/strong&gt;section of this blog&lt;/span&gt;.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;h4 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;3. Create a Verified Access Endpoint&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;In the &lt;strong&gt;Verified Access&lt;/strong&gt; section, choose &lt;strong&gt;Endpoints&lt;/strong&gt; and click &lt;strong&gt;Create Endpoint&lt;/strong&gt;.&lt;/li&gt; 
 &lt;li&gt;Configure the Verified Access endpoint: 
  &lt;ul&gt; 
   &lt;li&gt;&lt;strong&gt;Name&lt;/strong&gt;: Give your endpoint a descriptive name.&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Application Load Balancer (ALB) or Network Load Balancer (NLB)&lt;/strong&gt;: Select the type of load balancer you use to route traffic to your application.&lt;/li&gt; 
   &lt;li&gt;&lt;strong&gt;Target&lt;/strong&gt;: Choose the load balancer the endpoint will use to route traffic to your application.&lt;/li&gt; 
  &lt;/ul&gt; &lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;You can either select an existing &lt;strong&gt;Verified Access group &lt;/strong&gt;policy to attach to your endpoint or configure the access policies while creating the endpoint in this section.&amp;nbsp;&lt;/p&gt; 
&lt;h3 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.2; --minfontsize: 14.4;"&gt;Infrastructure As Code&lt;/h3&gt; 
&lt;p&gt;The steps above describe configuring the required settings using the AWS Management Console. However, if you prefer using Infrastructure as Code (IaC) to automate this process, you can visit our Mantalus &lt;a href="https://github.com/mantalus/mantalus_aws_verified_access"&gt;GitHub repository&lt;/a&gt;, which contains CDK code written in Python. With this approach, you can deploy the entire configuration with simple commands.&lt;/p&gt; 
&lt;div class="flex max-w-full flex-col flex-grow"&gt; 
 &lt;div class="min-h-[20px] text-message flex w-full flex-col items-end gap-2 whitespace-normal break-words [.text-message+&amp;amp;]:mt-5"&gt; 
  &lt;h4 class="flex w-full flex-col gap-1 empty:hidden first:pt-[3px] fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;References&lt;/h4&gt; 
 &lt;/div&gt; 
&lt;/div&gt;  
&lt;img src="https://track-ap1.hubspot.com/__ptq.gif?a=442934832&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fhstest.mantalus.com%2Fmantalus-blog%2Fblog%2Faws-verified-access&amp;amp;bu=https%253A%252F%252Fhstest.mantalus.com%252Fmantalus-blog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>AWS Verified Access</category>
      <pubDate>Mon, 12 Oct 2026 05:08:51 GMT</pubDate>
      <guid>https://hstest.mantalus.com/mantalus-blog/blog/aws-verified-access</guid>
      <dc:date>2026-10-12T05:08:51Z</dc:date>
      <dc:creator>Anoop Mishra</dc:creator>
    </item>
    <item>
      <title>Mantalus | AWS | Blog | Azure AD AWS SSO and Amazon Connect</title>
      <link>https://hstest.mantalus.com/mantalus-blog/blog/azure-ad-with-aws-sso-and-amazon-connect</link>
      <description>&lt;div class="hs-featured-image-wrapper"&gt; 
 &lt;a href="https://hstest.mantalus.com/mantalus-blog/blog/azure-ad-with-aws-sso-and-amazon-connect" title="" class="hs-featured-image-link"&gt; &lt;img src="https://hstest.mantalus.com/hubfs/Website%20images/Home/Home_img_1_1080.jpg" alt="Mantalus | AWS | Blog | Azure AD AWS SSO and Amazon Connect" class="hs-featured-image" style="width:auto !important; max-width:50%; float:left; margin:0 15px 15px 0;"&gt; &lt;/a&gt; 
&lt;/div&gt; 
&lt;p class="fusion-responsive-typography-calculated" style="line-height: 1.1; color: var(--awb-color4); text-align: left;"&gt;Recently I was having a look at&amp;nbsp;&lt;a href="https://aws.amazon.com/connect/"&gt;Amazon Connect&lt;/a&gt;&amp;nbsp;and configuring a demo for a client. One of the things I wanted to get working was single sign on (SSO) with Azure AD as the identity provider (IdP). My search for blog posts and documentation on how to do this uncovered some good starting points but they didn't cater for all my requirements.&lt;/p&gt;</description>
      <content:encoded>&lt;p class="fusion-responsive-typography-calculated" style="line-height: 1.1; color: var(--awb-color4); text-align: left;"&gt;Recently I was having a look at&amp;nbsp;&lt;a href="https://aws.amazon.com/connect/"&gt;Amazon Connect&lt;/a&gt;&amp;nbsp;and configuring a demo for a client. One of the things I wanted to get working was single sign on (SSO) with Azure AD as the identity provider (IdP). My search for blog posts and documentation on how to do this uncovered some good starting points but they didn't cater for all my requirements.&lt;/p&gt;  
&lt;p&gt;&lt;a href="https://aws.amazon.com/blogs/aws/the-next-evolution-in-aws-single-sign-on/"&gt;The Next Evolution in AWS Single Sign-On&lt;/a&gt;&amp;nbsp;is a great blog post on getting Azure AD identities into AWS SSO but is missing the integration into Connect.&amp;nbsp;&lt;a href="https://aws.amazon.com/blogs/contact-center/enabling-federation-with-aws-single-sign-on-and-amazon-connect/"&gt;Enabling federation with AWS Single Sign-On and Amazon Connect&lt;/a&gt;&amp;nbsp;is another great blog post but uses AWS Managed Microsoft AD as its user base.&lt;/p&gt; 
&lt;p&gt;Between those two blog posts and the AWS documentation I thought I had everything I needed to get it working quickly. The first little hurdle I encountered was my users in Azure AD did not have all the mandatory fields set for&amp;nbsp;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/provision-automatically.html"&gt;automatic provisioning&lt;/a&gt;. As per the documentation:&lt;/p&gt; 
&lt;blockquote&gt; 
 &lt;p&gt;For SCIM synchronization to work, every user must have a First name, Last name, Username and Display name value specified. If any of these values are missing from a user, that user will not be provisioned.&lt;/p&gt; 
&lt;/blockquote&gt; 
&lt;p&gt;The Azure AD account I was using for this demo wasn't properly maintained so I had to go in there and update all the missing fields. Once these were updated the identities all came across to AWS SSO. A word of warning though, automatic provisioning on Azure syncs&amp;nbsp;&lt;a href="https://docs.microsoft.com/en-us/azure/active-directory/app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user#how-long-will-it-take-to-provision-users"&gt;every 40 minutes&lt;/a&gt;. There were times it took almost an hour to sync across. It can be a long day waiting for users to come across especially if you don't get your settings right from the start and have to make changes and then wait for them to sync across again.&lt;/p&gt; 
&lt;p&gt;Once I had my users in AWS SSO I moved on to the Connect blog post setup steps. I created a user&amp;nbsp;&lt;a href="mailto:stojan.veselinovski@mantalus.com"&gt;stojan.veselinovski@mantalus.com&lt;/a&gt;&amp;nbsp;in my Amazon Connect instance and for attribute mappings I was using the configuration options as outlined in Step 4.&lt;/p&gt; 
&lt;p&gt;&lt;img class="size-large wp-image-4834 aligncenter" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/configure-sso-1024x289.png?width=1024&amp;amp;height=289&amp;amp;name=configure-sso-1024x289.png" alt="" width="1024" height="289"&gt;&lt;/p&gt; 
&lt;p&gt;Now that everything was configured it was time to run my first test and to try login. I grabbed my SSO url from the SSO console. Its configured in the&amp;nbsp;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/prereqs.html"&gt;initial setup of SSO&lt;/a&gt;&amp;nbsp;and in the format of:&lt;/p&gt; 
&lt;p&gt;&lt;strong&gt;https://.awsapps.com/start#/&lt;/strong&gt;&lt;/p&gt; 
&lt;p&gt;The logon screen is shown below.&lt;/p&gt; 
&lt;p&gt;&lt;img class="size-large wp-image-4835 aligncenter" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/sso-awsapps-1024x248.png?width=1024&amp;amp;height=248&amp;amp;name=sso-awsapps-1024x248.png" alt="" width="1024" height="248"&gt;&lt;/p&gt; 
&lt;p&gt;I clicked on Amazon Connect and it popped up the Microsoft login box and a list of accounts I could use. I authenticated with the appropriate account and then I got the error –&amp;nbsp;&lt;code class=""&gt;$ is empty&lt;/code&gt;.&lt;/p&gt; 
&lt;p&gt;Looking at the documentation I could see the following&amp;nbsp;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/attributemappingsconcept.html"&gt;supported attributes&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;&lt;img class="size-full wp-image-4836 aligncenter" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/supported-attributes.png?width=552&amp;amp;height=545&amp;amp;name=supported-attributes.png" alt="" width="552" height="545" style="width: 552px; height: auto; max-width: 100%;"&gt;&lt;/p&gt; 
&lt;p&gt;I checked the synced identities in AWS SSO and noticed that "Primary Email" was blank. The&amp;nbsp;&lt;a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/provision-automatically.html"&gt;documentation&lt;/a&gt;&amp;nbsp;says auto provisioning uses System for Cross-domain Identity Management (SCIM) v2.0 protocol. The core schema specification can be found at&amp;nbsp;&lt;a href="https://tools.ietf.org/html/rfc7643"&gt;https://tools.ietf.org/html/rfc7643&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;It wasn't completely obvious as to what fields I needed to map but my first inclination was to set the source attribute in Azure AD to be userPrincipalName and dest attribute to be email[type = "work"].value. See below. I waited the obligatory 40 odd minutes for the sync to come across and found that the email field had been populated.&lt;/p&gt; 
&lt;p&gt;&lt;img class="size-large wp-image-4837 aligncenter" src="https://hstest.mantalus.com/hs-fs/hubfs/Imported_Blog_Media/azure-mappings-1024x263.png?width=1024&amp;amp;height=263&amp;amp;name=azure-mappings-1024x263.png" alt="" width="1024" height="263"&gt;&lt;/p&gt; 
&lt;p&gt;So I ran my test login into Amazon Connect again and this time it all worked and we had success.&lt;/p&gt; 
&lt;h4 class="fusion-responsive-typography-calculated" style="--fontsize: 14.4; line-height: 1.3; --minfontsize: 14.4;"&gt;&lt;strong&gt;Key Takeaways&lt;/strong&gt;&lt;/h4&gt; 
&lt;ul&gt; 
 &lt;li&gt;Follow&amp;nbsp;&lt;a href="https://aws.amazon.com/blogs/aws/the-next-evolution-in-aws-single-sign-on/"&gt;The Next Evolution in AWS Single Sign-On&lt;/a&gt;&amp;nbsp;to setup Azure AD integration into AWS SSO&lt;/li&gt; 
 &lt;li&gt;Make sure First name, Last name, Username and Display name are populated in Azure AD for all users.&lt;/li&gt; 
 &lt;li&gt;Make sure you set source userPrincipalName to dest email[type = "work"].value for primary email to come across. You could possibly set other attributes depending on requirements but read through&amp;nbsp;&lt;a href="https://tools.ietf.org/html/rfc7643"&gt;rfc7623&lt;/a&gt;&amp;nbsp;to find what works for you.&lt;/li&gt; 
 &lt;li&gt;Follow&amp;nbsp;&lt;a href="https://aws.amazon.com/blogs/contact-center/enabling-federation-with-aws-single-sign-on-and-amazon-connect/"&gt;Enabling federation with AWS Single Sign-On and Amazon Connect&lt;/a&gt;&amp;nbsp;to setup AWS SSO integration into Amazon Connect&lt;/li&gt; 
 &lt;li&gt;Watch out for the 40 odd minute sync from Azure. There is no button or method to trigger a sync and it can be a long day waiting when you are testing different mappings.&lt;/li&gt; 
 &lt;li&gt;Even though its single sign on you still have to manually create a user in Amazon Connect with the same username as the attribute passed in for RoleSessionName from the IdP.&lt;/li&gt; 
&lt;/ul&gt;  
&lt;img src="https://track-ap1.hubspot.com/__ptq.gif?a=442934832&amp;amp;k=14&amp;amp;r=https%3A%2F%2Fhstest.mantalus.com%2Fmantalus-blog%2Fblog%2Fazure-ad-with-aws-sso-and-amazon-connect&amp;amp;bu=https%253A%252F%252Fhstest.mantalus.com%252Fmantalus-blog&amp;amp;bvt=rss" alt="" width="1" height="1" style="min-height:1px!important;width:1px!important;border-width:0!important;margin-top:0!important;margin-bottom:0!important;margin-right:0!important;margin-left:0!important;padding-top:0!important;padding-bottom:0!important;padding-right:0!important;padding-left:0!important; "&gt;</content:encoded>
      <category>Amazon Connect</category>
      <category>AWS SSO</category>
      <category>Azure AD</category>
      <pubDate>Mon, 12 Oct 2026 05:08:36 GMT</pubDate>
      <guid>https://hstest.mantalus.com/mantalus-blog/blog/azure-ad-with-aws-sso-and-amazon-connect</guid>
      <dc:date>2026-10-12T05:08:36Z</dc:date>
      <dc:creator>Stojan Veselinovski</dc:creator>
    </item>
  </channel>
</rss>
