<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/">

<channel>
	<title>Numino Labs</title>
	<atom:link href="https://numinolabs.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://numinolabs.com</link>
	<description>People &#124; Technology &#124; Solutions</description>
	<lastBuildDate>Thu, 30 Jan 2025 09:32:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.2</generator>

<image>
	<url>https://numinolabs.com/wp-content/uploads/2024/09/cropped-icon-32x32.png</url>
	<title>Numino Labs</title>
	<link>https://numinolabs.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Securing DevOps Pipelines in Azure: From Code to Cloud</title>
		<link>https://numinolabs.com/product-security/securing-devops-pipelines-in-azure-from-code-to-cloud/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=securing-devops-pipelines-in-azure-from-code-to-cloud</link>
					<comments>https://numinolabs.com/product-security/securing-devops-pipelines-in-azure-from-code-to-cloud/#respond</comments>
		
		<dc:creator><![CDATA[Yogesh Morankar]]></dc:creator>
		<pubDate>Mon, 27 Jan 2025 10:58:12 +0000</pubDate>
				<category><![CDATA[Product Security]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[BestPractices]]></category>
		<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://numinolabs.com/design/blended-mode-of-deploying-websites-on-aws-copy/</guid>

					<description><![CDATA[Introduction Recent studies show that 62% of organizations have experienced DevOps pipeline breaches due to inadequate security measures. Securing DevOps pipelines is essential to... <br><a href="https://numinolabs.com/product-security/securing-devops-pipelines-in-azure-from-code-to-cloud/" class="mil-link mil-mt-30"><span>Read more</span><i class="fas fa-arrow-right"></i></a>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Introduction</h3>



<p>Recent studies show that 62% of organizations have experienced DevOps pipeline breaches due to inadequate security measures.</p>



<p>Securing DevOps pipelines is essential to protect your software delivery process from threats and vulnerabilities. Pipelines act as the backbone of continuous integration and delivery (CI/CD), handling sensitive information like source code, credentials, and access tokens. Without robust security measures, these pipelines become attractive targets for attackers seeking to inject malicious code, steal intellectual property, or disrupt services.</p>



<p>By embedding security into every stage—from code commits to cloud deployment—you mitigate risks like data breaches, unauthorized access, and compliance violations. A secure pipeline ensures your software is not only delivered quickly but also remains reliable, confidential, and trustworthy for end users.</p>



<h3 class="wp-block-heading"><strong>Understanding consequences of unsecured DevOps</strong></h3>



<p>Unsecured DevOps pipelines pose significant risks that can compromise the integrity, confidentiality, and availability of your systems. Some key risks include Data Leaks, Unauthorized Access to Pipeline and Artifacts, Supply Chain Attacks etc.<br></p>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Data Leaks</mark></h4>



<ul class="wp-block-list">
<li><strong>Sensitive Information Exposure</strong>: Pipelines often handle credentials, API keys, and private configurations. Without proper encryption or restricted access, these can be leaked, leading to unauthorized access.</li>



<li><strong>Source Code Theft</strong>: Exposed repositories can allow attackers to access proprietary code, intellectual property, or customer data.</li>



<li>E.g. If you are using Default agent machines provided by different DevOps tools like GitHub, Azure then they are more likely to result in Data leaks and other issues. Because these agents are globally distributed and shared across multiple customers/applications, using these agents is Highest Risk.</li>
</ul>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Unauthorized Access</mark></h4>



<ul class="wp-block-list">
<li><strong>Compromised Build Systems</strong>: Attackers may exploit weak authentication or unpatched vulnerabilities to gain access to CI/CD systems.</li>



<li><strong>Privilege Escalation</strong>: Misconfigured roles or permissions may allow unauthorized users to execute actions beyond their intended scope.</li>
</ul>



<p>E.g. Most of the time we do not treat our self hosted agents as our data storage which results in weak access mechanisms and open surface for cyber attacks. While Designing the DevOps pipelines we should make sure that we consider the Pipelines as part of our application, i.e. its resources should be accessible within the same restricted area as your application and not outside.<br></p>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Supply Chain Attacks</mark></h4>



<ul class="wp-block-list">
<li><strong>Injection of Malicious Code</strong>: Attackers can compromise build artifacts, inject malicious dependencies, or tamper with code during deployment.</li>



<li><strong>Downstream Impact</strong>: Infected pipelines can deploy compromised applications to production, affecting users and linked systems.</li>
</ul>



<p>By addressing these risks through robust security practices, such as securing credentials, implementing least privilege, and using trusted tools, you can ensure that your DevOps pipelines remain resilient and trustworthy.<br></p>



<h3 class="wp-block-heading">What should we do ?</h3>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Setup Self Hosted Agent</mark></h4>



<p>To avoid these issues with Default Agent Machines, you can use self hosted agents. Most of the DevOps services provide the configuration to add Self Hosted Runners/Agents to the Pipelines.&nbsp;</p>



<p>E.g. Setup a Self Hosted Agent in your environment and use these self hosted agents instead of Public Agents. Here are some references that you can use;</p>



<ul class="wp-block-list">
<li>Github : <a href="https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners">https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners</a></li>



<li>Azure DevOps: <a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&amp;tabs=yaml%2Cbrowser#self-hosted-agents">https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&amp;tabs=yaml%2Cbrowser#self-hosted-agents</a></li>
</ul>



<p>This will help you to run the build &amp; deployment activities from the secure VM’s in your environment instead of Public Agents. This way your data/application/secrets never leave your environment and keep safe on these self hosted agents.</p>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Setup Private Virtual Networks for your Self Hosted Agents</mark></h4>



<p>Let me Help you with the Example here;</p>


<div class="wp-block-image lightbox-trigger">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="588" height="307" src="https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-39-04.png" alt="" class="wp-image-7634" srcset="https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-39-04.png 588w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-39-04-300x157.png 300w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-39-04-200x104.png 200w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-39-04-400x209.png 400w" sizes="(max-width: 588px) 100vw, 588px" /></figure></div>


<p class="has-text-align-center">Figure 2.1 Sample Private Virtual Network For Application with DevOps Agents</p>



<p>In the diagram <a href="https://docs.google.com/document/d/15_naOW9Oo-VyhPKNj2hNuKyVG8I9aGhKvGlKYcLFii4/edit?tab=t.0#heading=h.ad9gkus3oo24">figure 2.1</a> above you can see that self hosted agents are deployed in the same Vnet as other resources to avoid any communication over the Public internet. Basically</p>



<p>There are options where you can choose to set up a separate Private Vnet for self hosted agents and peer the network with your application network for access based on the Organizational size and policies. Where only limited traffic is allowed between the peered network.&nbsp;</p>



<p>Again, the purpose here is to keep self hosted agents inside the private networks and use these agents in your pipelines instead of global agents.</p>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Setup Jumpbox to access private networks</mark></h4>



<p>When we set up the private networks, there are ways to access these networks like through jumpbox (refer<a href="https://docs.google.com/document/d/15_naOW9Oo-VyhPKNj2hNuKyVG8I9aGhKvGlKYcLFii4/edit?tab=t.0#heading=h.ddqwq3qrw8i2"> figure 2.2</a>). Jumpbox is the machine through which you can expose an endpoint to connect to these networks for troubleshooting purposes. In cloud there are also services like in Azure we have Bastion Host service for the same purpose.&nbsp;</p>


<div class="wp-block-image lightbox-trigger">
<figure class="aligncenter size-full"><img decoding="async" width="583" height="329" src="https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-42-36.png" alt="" class="wp-image-7635" srcset="https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-42-36.png 583w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-42-36-300x169.png 300w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-42-36-200x113.png 200w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-16-42-36-400x226.png 400w" sizes="(max-width: 583px) 100vw, 583px" /></figure></div>


<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Setup Network Firewall Rules or Network Security Groups</mark></h4>



<p>You can connect to this machine with your user identities with limited access and then you have access to the resources inside the network. We can configure the Firewalls and Network Security groups for securing these jumpbox and hardoning of the network.</p>


<div class="wp-block-image lightbox-trigger">
<figure class="aligncenter size-full"><img decoding="async" width="949" height="389" src="https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-17-01-26.png" alt="" class="wp-image-7637" srcset="https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-17-01-26.png 949w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-17-01-26-300x123.png 300w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-17-01-26-768x315.png 768w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-17-01-26-200x82.png 200w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-17-01-26-400x164.png 400w, https://numinolabs.com/wp-content/uploads/2025/01/Screenshot-from-2025-01-27-17-01-26-800x328.png 800w" sizes="(max-width: 949px) 100vw, 949px" /></figure></div>


<p class="has-text-align-center">Figure 2.3 Sample Network Security Rules for Self Hosted Agent</p>



<p>In the example above <a href="https://docs.google.com/document/d/15_naOW9Oo-VyhPKNj2hNuKyVG8I9aGhKvGlKYcLFii4/edit?tab=t.0#heading=h.5ynob0poyiv8">figure 2.3</a>, we have a network security group created to allow only SSH connection to the jumpbox, that too specifies inbound IP’s which are organizational IP’s. That means, you can connect to these machines only through your organizational networks and no public access is granted to these machines.&nbsp;</p>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Setup Private Repositories or Private Container Registries to store pipeline artifacts</mark></h4>



<p>Supply chain attacks pose a significant risk to DevOps pipelines. Protecting pipeline artifacts, such as OS images and application containers, is critical to ensuring the security of your deployment process.</p>



<h4 class="wp-block-heading"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Steps to Set Up Private Repositories or Container Registries</mark></h4>



<ol class="wp-block-list">
<li><strong>Choose a Cloud Service:</strong><strong><br></strong>Select a private repository or registry service. Examples:
<ul class="wp-block-list">
<li>Azure Container Registry (ACR)</li>



<li>Amazon Elastic Container Registry (ECR)</li>



<li>Google Container Registry (GCR)</li>
</ul>
</li>



<li><strong>Store Artifacts Securely:</strong><strong><br></strong>Store your OS images, Docker container images, and other build artifacts in these registries.</li>



<li><strong>Enable Private Endpoints:</strong><strong><br></strong>Configure the service to use private endpoints to ensure communication occurs over your virtual network (VNet) and not the public internet.</li>



<li><strong>Integrate with CI/CD Pipeline:</strong><strong><br></strong>Update your CI/CD pipeline to authenticate and interact with the private registry.</li>
</ol>



<h4 class="wp-block-heading" id="-lightbox-trigger"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-black-color">Setup credentials and sensitive information as Secrets</mark></h4>



<p>Setup environment variables or critical credentials as Secrets and allow access to them only through pipelines with user defined identities or system managed identities. These identities should have limited access to read the repo code or other artifacts that we access in the pipelines.</p>



<p>E.g. Nowadays most of the solutions like Github, Azure, AWS&nbsp; provide options to set up environment variables and secrets.&nbsp;</p>



<ul class="wp-block-list">
<li>Github Secrets: <a href="https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions">https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions</a></li>



<li>Azure Devops Secrets: <a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/process/set-secret-variables?view=azure-devops&amp;tabs=yaml%2Cbash">https://learn.microsoft.com/en-us/azure/devops/pipelines/process/set-secret-variables?view=azure-devops&amp;tabs=yaml%2Cbash</a></li>
</ul>



<p>The major difference between environment variables and secrets is that variables are not masked and printable in pipelines while the secrets are masked and not printable in the pipelines.&nbsp;</p>



<p>Though there are ways to print secrets, which I will say are bad coding practices.</p>



<p>We hope this blog provides a clear understanding of the essential secure practices that can be adopted in your projects. Security is a shared responsibility, and we invite you to share your experiences, insights, or suggestions on this topic. Together, we can learn, innovate, and strengthen our ability to deliver a secure and trustworthy environment for our customers and stakeholders.</p>



<p><br></p>
]]></content:encoded>
					
					<wfw:commentRss>https://numinolabs.com/product-security/securing-devops-pipelines-in-azure-from-code-to-cloud/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://numinolabs.com/wp-content/uploads/2025/01/image-1.jpg" length="224972" type="image/jpeg"/><media:content url="https://numinolabs.com/wp-content/uploads/2025/01/image-1.jpg" width="2560" height="1529" medium="image" type="image/jpeg"/>	</item>
		<item>
		<title>Building Dashboards for Multi-tenanted SaaS Products using AWS Quicksight</title>
		<link>https://numinolabs.com/design/building-dashboards-for-multi-tenanted-saas-products-using-aws-quicksight/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=building-dashboards-for-multi-tenanted-saas-products-using-aws-quicksight</link>
					<comments>https://numinolabs.com/design/building-dashboards-for-multi-tenanted-saas-products-using-aws-quicksight/#respond</comments>
		
		<dc:creator><![CDATA[Pushkar Nagarsenker]]></dc:creator>
		<pubDate>Fri, 10 Jan 2025 09:59:31 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[DataVisualization]]></category>
		<category><![CDATA[Quicksight]]></category>
		<guid isPermaLink="false">https://numinolabs.com/?p=7537</guid>

					<description><![CDATA[Introduction In today’s competitive software landscape, SaaS providers often face the challenge of delivering personalized data visualizations to multiple customers. This need is particularly... <br><a href="https://numinolabs.com/design/building-dashboards-for-multi-tenanted-saas-products-using-aws-quicksight/" class="mil-link mil-mt-30"><span>Read more</span><i class="fas fa-arrow-right"></i></a>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Introduction</h3>



<p>In today’s competitive software landscape, SaaS providers often face the challenge of delivering personalized data visualizations to multiple customers. This need is particularly pressing for multi-tenant SaaS products where different customers, or tenants, require isolated access to dashboards tailored to their data.&nbsp; Amazon QuickSight, a fully managed service from AWS, offers a robust solution for building and embedding dashboards that align perfectly with the multitenancy architecture of modern SaaS products.</p>



<p>Multitenancy in QuickSight enables organizations to efficiently manage and segregate dashboards, data sources, datasets, and user permissions for different tenants, all within a single QuickSight account. This approach simplifies operations while ensuring compliance with data privacy and security standards.</p>



<p>This blog will provide insights into implementing multitenancy in QuickSight, leveraging namespaces for isolating users and resources, configuring access control, and best practices for tenant isolation. The blog also discusses strategies for sharing dashboards across namespaces, dynamically embedding dashboards in client applications, and handling complex setups where namespace-specific administrators manage their own users and resources.</p>



<p></p>



<h3 class="wp-block-heading">Leveraging Namespaces for Multi-Tenancy</h3>



<p>QuickSight provides namespaces as a powerful feature to implement multi-tenancy, allowing organizations to segregate users and resources across different tenants. A namespace is essentially a container within QuickSight that isolates users, groups, and resources, ensuring that each tenant operates independently within the same QuickSight account.</p>



<p>For organizations setting up tenants, the ‘default’ namespace can be reserved for internal use, such as managing resources for subsidiaries or internal teams. Additional namespaces can then be created for each tenant, enabling</p>



<ul class="wp-block-list">
<li><strong>Data Isolation:</strong> Ensuring that data and resources for one tenant are not accessible to others.</li>



<li><strong>Custom User Management:</strong> Defining specific users and groups for each namespace, aligning with tenant-specific roles and permissions.</li>
</ul>



<p>Creating all users across tenants in the same default namespace in Amazon QuickSight can lead to several challenges.&nbsp;</p>



<ol class="wp-block-list">
<li><strong>Lack of Tenant Isolation :</strong> Without namespaces, users across tenants share the same resource space. Misconfigurations in access control (e.g., incorrect permissions on shared folders or row-level security rules) could lead to users inadvertently accessing dashboards, datasets, or analyses that belong to other tenants.</li>



<li><strong>Complex Access Control Configuration :</strong> One would rely heavily on RLS to ensure users see only their data in shared dashboards or datasets. This increases the complexity of dataset configurations and requires constant maintenance to prevent errors.</li>



<li><strong>Scalability Issues :</strong> As the number of tenants grows, managing shared dashboards, datasets, and analyses for all users in a single namespace becomes unmanageable</li>



<li><strong>Performance Bottlenecks :</strong> A single namespace means all users query shared datasets. Heavy usage by one tenant could degrade performance for others, leading to contention and slower query times.</li>



<li><strong>High Risk of Admin Errors :</strong> Misconfiguring a single shared resource or folder can impact multiple tenants, resulting in widespread access issues or data exposure.</li>
</ol>



<h4 class="wp-block-heading">Provisioning Users within the Namespaces</h4>



<p>Provisioning users in namespaces requires using the AWS CLI or SDK to programmatically create and manage users. Administrators can create users via the console for only the default namespace. For any other custom created namespaces, the users can only be created and provisioned access via the API. This process ensures that users added to a specific namespace cannot view or access resources outside their assigned namespace and hence provides complete isolation and control over tenant-specific configurations.</p>



<p>For a straightforward multitenancy setup, where users are only required to view QuickSight dashboards, the administrator of the default namespace can directly provision these users. However, in a more complex scenario where control needs to be delegated to a superuser within a specific namespace, the administrator can provision a user with an &#8216;admin&#8217; role for that namespace. This superuser can then manage the namespace independently, provisioning additional users with roles such as &#8216;author&#8217; or &#8216;reader.&#8217; This approach empowers tenants with greater autonomy while reducing reliance on the default namespace administrator.</p>



<p></p>



<h3 class="wp-block-heading">Resource Management</h3>



<h4 class="wp-block-heading">Creating Data Sources for Each Tenant and Sharing with the Namespace</h4>



<p>Creating a dedicated data source for each tenant provides clear separation of data and preventing accidental data leaks or unauthorized access. This has 2 major benefits&nbsp;</p>



<ol class="wp-block-list">
<li><strong>Custom Configuration</strong> : This allows for Data sources to be customized for tenant-specific requirements, such as applying connection settings, query optimizations, or filters.&nbsp;</li>



<li><strong>Operational Independence</strong><strong>:</strong> Updates or maintenance on one tenant&#8217;s data source do not impact others, allowing for better scalability.</li>
</ol>



<p>To share the data source with a namespace, you can use QuickSight APIs or CLI commands to assign the data source permissions to users or groups within the namespace.</p>



<h4 class="wp-block-heading">Publishing a Dashboard Across Namespaces</h4>



<p>Frequently, an admin may create a standard dashboard in the default namespace and need to share it with users in a custom namespace. This scenario is particularly useful when you want to provide a unified experience for tenants while maintaining data isolation. Steps involved in this process are&nbsp;</p>



<p><strong>Replicate assets : </strong>Replicate the datasets, analysis across the namespace</p>



<ul class="wp-block-list">
<li>Duplicate an existing dataset using the API &amp; modify the data source ARN in the dataset configuration to point to the new tenant&#8217;s data source.</li>



<li>Duplicate the analysis &amp; modify the analysis definition to reference the new dataset created for the tenant.</li>



<li>Publish the dashboard copy to the namespace updating the dashboard definition to use the new tenant-specific analysis or dataset.</li>
</ul>



<p><strong>Grant Access:</strong> Assign permissions to groups or users in the custom namespace to view or edit the dashboard.</p>



<p></p>



<h3 class="wp-block-heading">Embedding QuickSight Dashboards in Client Applications</h3>



<p>Finally, let&#8217;s talk about embedding Amazon QuickSight dashboards into client applications while maintaining strict access control. The process involves dynamically generating embed URLs based on user authentication and authorization within the application. This ensures that only authorized users can access the appropriate dashboards.</p>



<p>When a user requests access to a dashboard, the application sends a request to an AWS Lambda function, providing the namespace, user ID, and dashboard ID as inputs. The Lambda function verifies the user&#8217;s existence within the specified namespace and, upon successful verification, generates an embedded URL tailored to the namespace-specific configuration. This URL is then returned to the application, allowing the user to securely access the dashboard.&nbsp;</p>



<figure class="wp-block-image size-large lightbox-trigger"><img loading="lazy" decoding="async" width="1024" height="410" src="https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-1024x410.jpg" alt="" class="wp-image-7549" srcset="https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-1024x410.jpg 1024w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-300x120.jpg 300w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-768x308.jpg 768w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-200x80.jpg 200w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-400x160.jpg 400w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-800x321.jpg 800w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-1000x401.jpg 1000w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration-1200x481.jpg 1200w, https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-Integration.jpg 1472w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The Lambda function operates under an IAM policy designed to enforce namespace-level security.&nbsp;</p>



<pre class="wp-block-code"><code>{
  "Effect": "Allow",
  "Action": "quicksight:GenerateEmbedUrlForRegisteredUser",
  "Resource": &#91;
    "arn:aws:quicksight:region:account-id:namespace/tenant_namespace_1"
  ]
}</code></pre>



<p>It ensures that only users belonging to the specified namespace are permitted to generate embedded URLs.</p>



<p>For every new tenant, a corresponding custom namespace is created, and a new IAM policy is associated with the Lambda function, granting access to users from the new namespace. This setup eliminates the need to replicate the Lambda function for each tenant while maintaining a scalable and secure embedding solution for multitenant applications.</p>



<p></p>



<h3 class="wp-block-heading">SPICE Management&nbsp;</h3>



<p>In a multi-tenant environment with AWS QuickSight, SPICE memory management primarily operates within the context of each individual tenant&#8217;s namespace. Each tenant&#8217;s namespace essentially has its own dedicated pool of SPICE capacity. This means that the memory consumed by one tenant&#8217;s datasets does not directly impact other tenants. Additionally, the amount of SPICE capacity available to each tenant can be managed and controlled by the administrator.</p>



<p>Administrators can monitor SPICE capacity usage for each tenant within their account. This helps identify potential issues and proactively manage resource allocation. If a tenant requires more SPICE capacity, administrators can increase the allocated capacity. Conversely, unused capacity can be released to optimize costs.</p>



<figure class="wp-block-image size-large lightbox-trigger"><img loading="lazy" decoding="async" width="1024" height="369" src="https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-1024x369.jpg" alt="" class="wp-image-7550" srcset="https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-1024x369.jpg 1024w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-300x108.jpg 300w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-768x277.jpg 768w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-1536x554.jpg 1536w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-200x72.jpg 200w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-400x144.jpg 400w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-800x288.jpg 800w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-1000x360.jpg 1000w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-1200x433.jpg 1200w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management-1920x692.jpg 1920w, https://numinolabs.com/wp-content/uploads/2025/01/SPICE-Memory-Management.jpg 2042w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<p>While each tenant&#8217;s data is logically isolated within its namespace, the underlying hardware infrastructure for SPICE is shared across all tenants within the same AWS region.</p>



<h3 class="wp-block-heading">Advanced Multitenancy setup&nbsp;</h3>



<p>In a more advanced multitenancy setup, the primary admin of a QuickSight account can provision tenant-specific admins within custom namespaces. These tenant admins, in turn, are empowered to manage users (authors and readers) within their respective namespaces and create custom dashboards tailored to their tenant’s needs. This decentralized administration model fosters scalability, autonomy, and flexibility, especially in SaaS environments or enterprises managing multiple tenants. Here the Role Hierarchy and Responsibilities are as follows &#8211;</p>



<p><strong>Primary Admin</strong>: The primary admin operates within the default namespace and holds overarching responsibilities for managing all namespaces. This includes provisioning tenant namespaces, assigning tenant admins, and setting up initial shared resources such as data source templates and dashboard layouts</p>



<p><strong>Tenant Admins</strong>: Each tenant namespace is managed by a tenant-specific admin. These admins have the autonomy to create and manage users—both authors and readers—within their namespace. They are responsible for ensuring that tenant-specific data sources and permissions are configured correctly and that the dashboards created within their namespace meet the tenant’s requirements.</p>



<p><strong>Authors</strong>: Within their namespace, the authors collaborate with tenant admins to build and refine dashboards that provide actionable insights tailored to the tenant’s business context.</p>



<p>For example, when a new tenant is onboarded, the primary admin creates the namespace and assigns an admin to it. The tenant admin then provisions users, organizes them into groups for streamlined access management, and ensures that the necessary data sources and templates are available. Authors within the namespace can then create custom dashboards, while readers access these dashboards as required.</p>



<p>This model allows tenant admins to create and distribute dashboards independently of the primary admin, reducing bottlenecks and enabling faster response times to tenant-specific analytics needs</p>



<p></p>



<h3 class="wp-block-heading">Choosing the right Pricing Model</h3>



<p>AWS QuickSight offers two primary pricing models: User-Based and Capacity-Based. User based pricing model is simple where one pays a fixed fee per user per month and is suitable for organisations with a stable and predictable number of users. On the other hand, Capacity based pricing is Ideal for organizations with fluctuating user numbers or varying usage patterns.</p>



<p>Pricing models are applied at the namespace level. This gives you the flexibility to tailor your pricing strategy to the specific needs and usage patterns of each tenant or department within your organization.</p>



<p>For eg. You can have one namespace operate on a <strong>User-Based</strong> model, where you pay a fixed fee per user. This is suitable for departments with a stable user base and consistent usage.</p>



<p>Simultaneously, another namespace can utilize the <strong>Capacity-Based</strong> model, paying only for the resources consumed (e.g., reader sessions). This is ideal for departments with fluctuating user numbers or high usage variability.</p>



<h4 class="wp-block-heading">Understanding QuickSight Costs by Namespace</h4>



<p>AWS QuickSight allows you to track and allocate costs at the namespace level. This provides valuable insights into the cost consumption of each tenant or department within your organization.</p>



<p>Here we use AWS Cost Explorer for understanding costs by namespace. By applying cost allocation tags such as &#8220;Namespace: Sales&#8221; or &#8220;Namespace: Marketing&#8221; to your QuickSight resources, you can effectively filter and group costs within Cost Explorer. This allows you to visualize and analyze the cost consumption of each namespace, identify cost drivers, and make informed decisions about resource allocation and pricing strategies.</p>



<p>For example, you can easily track the total cost associated with the &#8220;Sales&#8221; namespace by filtering your cost data based on the &#8220;Namespace: Sales&#8221; tag. This provides a clear picture of the costs incurred for all users and resources within that specific namespace.</p>



<p></p>



<h3 class="wp-block-heading">Summary</h3>



<p>This blog aimed to provide a comprehensive understanding of the journey when onboarding Amazon QuickSight as an analytics solution, especially for multitenant environments. QuickSight offers robust capabilities to streamline tenant onboarding, manage resources, and ensure secure, scalable analytics. By replacing custom-built solutions with QuickSight’s offerings, organizations can significantly reduce operational complexity while delivering powerful, tailored BI experiences. From leveraging namespaces to implementing dynamic embedding and access control, QuickSight equips businesses with the tools needed to meet diverse tenant requirements. As you transition to QuickSight, this guide highlights the critical steps and considerations to ensure a seamless and efficient integration into your analytics ecosystem.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://numinolabs.com/design/building-dashboards-for-multi-tenanted-saas-products-using-aws-quicksight/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-multitenancy-cover-image.jpg" length="280198" type="image/jpeg"/><media:content url="https://numinolabs.com/wp-content/uploads/2025/01/Quicksight-multitenancy-cover-image.jpg" width="2048" height="700" medium="image" type="image/jpeg"/>	</item>
		<item>
		<title>Email approval in Workflow</title>
		<link>https://numinolabs.com/technology-insights/email-approval-in-workflow/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=email-approval-in-workflow</link>
					<comments>https://numinolabs.com/technology-insights/email-approval-in-workflow/#respond</comments>
		
		<dc:creator><![CDATA[Pushkar Nagarsenker]]></dc:creator>
		<pubDate>Fri, 10 Jan 2025 07:15:00 +0000</pubDate>
				<category><![CDATA[Technology Insights]]></category>
		<category><![CDATA[EmailApproval]]></category>
		<category><![CDATA[WorkflowApproval]]></category>
		<guid isPermaLink="false">https://numinolabs.com/learning/cost-effective-management-in-aws-copy/</guid>

					<description><![CDATA[Simplifying Workflow Approvals with Secure Email Integration In today’s fast-paced digital landscape, seamless workflows are essential for maintaining operational efficiency. One critical aspect of... <br><a href="https://numinolabs.com/technology-insights/email-approval-in-workflow/" class="mil-link mil-mt-30"><span>Read more</span><i class="fas fa-arrow-right"></i></a>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Simplifying Workflow Approvals with Secure Email Integration</h3>



<p>In today’s fast-paced digital landscape, seamless workflows are essential for maintaining operational efficiency. One critical aspect of many workflows is the approval process, where decisions need to be made quickly and securely. Email-based approvals have become a preferred solution due to their accessibility and ease of use.</p>



<p>But how do you ensure that this method is not only user-friendly but also secure? Enter the concept of email-based approval workflows using one-time links. This approach bridges the gap between convenience and security, empowering users to approve or reject tasks directly from their inbox without compromising sensitive data.</p>



<p>In this post, we’ll explore how email approval workflows work, the role of one-time links in ensuring security, and best practices for implementing this feature in your systems.</p>



<p></p>



<h3 class="wp-block-heading">Need for a Token in One-Time Link Generation</h3>



<p>A key element of implementing one-time approval links is the use of a unique token. This token serves as a secure identifier that ensures the authenticity of the approval action and ties it to a specific leave request. Without a token, the link would be a simple URL, which could be easily guessed or reused, undermining its security and purpose.</p>



<p>Here’s some key aspects essential for one-time link generation &#8211;</p>



<ul class="wp-block-list">
<li><strong>Uniqueness </strong>: Each token is randomly generated and unique to the leave request, ensuring that no two links are the same. This uniqueness prevents unauthorized users from tampering with the link or attempting to generate a valid approval link on their own.&nbsp;</li>



<li><strong>Security</strong> : The token serves as a form of authentication, guaranteeing that only the correct user (the manager or approver) can interact with the link.</li>



<li><strong>Non-Reusability </strong>: A well-designed token is single-use, meaning once the link has been clicked and the approval action is completed, the token expires. This prevents any possibility of reusing the same link, providing an added layer of security. Even if someone gains access to the link after it has been used, it will no longer be valid, ensuring that approvals or rejections cannot be mistakenly repeated.</li>
</ul>



<p></p>



<h3 class="wp-block-heading">Generating a Secure Token</h3>



<p>A UUID (Universally Unique Identifier) is a simple yet powerful way to achieve this. A UUID is a 128-bit identifier designed to be globally unique. It ensures that no two tokens are ever the same, making it ideal for one-time links in approval workflows. UUIDs can be generated programmatically using most modern programming languages and libraries.</p>



<p>The UUID, along with relevant metadata, is stored in the database. The associated metadata includes:</p>



<ul class="wp-block-list">
<li>Request ID: The unique identifier for the leave request.</li>



<li>Token Creation Timestamp: The time when the token was generated.</li>



<li>Token Usage Status: Indicates whether the token is valid, has been used, or has expired.</li>
</ul>



<p>The token is designed to be time-sensitive, with a validity period (e.g., 2 days). This gives the approver enough time to review and approve the leave request while ensuring that the token expires after the defined period to prevent misuse.</p>



<p>When the approver clicks the one-time link, the system performs a series of checks&nbsp;</p>



<ol class="wp-block-list">
<li>Validate the Token’s Existence: The system first checks if the token exists in the database.</li>



<li>Check Token Association: The system ensures that the token is linked to the specific request.</li>



<li>Verify Token Validity Period: The token’s creation timestamp is compared to the current time to confirm that it is still within the validity period.</li>



<li>Ensure the Token Has Not Been Used: Finally, the system checks if the token has already been used. If it has, the link is considered expired and no further action is allowed.</li>
</ol>



<p>Only when all of these checks are successfully passed, the approval action is executed.</p>



<p></p>



<h3 class="wp-block-heading">Adding Login-Based Verification for Secure Email Approvals</h3>



<p>Token-based links alone may be insufficient in systems where strict access control is necessary. If the email link is accessed by an unauthorized user, login-based verification ensures that approvals are granted only after confirming the identity of the approver.</p>



<h3 class="wp-block-heading">How It Works</h3>



<ol class="wp-block-list">
<li><strong>Token Verification</strong>: The user clicks the one-time link, which routes them to the system (e.g., https://example.com/approve?token=&lt;UUID&gt;).</li>



<li><strong>Authentication Prompt</strong>: Before processing the approval, the user is redirected to the system’s login page.</li>



<li><strong>Login Validation</strong>: The system authenticates the user’s credentials (username, password, and potentially additional security checks like 2FA).</li>



<li><strong>Approval Grant</strong>: Upon successful login, the system validates the token, associates it with the logged-in user, and processes the approval request.</li>
</ol>



<p>The system leverages the existing login mechanism that users already know and trust, eliminating the need for new MFA tools. Additionally, it maintains detailed records of who approved the request and when, even through this token-based approach, ensuring accountability and traceability for every action.</p>



<p>This balance of security, usability, and traceability makes login-based verification an ideal choice for workflows where approval integrity is critical.</p>



<p></p>



<h3 class="wp-block-heading">Notifications for Approval Actions</h3>



<p>In any approval workflow, notifications serve as a direct acknowledgment of the user’s action while also acting as a safeguard in case of unauthorized activity. They &#8211;</p>



<ul class="wp-block-list">
<li>Keeps the approver informed that their action has been successfully recorded.</li>



<li>Provides a record of actions taken, helping users and administrators track approvals.</li>



<li>Alerts users immediately if an approval they didn’t authorize occurs, allowing them to report suspicious activity.</li>
</ul>



<p>When sending notifications for approval actions, it’s essential to include key details that provide clarity and context. Each notification should specify the request ID, a brief description of the action, the date and time of the approval, and the identity of the approver. Additionally, include a link to review the request or take further action if needed.&nbsp;</p>



<p>For enhanced security, the notification should also prompt users to report unauthorized activity, such as: “If this approval was not made by you, please contact support immediately.” These elements ensure the notification is informative, actionable, and serves as both a confirmation and a security safeguard.</p>



<p></p>



<h3 class="wp-block-heading">Conclusion: Technical Design Decisions and Impact</h3>



<p>The implementation of one-time approval links using UUID tokens in the approval system reflects a well-considered balance of simplicity, security, and efficiency, while also addressing potential challenges.&nbsp;</p>



<p><strong>UUIDs for Simplicity and Security</strong>. <br>The decision to use UUIDs is driven by the need for a secure yet simple solution. This approach strikes a balance between maintaining security and keeping the system simple, without the complexity of additional systems for token generation or storage.&nbsp;</p>



<p><strong>Notification for Unauthorized Approvals</strong><br>By incorporating notifications for approval actions, workflows become more transparent, users stay informed, and the system achieves a higher standard of accountability and security.</p>



<p><strong>Auditability and Transparency</strong><br>Finally, the design emphasizes transparency and accountability. Every action taken via the one-time approval link is logged, ensuring that the system remains auditable and that stakeholders can track approval history, providing full visibility into the decision-making process.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://numinolabs.com/technology-insights/email-approval-in-workflow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://numinolabs.com/wp-content/uploads/2025/01/gmail-preview.jpg" length="84536" type="image/jpeg"/><media:content url="https://numinolabs.com/wp-content/uploads/2025/01/gmail-preview.jpg" width="1248" height="702" medium="image" type="image/jpeg"/>	</item>
		<item>
		<title>Effective Cost Management in AWS</title>
		<link>https://numinolabs.com/technology-insights/cost-effective-management-in-aws/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=cost-effective-management-in-aws</link>
					<comments>https://numinolabs.com/technology-insights/cost-effective-management-in-aws/#respond</comments>
		
		<dc:creator><![CDATA[Pushkar Nagarsenker]]></dc:creator>
		<pubDate>Thu, 09 Jan 2025 07:39:49 +0000</pubDate>
				<category><![CDATA[Technology Insights]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[CostManagement]]></category>
		<guid isPermaLink="false">https://numinolabs.com/learning/build-your-money-machine-take-control-copy/</guid>

					<description><![CDATA[Introduction In today’s cloud-first era, AWS has become the backbone of countless applications and enterprises, offering unparalleled scalability, reliability, and flexibility. Its pay-as-you-go pricing... <br><a href="https://numinolabs.com/technology-insights/cost-effective-management-in-aws/" class="mil-link mil-mt-30"><span>Read more</span><i class="fas fa-arrow-right"></i></a>]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">Introduction</h3>



<p>In today’s cloud-first era, AWS has become the backbone of countless applications and enterprises, offering unparalleled scalability, reliability, and flexibility. Its pay-as-you-go pricing model is revolutionary, allowing businesses to only pay for what they use. However, this flexibility can also lead to unexpected surprises on the billing dashboard if resources are not carefully managed.</p>



<p>As the cloud infrastructure grows and becomes more complex, here are some of the common hurdles that businesses encounter</p>



<ul class="wp-block-list">
<li><strong>Lack of Visibility and Control</strong>&nbsp; &#8211; With AWS&#8217;s vast range of services, tracking usage and spending across regions and resources can be daunting, making it challenging to identify cost drivers.</li>



<li><strong>Unpredictable and Spiky Costs</strong> &#8211; AWS services like EC2 and Lambda can face sudden usage spikes from traffic surges, misconfigurations, or accidental provisioning, leading to costly overruns if not properly monitored.</li>



<li><strong>Difficulty in Forecasting Costs</strong> &#8211; The complexity of AWS pricing models combined with the dynamic nature of cloud environments, makes it difficult for organizations to accurately forecast costs.</li>
</ul>



<p>To help organizations address these challenges, AWS offers a range of powerful tools and services that include &#8211;</p>



<ul class="wp-block-list">
<li>AWS Pricing Calculator</li>



<li>AWS Budgets</li>



<li>AWS Cost Anomaly Detection</li>



<li>AWS Cost Explorer</li>
</ul>



<p>In this blog, we’ll explore how these AWS services can help businesses optimise their cloud spend, offering practical guidance on how to use them to manage, control, and forecast costs effectively.</p>



<p></p>



<h3 class="wp-block-heading">Evaluating Service-Specific Costs</h3>



<p>One of the most effective tools for managing costs before diving into AWS implementation is the AWS Pricing Calculator. This tool allows businesses to estimate the costs of AWS services in advance, helping to align cloud expenses with budgetary constraints and project requirements. The AWS Pricing Calculator is an interactive web tool designed to provide detailed cost estimates for AWS services. It’s particularly useful for planning new implementations, comparing service costs, or assessing the financial impact of scaling existing infrastructure.</p>



<p>Key Features include&nbsp;</p>



<ol class="wp-block-list">
<li>Allows users to create cost estimates based on specific workloads, configurations, and usage patterns.</li>



<li>Provides a breakdown of costs for compute, storage, networking, and managed services, including associated charges like data transfers or snapshots.</li>



<li>Accounts for variations in pricing across AWS regions, ensuring estimates reflect local cost structures.</li>
</ol>



<p>For ex. consider a serverless application is being developed where AWS Lambda functions process user-submitted data. The Lambda function has a 500-millisecond execution time and is allocated 256 MB of memory, with 1 million invocations per month. Additionally, the application is estimated to transfer 10 GB of data out of AWS each month. The AWS Pricing Calculator is used to estimate the associated costs, factoring in free-tier usage for requests and compute time, with additional charges for data transfer beyond the free 1 GB allowance. In this example it would cost approximately $1.01 per month.&nbsp;<br><br>Knowing this cost upfront has 2 key benefits&nbsp;</p>



<p><strong>Cost Awareness and Preparedness</strong><br>It allows you to plan development scenarios while considering the impact of each factor on the overall cost. This preparation ensures you’re aware of potential costs, enabling better budgeting and adjustments if any parameters change during the execution phase.</p>



<p><strong>Improved Service Understanding and Risk Mitigation</strong><br>While some cost factors for this cost calculation might be unknown at the start, understanding that these factors contribute to the total cost helps you gain a deeper insight into the service. This awareness allows you to be better prepared for potential cost fluctuations or the worst-case scenario as your usage scales or requirements evolve.</p>



<p>To know more about how to create an estimate see this. AWS enables users to create cost estimates across services, which can be saved and shared for collaborative planning.</p>



<p></p>



<h3 class="wp-block-heading">AWS Budgets for cost tracking</h3>



<p>AWS Budgets helps you proactively manage costs by providing early warnings if your spending exceeds your expectations, allowing you to address issues before they become larger problems. You can create budgets based on cost, usage, or specific service usage. Whether you’re tracking monthly costs or monitoring the usage of a particular service, AWS Budgets allows you to set thresholds and receive notifications when your actual costs or usage exceed your predefined limits. This feature ensures that you are immediately aware of potential overages and can take corrective action.</p>



<p>The 2 most frequently used templates include &#8211; ‘Zero budget spend’ and ‘Monthly Cost budget’. As the name suggests ‘zero budget spend’ notifies you once your spending exceeds $0.01 which is above the AWS Free Tier limits and is relevant when you are in your free tier account usage.&nbsp;</p>



<p>The ‘Monthly Cost budget’ is more relevant for businesses beyond the free tier usage. For eg. if you estimate your monthly cost for AWS account to be around 100$, its safe to setup budget exceeding 20% of this cost which is 120$. This means you will be notified when 1) your actual spend reaches 85% 2) your actual spend reaches 100% 3) if your forecasted spend is expected to reach 100%.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="257" height="107" src="https://numinolabs.com/wp-content/uploads/2025/01/image5.png" alt="" class="wp-image-7497" srcset="https://numinolabs.com/wp-content/uploads/2025/01/image5.png 257w, https://numinolabs.com/wp-content/uploads/2025/01/image5-200x83.png 200w" sizes="(max-width: 257px) 100vw, 257px" /><figcaption class="wp-element-caption">As long as the cost is within the budget, the dashboard will show a Status of ‘Ok&#8217;.</figcaption></figure>



<figure class="wp-block-image size-full lightbox-trigger"><img loading="lazy" decoding="async" width="996" height="155" src="https://numinolabs.com/wp-content/uploads/2025/01/Monthly-cost-budget.jpg" alt="" class="wp-image-7500" srcset="https://numinolabs.com/wp-content/uploads/2025/01/Monthly-cost-budget.jpg 996w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-cost-budget-300x47.jpg 300w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-cost-budget-768x120.jpg 768w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-cost-budget-200x31.jpg 200w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-cost-budget-400x62.jpg 400w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-cost-budget-800x124.jpg 800w" sizes="(max-width: 996px) 100vw, 996px" /><figcaption class="wp-element-caption">An alert like below will be generated in case of a breach</figcaption></figure>



<figure class="wp-block-image size-large lightbox-trigger"><img loading="lazy" decoding="async" width="1024" height="405" src="https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-1024x405.jpg" alt="" class="wp-image-7502" srcset="https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-1024x405.jpg 1024w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-300x119.jpg 300w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-768x304.jpg 768w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-200x79.jpg 200w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-400x158.jpg 400w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-800x316.jpg 800w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert-1000x395.jpg 1000w, https://numinolabs.com/wp-content/uploads/2025/01/Monthly-budget-alert.jpg 1045w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">An alert like below will be generated in case of a breach</figcaption></figure>



<p></p>



<h3 class="wp-block-heading">Cost Anomaly Detection</h3>



<p>AWS Cost Anomaly Detection is an advanced tool designed to help you identify unusual spending patterns in your AWS environment. By leveraging machine learning algorithms, it provides automated insights into unexpected cost variations, enabling you to take timely action to control costs. While AWS Budgets tracks overall cost trends or specific usage against planned limits for a fixed period, AWS Cost Anomaly Detection, on the other hand, focuses on reactive monitoring by identifying unusual spending patterns, even within budgeted thresholds.</p>



<p>For ex. If your usual daily Lambda costs are $2 but suddenly spike to $8 on a single day due to unexpected increases in invocations or execution time, AWS Cost Anomaly Detection flags this as an anomaly, even if your total monthly cost is still under the budgeted cost.</p>



<p>By identifying anomalies early, you can investigate and address potential cost drivers before they escalate into significant expenses. When starting out with the Cost anomaly or a new AWS account, It&#8217;s advisable to set up monitoring at a Service level. This grants you the basic required monitoring.&nbsp;</p>



<figure class="wp-block-image size-full is-resized is-style-default lightbox-trigger"><img loading="lazy" decoding="async" width="785" height="409" src="https://numinolabs.com/wp-content/uploads/2025/01/AWS-service-monitor-type-cost-anomaly.jpg" alt="" class="wp-image-7503" style="aspect-ratio:16/9;object-fit:contain;width:810px;height:auto" srcset="https://numinolabs.com/wp-content/uploads/2025/01/AWS-service-monitor-type-cost-anomaly.jpg 785w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-service-monitor-type-cost-anomaly-300x156.jpg 300w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-service-monitor-type-cost-anomaly-768x400.jpg 768w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-service-monitor-type-cost-anomaly-200x104.jpg 200w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-service-monitor-type-cost-anomaly-400x208.jpg 400w" sizes="(max-width: 785px) 100vw, 785px" /></figure>



<p>As you get familiar with this service or depending on your account usage, you can opt for ‘Cost category’ or ‘Cost Allocation Tag’ that helps you track and identify unusual spending patterns based on specific tags applied to your resources. This enables granular cost monitoring and provides insights into anomalies within tagged projects, environments, or business units.</p>



<p>You can attach ‘Alert Subscription’ to these monitoring alerts that notifies you when a cost monitor detects an anomaly. Depending on the alert frequency, you can notify designated individuals by email.</p>



<figure class="wp-block-image size-full is-resized lightbox-trigger"><img loading="lazy" decoding="async" width="798" height="603" src="https://numinolabs.com/wp-content/uploads/2025/01/Cost-anomaly-Email-alert.jpg" alt="" class="wp-image-7504" style="width:839px;height:auto" srcset="https://numinolabs.com/wp-content/uploads/2025/01/Cost-anomaly-Email-alert.jpg 798w, https://numinolabs.com/wp-content/uploads/2025/01/Cost-anomaly-Email-alert-300x227.jpg 300w, https://numinolabs.com/wp-content/uploads/2025/01/Cost-anomaly-Email-alert-768x580.jpg 768w, https://numinolabs.com/wp-content/uploads/2025/01/Cost-anomaly-Email-alert-200x151.jpg 200w, https://numinolabs.com/wp-content/uploads/2025/01/Cost-anomaly-Email-alert-400x302.jpg 400w" sizes="(max-width: 798px) 100vw, 798px" /><figcaption class="wp-element-caption">You can read more about the cost anomaly here.</figcaption></figure>



<h3 class="wp-block-heading">Visualizing and Analyzing Your Cloud Spend</h3>



<p>AWS Cost Explorer is a visualization tool that provides insights into your AWS spending and usage patterns over time. It enables you to analyze historical data, identify trends, and predict future costs, offering an intuitive way to manage and optimize your cloud expenses. A typical cost explorer dashboard would look like this</p>



<figure class="wp-block-image size-large lightbox-trigger"><img loading="lazy" decoding="async" width="1024" height="456" src="https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-1024x456.png" alt="" class="wp-image-7505" style="aspect-ratio:16/9;object-fit:contain" srcset="https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-1024x456.png 1024w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-300x134.png 300w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-768x342.png 768w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-200x89.png 200w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-400x178.png 400w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-800x356.png 800w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-1000x445.png 1000w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-1200x534.png 1200w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer.png 1334w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>Some of the Key Benefits include</p>



<ol class="wp-block-list">
<li>Cost Explorer provides a breakdown of your AWS usage and costs across services, accounts, and tags, helping you pinpoint cost drivers.</li>



<li>With cost predictions based on historical data, it helps in estimating future expenditures and planning budgets effectively.</li>
</ol>



<p>When viewing the current month cost, its most effective to use the Date range of ‘Month-to-date’ , granularity of ‘Daily’ and a groping dimension of ‘Service’. This will allow you to view per service charges on a daily basis as shown below</p>



<figure class="wp-block-image size-full lightbox-trigger"><img loading="lazy" decoding="async" width="913" height="526" src="https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-daily-basis.jpg" alt="" class="wp-image-7506" srcset="https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-daily-basis.jpg 913w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-daily-basis-300x173.jpg 300w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-daily-basis-768x442.jpg 768w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-daily-basis-200x115.jpg 200w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-daily-basis-400x230.jpg 400w, https://numinolabs.com/wp-content/uploads/2025/01/AWS-cost-explorer-daily-basis-800x461.jpg 800w" sizes="(max-width: 913px) 100vw, 913px" /></figure>



<p>By enabling focused analysis, filters in AWS Cost Explorer make it easier to identify the root cause of cost spikes. It allows you to customize your cost and usage reports by focusing on specific attributes such as services, accounts, regions, or tags. This precision helps in identifying and analyzing cost spikes effectively.</p>



<p>For ex. By filtering costs by AWS regions, you can detect if a spike is related to region-specific activity, such as higher usage in a particular geographic area.</p>



<p></p>



<h3 class="wp-block-heading">Addressing Unexpected Costs</h3>



<p>The above described methods help one proactively highlight the cost spikes. However, it doesn&#8217;t help to avoid them. So what do you do if you encounter unexpected charges?</p>



<p><strong>Try to find the root cause of the issue</strong><br>The Cost explorer helps in understanding the service associated with the cost spike. You can make use of the filters to appropriately drill down to the Region to try to understand the resource that is possibly causing the spike.</p>



<p><strong>Reach out to AWS Support promptly</strong><br>The AWS support team can help investigate and resolve the issue, providing clarity on the root cause. In cases of genuine mistakes or misconfigurations, AWS Support may also offer billing adjustments, ensuring that your costs align with actual usage. Don&#8217;t hesitate to leverage this valuable resource for maintaining cost efficiency and transparency.</p>



<p></p>



<h3 class="wp-block-heading">To Summarise</h3>



<p>Effective cost management in AWS is not just about reacting to spikes but proactively planning and monitoring your spending. Tools like AWS Cost Anomaly Detection, AWS Cost Explorer, and AWS Cost Calculator empower businesses to visualize, predict, and control their cloud costs while optimizing resource usage. Taking preventive steps, such as setting up cost alerts and anomaly detection models, helps highlight potential issues early.&nbsp;</p>



<p>However, In case of unexpected cost spikes, leveraging AWS customer support can provide quick resolutions. AWS&#8217;s support team is highly responsive and prioritizes customer satisfaction, especially for long-term users, ensuring that issues are addressed efficiently.</p>



<p>By combining these tools and strategies, you can maintain better financial oversight, avoid surprises, and ensure your cloud infrastructure remains both scalable and cost-effective.</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://numinolabs.com/technology-insights/cost-effective-management-in-aws/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://numinolabs.com/wp-content/uploads/2025/01/Summary-image-1-scaled.jpg" length="120072" type="image/jpeg"/><media:content url="https://numinolabs.com/wp-content/uploads/2025/01/Summary-image-1-scaled.jpg" width="2560" height="1529" medium="image" type="image/jpeg"/>	</item>
	</channel>
</rss>
