<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Azure on Puppeteers Oy</title>
		<link>https://www.puppeteers.net/tags/azure/</link>
		<description>Recent content in Azure on Puppeteers Oy</description>
		<generator>Hugo</generator>
		<language>en-US</language>
		
		
		
		
			<lastBuildDate>Thu, 31 Oct 2024 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.puppeteers.net/tags/azure/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Monitoring Azure with Prometheus</title>
				<link>https://www.puppeteers.net/blog/monitoring-azure-with-prometheus/</link>
				<pubDate>Thu, 31 Oct 2024 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/monitoring-azure-with-prometheus/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://puppeteers-public.hel1.your-objectstorage.com/pexels-kelly-2543201-trimmed-1.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://prometheus.io/&#34;&gt;Prometheus&lt;/a&gt; is a great tool for &amp;ldquo;cloud-native&amp;rdquo; metrics gathering and monitoring. It is particularly easy to manage with &lt;a href=&#34;https://www.puppeteers.net/learn/understanding-infrastructure-as-code-iac/&#34;&gt;infrastructure as code&lt;/a&gt; methods. Prometheus can collect metrics from various sources, including &lt;a href=&#34;https://azure.microsoft.com/en-us/products/monitor/&#34;&gt;Azure Monitor&lt;/a&gt;. You can use &lt;a href=&#34;https://github.com/webdevops/azure-metrics-exporter&#34;&gt;Azure Metrics Exporter&lt;/a&gt; to convert Azure Monitor metrics into Prometheus metrics, but doing so is definitely not trivial unless you&amp;rsquo;re pretty familiar with Prometheus, Azure Monitor and Microsoft Entra ID apps. This article tries to help you make monitoring Azure with Prometheus a breeze instead of a struggle. We won&amp;rsquo;t go into a lot of detail about Prometheus or Azure Monitor as there&amp;rsquo;s plenty of information available elsewhere about both of them. Also note that this article is about vanilla Prometheus, &lt;em&gt;not&lt;/em&gt; Microsoft&amp;rsquo;s &amp;ldquo;Azure Monitor managed service for Prometheus&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Microsoft Entra ID multi-factor authentication in RDP</title>
				<link>https://www.puppeteers.net/blog/microsoft-entra-id-multi-factor-authentication-in-rdp/</link>
				<pubDate>Fri, 28 Jun 2024 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/microsoft-entra-id-multi-factor-authentication-in-rdp/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://puppeteers-public.hel1.your-objectstorage.com/pexels-olly-3760043.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;Microsoft Entra ID, formerly known as Azure Activate Directory (AAD), is replacing classic on-premise Active Directory installations slowly but surely. It replaces &amp;ldquo;legacy&amp;rdquo; protocols such as LDAP and Kerberos with &amp;ldquo;modern&amp;rdquo; protocols such as SAML, OIDC and OAuth2. However, the client-side support in various operating systems such as Windows, Linux and MacOS is spotty, to say the least. You can make things work, but only if the stars (or rather, bits) are aligned &lt;em&gt;just right&lt;/em&gt;. This article explains how multi-factor authentication in RDP works with Azure VMs when using Microsoft Entra ID. Note the emphasis on &lt;strong&gt;MFA&lt;/strong&gt;: without MFA you can make logins with Entra ID work more easily by using the normal username + password authentication in RDP.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linux Azure AD authentication options</title>
				<link>https://www.puppeteers.net/blog/linux-azure-ad-authentication-options/</link>
				<pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/linux-azure-ad-authentication-options/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://puppeteers-public.hel1.your-objectstorage.com/bash-gb216ea79b_640.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There are a myriad of ways to login to Linux systems using Azure AD credentials. &lt;a href=&#34;https://pixabay.com/vectors/bash-command-line-linux-shell-148836/&#34;&gt;Photo credit&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;&#xA;&lt;p&gt;There are several ways to do Linux Azure AD authentication. Note that Azure AD was renamed &amp;ldquo;Microsoft Entra ID&amp;rdquo; recently, but in this article we&amp;rsquo;ll use its old name, at least for now. In other words you can log in to your Linux hosts &lt;a href=&#34;https://azure.microsoft.com/en-ca/products/active-directory/&#34;&gt;Azure Active Directory&lt;/a&gt; (&amp;ldquo;Azure AD&amp;rdquo;) credentials in various ways. &lt;a href=&#34;https://azure.microsoft.com&#34;&gt;Azure&lt;/a&gt;, Microsoft&amp;rsquo;s public Cloud, builds on top of Azure AD. In fact, your Azure users, groups, roles and role assignments are stored in Azure AD.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure Private DNS and VPN Gateway</title>
				<link>https://www.puppeteers.net/blog/azure-private-dns-and-vpn-gateway/</link>
				<pubDate>Tue, 13 Dec 2022 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/azure-private-dns-and-vpn-gateway/</guid>
				<description>&lt;p&gt;&lt;img src=&#34;https://puppeteers-public.hel1.your-objectstorage.com/pexels-mo-eid-8347501.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-azure-private-dns&#34;&gt;What is Azure Private DNS?&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/azure/dns/private-dns-overview&#34;&gt;Azure Private DNS&lt;/a&gt; is a DNS service for Azure virtual networks. You can register a &lt;a href=&#34;https://learn.microsoft.com/en-us/azure/dns/private-dns-privatednszone&#34;&gt;private DNS zone&lt;/a&gt; to Azure Private DNS and then link that zone with one or more virtual networks. If you enable DNS auto-registration for a virtual network, a new resource (e.g. virtual machines and VPN Gateways) will automatically add its IP address to Azure Private DNS. Resources in the linked virtual networks can use entries in Azure Private DNS to locate each other, instead of relying on IP addresses or the default Azure DNS domain. You can make Azure Private DNS and Azure VPN Gateway work together in several ways, some of which this article will describe.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Azure function monitoring with Azure Monitor and Application Insights</title>
				<link>https://www.puppeteers.net/blog/azure-function-monitoring-wiht-azure-monitor-and-application-insights/</link>
				<pubDate>Mon, 26 Sep 2022 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/azure-function-monitoring-wiht-azure-monitor-and-application-insights/</guid>
				<description>&lt;p&gt;Microsoft Azure provides a metrics and monitoring framework called &lt;a href=&#34;https://learn.microsoft.com/en-us/azure/azure-monitor/&#34;&gt;Azure Monitor&lt;/a&gt;. With it you can monitor your Cloud infrastructure and services running there. You can view graphs of the metrics, alert on threshold and all that usual stuff, just like in &lt;a href=&#34;https://aws.amazon.com/cloudwatch&#34;&gt;AWS Cloudwatch&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Some Cloud resources like &lt;a href=&#34;https://learn.microsoft.com/en-us/azure/azure-functions/functions-overview&#34;&gt;Azure Functions&lt;/a&gt; expose &amp;ldquo;a limited number of useful metrics&amp;rdquo; in Azure Monitor. This is a polite way of saying that the metrics are &amp;ldquo;completely useless&amp;rdquo; for most intents and purposes. For example, an Azure Function that gets triggered a few times a week on an irregular schedule by real people you don&amp;rsquo;t really have any useful metrics in Azure Monitor which you could alert on if something is off.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Enabling Azure Backup on Linux VMs with Terraform</title>
				<link>https://www.puppeteers.net/blog/enabling-azure-backup-on-linux-vms-with-terraform/</link>
				<pubDate>Mon, 05 Sep 2022 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/enabling-azure-backup-on-linux-vms-with-terraform/</guid>
				<description>&lt;p&gt;This article shows you how to enable Azure Backup on Linux VMs. It is recommended to read the &lt;a href=&#34;https://www.puppeteers.net/blog/understanding-azure-backup-for-linux-vms/&#34;&gt;Understanding Azure Backup for Linux VMs&lt;/a&gt; article first before trying to enable backups with Terraform. Terraform AzureRM provider has three relevant resources:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/linux_virtual_machine&#34;&gt;azurerm_linux_virtual_machine&lt;/a&gt;: parameters &lt;em&gt;provision_vm_agent&lt;/em&gt; and &lt;em&gt;allow_extension_operations&lt;/em&gt; should be &lt;em&gt;true&lt;/em&gt; or enabling backups will fail (with or without Terraform)&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/virtual_machine_extension&#34;&gt;azurerm_virtual_machine_extension&lt;/a&gt;: this can be used to run/enable a VM extension on a VM&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/backup_protected_vm&#34;&gt;azurerm_backup_protected_vm&lt;/a&gt;: this resource enables backups on a VM&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/recovery_services_vault&#34;&gt;azurerm_recovery_services_vault&lt;/a&gt;: the recovery services vault where backups will be stored&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/backup_policy_vm&#34;&gt;azurerm_backup_policy_vm&lt;/a&gt;: backup schedule and retainment rules&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;I&amp;rsquo;ll go through the basic process first, which may work for some people. I&amp;rsquo;ll then take a deep dive into the timeout issues you &lt;em&gt;may&lt;/em&gt; or &lt;em&gt;may not&lt;/em&gt; encounter in your environment.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Understanding Azure Backup for Linux VMs</title>
				<link>https://www.puppeteers.net/blog/understanding-azure-backup-for-linux-vms/</link>
				<pubDate>Mon, 29 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/understanding-azure-backup-for-linux-vms/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/azure/backup/backup-overview&#34;&gt;Azure Backup&lt;/a&gt; is an Azure service that allows, among other things, backing up Windows and Linux VMs in Azure. The backups are essentially virtual machine snapshots, but backing up and/or restoring individual files is also possible. This article tries to explain how Azure Backup and Linux VMs interact and what is required for them to work. If you&amp;rsquo;re interested in using Terraform to configure Azure Backup, please have a look at the &lt;a href=&#34;https://www.puppeteers.net/blog/enabling-azure-backup-on-linux-vms-with-terraform/&#34;&gt;Enabling Azure Backup on Linux VMs with Terraform&lt;/a&gt; article.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Terraform, Azure and MissingSubscriptionRegistration</title>
				<link>https://www.puppeteers.net/blog/terraform-azure-and-missingsubscriptionregistration/</link>
				<pubDate>Sat, 20 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/terraform-azure-and-missingsubscriptionregistration/</guid>
				<description>&lt;p&gt;When deploying with Terraform to Azure you may sometimes encounter errors such as this:&lt;/p&gt;&#xA;&lt;div class=&#34;code-block&#34;&gt;&#xA;    &lt;button class=&#34;code-copy&#34; type=&#34;button&#34; hidden aria-label=&#34;Copy code to clipboard&#34;&gt;&#xA;      &lt;span class=&#34;code-copy-label&#34; aria-hidden=&#34;true&#34;&gt;Copy&lt;/span&gt;&#xA;    &lt;/button&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;╷                                                                                                                                                             &#xA;│ Error: creating Automation Account (Subscription: &amp;#34;83fa140a-2bea-175a-395c-914cae2902ce&amp;#34;                                                                    &#xA;│ Resource Group Name: &amp;#34;production&amp;#34;                                             &#xA;│ Automation Account Name: &amp;#34;backup-automation&amp;#34;): automationaccount.AutomationAccountClient#CreateOrUpdate: Failure responding to request: StatusCode=409 -- Or&#xA;iginal Error: autorest/azure: Service returned an error. Status=409 Code=&amp;#34;MissingSubscriptionRegistration&amp;#34; Message=&amp;#34;The subscription is not registered to use &#xA;namespace &amp;#39;Microsoft.Automation&amp;#39;. See https://aka.ms/rps-not-found for how to register subscriptions.&amp;#34; Details=[{&amp;#34;code&amp;#34;:&amp;#34;MissingSubscriptionRegistration&amp;#34;,&amp;#34;mes&#xA;sage&amp;#34;:&amp;#34;The subscription is not registered to use namespace &amp;#39;Microsoft.Automation&amp;#39;. See https://aka.ms/rps-not-found for how to register subscriptions.&amp;#34;,&amp;#34;targe&#xA;t&amp;#34;:&amp;#34;Microsoft.Automation&amp;#34;}]&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&lt;p&gt;The problem is that in Azure you may need to register the &lt;em&gt;provider&lt;/em&gt; for the service you intend to manage with Terraform. If you add resources from Azure Portal this registration part is handled automation. In the above case the Azure Automation provider was missing.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Modern cronjob part 1: Azure Automation with Terraform</title>
				<link>https://www.puppeteers.net/blog/modern-cronjob-part-1-azure-automation-with-terraform/</link>
				<pubDate>Thu, 11 Aug 2022 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/modern-cronjob-part-1-azure-automation-with-terraform/</guid>
				<description>&lt;p&gt;Microsoft Azure has a nice service for scheduling tasks called &lt;a href=&#34;https://duckduckgo.com/?q=azure&amp;#43;automation&amp;amp;t=newext&amp;amp;atb=v310-1&amp;amp;ia=web&#34;&gt;Azure Automation&lt;/a&gt;. While Azure Automation is able to other things as well, such as being able to act as a Powershell DSC pull server, we&amp;rsquo;ll focus on the runbooks and scheduling. Runbooks are scripts that do things, e.g. run maintenance and reporting tasks. Runbooks often, but not necessarily manipulate objects in Azure. Runbooks are serverless like Azure Functions and the pricing is therefore similar - you pay for the amount of computing resources you use and don&amp;rsquo;t have to pay for a server that&amp;rsquo;s mostly idle.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Windows domain in Azure</title>
				<link>https://www.puppeteers.net/blog/windows-domain-in-azure/</link>
				<pubDate>Tue, 11 Jan 2022 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/windows-domain-in-azure/</guid>
				<description>&lt;p&gt;I wrote this article to better understand all the pieces called &amp;ldquo;AD&amp;rdquo; or &amp;ldquo;Active Directory&amp;rdquo; in Microsoft Azure fit together. The pieces are as follows:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;Active Directory (AD)&lt;/strong&gt;: The is the classic on-premise Active Directory with LDAP, Kerberos, group policies and all that. Traditionally Windows machines in larger environments have been domain-joined to on-premise AD.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://docs.microsoft.com/en-us/windows-server/identity/active-directory-federation-services&#34;&gt;Active Directory Federation services (AD FS)&lt;/a&gt;&lt;/strong&gt;: adds support for modern web-SSO protocols (SAML, OAuth 2.0 and OIDC) to on-premise Active Directory.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Managing OpenVPN-based Azure VPN Gateway certificates with easyrsa3</title>
				<link>https://www.puppeteers.net/blog/managing-openvpn-based-azure-vpn-gateway-certificates-with-easyrsa3/</link>
				<pubDate>Fri, 19 Nov 2021 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/managing-openvpn-based-azure-vpn-gateway-certificates-with-easyrsa3/</guid>
				<description>&lt;p&gt;The Azure VPN Gateway supports the OpenVPN protocol (except the &amp;ldquo;Basic SKU&amp;rdquo;). Unlike, for example, the commercial Access Server, the VPN Gateway does not have a built-in certificate authority (CA) tool for managing client certificates. And client certificates are essentially a requirement if you need to support clients other than Windows and Mac, such as Linux, iOS or Android. The use of easy-rsa-old as a CA for Azure VPN Gateway is documented quite well in this &lt;a href=&#34;https://www.thomasmaurer.ch/2020/02/create-azure-p2s-vpn-with-azure-ad-authentication/&#34;&gt;blog post&lt;/a&gt;, but this post is about using the newer &lt;a href=&#34;https://github.com/OpenVPN/easy-rsa&#34;&gt;easyrsa3&lt;/a&gt; instead. Basic familiarity with easyrsa3 is assumed, so we just go through the steps you&amp;rsquo;d normally take.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Terraform Azure resource provider registration fails</title>
				<link>https://www.puppeteers.net/blog/terraform-azure-resource-provider-registration-fails/</link>
				<pubDate>Tue, 26 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/terraform-azure-resource-provider-registration-fails/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://www.terraform.io/&#34;&gt;Terraform&lt;/a&gt; has good support for &lt;a href=&#34;https://azure.microsoft.com/en-us/&#34;&gt;Microsoft Azure&lt;/a&gt; through the &lt;a href=&#34;https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs&#34;&gt;Terraform Azure provider&lt;/a&gt; and the &lt;a href=&#34;https://www.terraform.io/docs/language/settings/backends/azurerm.html&#34;&gt;AzureRM backend&lt;/a&gt;. However, you may hit a glitch when adding or importing resources if you lack permissions to register Azure resource providers:&lt;/p&gt;&#xA;&lt;div class=&#34;code-block&#34;&gt;&#xA;    &lt;button class=&#34;code-copy&#34; type=&#34;button&#34; hidden aria-label=&#34;Copy code to clipboard&#34;&gt;&#xA;      &lt;span class=&#34;code-copy-label&#34; aria-hidden=&#34;true&#34;&gt;Copy&lt;/span&gt;&#xA;    &lt;/button&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;│ Error: Error ensuring Resource Providers are registered.&#xA;|&#xA;│ Terraform automatically attempts to register the Resource Providers it supports&#xA;| to ensure it&amp;#39;s able to provision resources.&#xA;│                                                                                                                                                                                   &#xA;│ If you don&amp;#39;t have permission to register Resource Providers you may wish to use&#xA;| the &amp;#34;skip_provider_registration&amp;#34; flag in the Provider block to disable this&#xA;| functionality.&#xA;│                                                                                                                                                                                   &#xA;│ Please note that if you opt out of Resource Provider Registration and Terraform&#xA;| tries to provision a resource from a Resource Provider which is unregistered,&#xA;| then the error may appear misleading - for example&#xA;|                                                                                                                                                                                   &#xA;│ &amp;gt; API version 2019-XX-XX was not found for Microsoft.Foo&#xA;|                                                                                                                                                                                   &#xA;│ Could indicate either that the Resource Provider &amp;#34;Microsoft.Foo&amp;#34; requires&#xA;| registration, but this could also indicate that this Azure Region doesn&amp;#39;t support | this API version.&#xA;|&#xA;│ More information on the &amp;#34;skip_provider_registration&amp;#34; flag can be found here:&#xA;|&#xA;│ https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs#skip_provider_registration&#xA;│&#xA;│ Original Error: Cannnot register providers: Microsoft.DataLakeAnalytics, Microsoft.DBforPostgreSQL, Microsoft.AVS, Microsoft.Media, Microsoft.ApiManagement, Microsoft.Search, Mic&#xA;rosoft.Maintenance, Microsoft.ServiceBus, Microsoft.HealthcareApis, Microsoft.Relay, Microsoft.DesktopVirtualization, Microsoft.NotificationHubs, Microsoft.SecurityInsights, Micros&#xA;oft.DBforMariaDB, Microsoft.Kusto, Microsoft.DataLakeStore, Microsoft.Automation, Microsoft.CognitiveServices, Microsoft.ManagedServices, Microsoft.EventGrid, Microsoft.BotService,&#xA;&#xA;--- snip ---&lt;/code&gt;&lt;/pre&gt;&#xA;  &lt;/div&gt;&lt;p&gt;At first glance this error look cryptic, but it is quite clear once you understand &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-providers-and-types&#34;&gt;what Azure resource providers are&lt;/a&gt; - I like to think of them as &lt;em&gt;&amp;ldquo;enabled Azure services&amp;rdquo;&lt;/em&gt; or &lt;em&gt;&amp;ldquo;enabled Azure features&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>OpenVPN server options in Azure</title>
				<link>https://www.puppeteers.net/blog/openvpn-server-options-in-azure/</link>
				<pubDate>Thu, 21 Oct 2021 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/openvpn-server-options-in-azure/</guid>
				<description>&lt;p&gt;OpenVPN is among the best VPN solutions, especially when you need a cross-platform (Windows, Mac, Linux, Android, iOS) solution that just works. It is best suited for point to site (P2S) or &amp;ldquo;road warrior&amp;rdquo; setups where users access internal resources using a VPN client when on the road.&lt;/p&gt;&#xA;&lt;p&gt;When setting up OpenVPN server in Azure you have several options at your disposal:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Set up your own open source &lt;a href=&#34;https://github.com/OpenVPN/openvpn&#34;&gt;OpenVPN 2&lt;/a&gt; server&lt;/p&gt;</description>
			</item>
			<item>
				<title>Delegating external parties access to Azure</title>
				<link>https://www.puppeteers.net/blog/delegating-external-parties-access-to-azure/</link>
				<pubDate>Fri, 14 May 2021 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/delegating-external-parties-access-to-azure/</guid>
				<description>&lt;p&gt;In &lt;a href=&#34;https://azure.microsoft.com/&#34;&gt;Microsoft Azure&lt;/a&gt; you can grant an external user (&amp;ldquo;contractor&amp;rdquo;) guest access to your Azure subscription. The approach is quite different from what &lt;a href=&#34;https://aws.amazon.com&#34;&gt;AWS&lt;/a&gt; uses (see &lt;a href=&#34;https://www.puppeteers.net/blog/delegating-external-parties-access-to-aws/&#34;&gt;Delegating external parties access to AWS&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Here we grant access to &lt;em&gt;john.doe@contoso.com&lt;/em&gt; using the Azure Portal. Preferably &lt;em&gt;john.doe@contoso.com&lt;/em&gt; would already exist as a Microsoft account.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Login to your Azure Portal&lt;/li&gt;&#xA;&lt;li&gt;Type &amp;ldquo;Users&amp;rdquo; in the search box&lt;/li&gt;&#xA;&lt;li&gt;Click on the &amp;ldquo;Users&amp;rdquo; service&lt;/li&gt;&#xA;&lt;li&gt;Click on &amp;ldquo;New guest user&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Select &amp;ldquo;Invite User&amp;rdquo;&lt;/li&gt;&#xA;&lt;li&gt;Fill in the fields. The email address should be the one given by the external user.&lt;/li&gt;&#xA;&lt;li&gt;Click on &amp;ldquo;Invite&amp;rdquo; at the bottom&lt;/li&gt;&#xA;&lt;li&gt;The external user will receive an invite to your Azure in the email address you defined above.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Now the user has been created. However, it is lacking permissions to do anything useful. We will fix that in the next steps by assigning it a role:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Cutting down Azure storage costs for a Marketplace seller</title>
				<link>https://www.puppeteers.net/blog/cutting-down-azure-storage-costs-for-a-marketplace-seller/</link>
				<pubDate>Mon, 19 Apr 2021 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/cutting-down-azure-storage-costs-for-a-marketplace-seller/</guid>
				<description>&lt;p&gt;A few days ago I looked at our Azure costs and they were around $8. That&amp;rsquo;s a ridiculously small amount, except for the fact that we don&amp;rsquo;t really &lt;em&gt;use&lt;/em&gt; Azure for anything. So I started investigating.&lt;/p&gt;&#xA;&lt;p&gt;After having published the Configuration Manager (Puppet master installer image) and LibreNMS in Azure Marketplace I knew that we had a bunch of BLOBs lying around. I knew how to find these blobs using the Storage Explorer. So I tested wiping them all out, as I knew Azure does not delete them immediately, but only after one day. Then I attempted to launch Configuration Manager and LibreNMS from the Azure Marketplace GUI. My thought was that those blobs had already been copied elsewhere (for global distribution) and would not be used by the Marketplace anymore, but it &lt;em&gt;looked like&lt;/em&gt; I was wrong. At least I got odd behavior when trying to launch those images and reverting the blob deletion fixed things.&lt;/p&gt;</description>
			</item>
			<item>
				<title>AWS to Azure resource translation table</title>
				<link>https://www.puppeteers.net/blog/aws-to-azure-resource-translation-table/</link>
				<pubDate>Sun, 17 Jan 2021 00:00:00 +0000</pubDate>
				<guid>https://www.puppeteers.net/blog/aws-to-azure-resource-translation-table/</guid>
				<description>&lt;p&gt;We use Terraform for managing our Cloud infrastructure. Our customers typically use AWS and that&amp;rsquo;s what we&amp;rsquo;re most familiar with. Each public Cloud has its own terminology, so this page is a translation table between Terraform resource names in the AWS and Azure providers:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;&lt;strong&gt;AWS&lt;/strong&gt;&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;&lt;strong&gt;Azure&lt;/strong&gt;&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;aws_instance&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_linux_virtual_machine&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;aws_network_interface&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_network_interface&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;aws_security_group&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_network_security_group&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;aws_security_group_rule&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_network_security_rule&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;aws_vpc&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_virtual_network&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;aws_subnet&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_subnet&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;inapplicable&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_resource_group&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;aws_s3_bucket&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;azurerm_storage_account&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;region&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;location&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Mapping of Terraform AWS resource names to Azure resource names&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
