Adopting a DevOps process in Azure API Management using Azure APIM DevOps Resource Kit

Adopting a DevOps process in Azure API Management using Azure APIM DevOps Resource Kit

This article is contributed. See the original author and article here.

This post was inspired by Azure/Azure-Api-Management-DevOps-Resource-Kit and targets the How-To process vs the semantics of the problem and the proposed solution, which are very well defined in the Resource Kit GitHub page as well as providing release builds and source code for the tools used throughout this guide.

 

In this scenario our Azure API Management service (APIM for short) has been deployed and in production for some time already, the API publishers and API developers all use the Azure Portal to operate the service and launch new APIs. Publishers and Developers have agreed that it is time to adopt a DevOps process to streamline the development, management, and environment promotion of their APIs.

 

This is a transformation journey, thus it is important to keep in mind that the current Prod APIM will still be Prod. Our journey will:

  1. Provision Dev environment
  2. Adopting a DevOps process
    • For API publishers
    • For API developers
  3. Going Prod with DevOps

 

Provision Dev environment

 

The Dev environment is created by taking a snapshot of Prod to achieve symmetric between the two environments. During this step the two instances are not synchronized, therefore, you can either abstain from making changes to Prod, or repeat the initial manual deployment of Dev.

 

We will:

  • Use the extractor tool to capture the current Prod deployment,
  • Check the Prod ARM templates into a new repository, and create a dev branch,
  • Deploy dev branch to our Dev environment

 

To help us visualize the process let’s take a look at the following diagram:

devops-apim-1.png

 

Using the extractor tool to capture Prod

 

Because we are in a transformation journey, we want the capture to entirely reflect Prod, thus the config used for the Extractor is set to use the production APIM as the source and the destination, this way the ARM templates generated are always production ready. Remember, we are creating development off production, we will override parameters at deployment time to target the Dev instance.

 

The config file defines how the Extractor will generate the templates, the following apimExtract.json will use the same instance as the source and target, split each API into its own entity, and parameterize most of the assets needed.

 

{
    "sourceApimName": "apim-contoso",
    "destinationApimName": "apim-contoso",
    "resourceGroup": "Prod-Serverless-App1",
    "fileFolder": "./contoso",
    "linkedTemplatesBaseUrl": "https://raw.githubusercontent.com/romerve/RvLabs/master/servless-devops/apim/contoso",
    "policyXMLBaseUrl": "https://raw.githubusercontent.com/romerve/RvLabs/master/servless-devops/apim/contoso/policies",
    "splitAPIs": "true",
    "paramServiceUrl": "true",
    "paramNamedValue": "true",
    "paramApiLoggerId": "true",
    "paramLogResourceId": "true"
}

 

 

Extract the current deployment of your environment:

 

apimtemplate extract --extractorConfig apimExtract.json 

 

 

The initial extraction saves the ARM templates to contoso folder. This folder will only store files that have extracted and that are considered service level.

 

Once the extractor finishes generating the ARM templates, they need to be added to a repository. This will give us a master branch with production ready templates, which will later be automatically deployed via Pull Request ( PR ).

 

Checking ARM templates into the repository

Head over to Github and create a new repository. Prepare your folder hierarchy before adding, committing, and pushing the ARM templates.

 

At the root, we have two folders:

  • contoso: which is the folder created by the extractor tool and contains the templates
  • apis: this folder is not used now, but will be used later for all API development, and used by API developers

With the initial commit done, we are ready to create a the dev branch:

github-newbranch.png

Checkpoint: by now you should have:

  • ARM templates of Prod APIM instance
  • A repository with Prod templates checked into master
  • A new dev branch

 

Deploy dev branch to Dev APIM

I’ll be using GitHub Actions to automate deployments to Dev APIM and subsequently to Prod APIM.

 

The workflow Dev-Apim-Service.yaml has the following responsibilities:

 

  • Set environmental variables at the job scope so they can be used across the entire workflow. Besides specifying the dev resources to target, we use a built in variable GITHUB_REF to build URLs used for dev deployments. Additionally, because service level changes and APIs can be develop at different rates, we use On.Push.Paths to specifically where service level templates are placed.
  • Uses the Checkout Action and the Azure Login Action. The Azure Login action makes use of a service principal to login and run commands against your Azure subscription. To create and use a service principal, create a GitHub secret with the output of:

 

az ad sp create-for-rbac
    --name "myApp" --role contributor 
    --scopes /subscriptions/{subscription-id}/resourceGroup/{resource-group} 
    --sdk-auth
                            
  # Replace {subscription-id}, {resource-group} with the subscription, resource group details of your APIM environments​

 

  • The las two actions: Deploy APIM Service and APIs, and Deploy APIs will use the Azure CLI to deploy the service template, and then each of the extracted APIs. Important to note that here even when we use the parameters file, we still override the service name and URLs so that the proper environment is used. The Deploy APIs step queries APIM using az rest to get a list of APIs to iterate over the APIs and deploy them.

 

At this point you should have a full CI/CD workflow that automatically deploys your Dev branch into your Dev APIM instance. Before continuing, this would be a good place to validate the Dev instance and ensure all is working as expected.

 

 

Adopting a DevOps process to manage, operate, and develop APIs in Azure API Management

 

Once the initial Dev APIM has been created it is important that the two personas: API publishers, and API developers incorporate new steps in their process. Typically, API publishers will use the Azure Portal to make changes, and API developers would be working with OpenAPI, but this could also cause configuration drift, and having the two instances running different APIs.

 

Therefore, API publishers and developer need to incorporate the Azure APIM Resource Kit in their process workflow. need use the Extractor tool as the last step in their process.

 

For API publishers

 

The following diagram illustrates how an API publisher would work with the Dev APIM.

devops-apim-2.png

API publishers would:

  1. Clone the Dev branch to their local environment
  2. Make the desired changes to Dev APIM using the Azure Portal
  3. Capture the newly applied changes by running extrator tool (apimtemplate extract –extractorConfig apimExtract.json ) against the Dev APIM
  4. Add, and commit the new or updated templates into the locally cloned repo (git commit -a)
  5. Push the updated templates to automatically re-deploy the changes to Dev APIM (git push)

 

The reason the changes done via the portal are then re-applied to Dev APIM via Github Actions it’s validate that templated can be successfully deployed via code, and it allows for dev branch to be merged into master via PR.

 

Dev branch deployments is triggered by Dev-Apim-Service.yaml, which filters branch level events to only include changes done to contoso and overrides parameters to target Dev APIM.

 

For API developers

 

The diagram would show what a developer process would look like.

devops-apim-3.png

API developers would:

  1. Clone dev branch to their local environment
  2. Define or update API docs
  3. Use the creator tool to generate ARM templates (apimtemplate create –configFile ./apis/<API-FOLDER>/<API>.yml)
  4. Add, and commit new or updated templates into the locally cloned repo (git commit -a )
  5. Push the changes to trigger the Dev deployment (git push)

 

The reason the APIs are saved to apis instead of somewhere inside contoso folder it’s so that developing APIs does not trigger an APIM service deployment. And using a separate workflow Dev-Apim-Apis.yaml we can better control how the two are triggered and deployed.

 

 

Going Prod with DevOps

 

Once Dev APIM is validated and publishers and developers have incorporated the changes in their process, it is time to promote Dev to Prod. The promotion it’s done by creating a pull request from dev to master as illustrated below.

devops-apim-4.png

 

Let’s review how this works:

  1. API developer push changes to repo’s dev branch
  2. The push triggers the workflow to automatically deploy Dev APIM
  3. API developer creates a pull request
  4. The team reviews the PR and approves the PR to merge dev changes into master
  5. Merging into master triggers Github Actions to deploy to prod

 

Because the templates’ parameters files already target prod there is no need to override anything, therefore, the CD workflow simply deploys any templates it finds in contoso and apis.

 

Now that Dev and Prod are deploying successfully, we apply RBAC permissions to Prod just to make sure that no one can access the resource via the portal, cli, powershell, etc and make “unmannaged” changes. This can be done by:

  1. Launch the Azure Portal and select the Prod Resource Group
  2. Select Access Control (IAM)
  3. Remove any previously assigned roles

 

Enable user-friendly sign-in to Azure AD with email as an alternate login ID

This article is contributed. See the original author and article here.

Howdy folks,

 

Today we’re announcing the public preview of the ability to sign-in to Azure AD with email in addition to UPN (UserPrincipalName). In organizations where email and UPN are not the same, it can be confusing for users when they can’t use their familiar email address to sign-in. With this preview capability, you can enable your users to sign in with either their UPN or their email address, helping them avoid this confusion.

 

This feature can be enabled by setting the AlternateIdLogin attribute in the HomeRealmDiscoveryPolicy. Please use the instructions in our documentation to set this up in your organization.

 

Some customers are using capabilities in Azure Active Directory (Azure AD) Connect to achieve this today, but that requires them to set the email address as the UPN in Azure AD. With this preview capability, you can now use the same UPN across on-premises Active Directory and Azure AD to achieve the best compatibility across Office 365 and other workloads, while still allowing your users to sign in with either their UPN or email, further simplifying their experience.

 

We hope this change simplifies the sign-in experience for your end users.

 

As always, we’d love to hear any feedback or suggestions you may have. Please let us know what you think in the comments below or on the Azure AD feedback forum. 


Stay safe and be well,

Alex Simons (@Alex_A_Simons)

Corporate VP of Program Management

Microsoft Identity Division

Azure Marketplace new offers – Volume 78

Azure Marketplace new offers – Volume 78

This article is contributed. See the original author and article here.

We continue to expand the Azure Marketplace ecosystem. For this volume, 56 new offers successfully met the onboarding criteria and went live. See details of the new offers below:

Applications

CiraSync.png

CiraSync: CiraSync from Cira Apps Limited quickly syncs the Office 365 global address list and public folder contacts to smartphones. It works with Azure Active Directory and features enterprise single sign-on and easy configuration.

CiraSync Contact Management (Single User).png

CiraSync Contact Management (Single User): This free, single-user version of CiraSync from Cira Apps Limited quickly syncs the Office 365 global address list and public folder contacts to smartphones. It works with Azure Active Directory and features enterprise single sign-on and easy configuration.

CSP Portal for ConnectWise and AutoTask.png

CSP Portal for ConnectWise and AutoTask: LANcom Technology’s CSP Portal syncs your customer cloud service provider (CSP) subscriptions to ConnectWise or AutoTask for automated invoicing, enabling you to save time, increase revenue, and redirect your resources to innovate and spend more time with customers.

DataVisor Feature Platform.png

DataVisor Feature Platform: DataVisor’s Feature Platform allows users to build sophisticated machine learning models, accelerate the feature engineering process from weeks to minutes, and rapidly deploy features in production. It supports real-time and batch processing, and it seamlessly integrates with your machine learning solutions.

Digital Insurance Middleware Platform.png

Digital Insurance Middleware Platform: InsureMO from eBaotech is a platform as a service that acts as middleware for the insurance industry, freeing insurers from legacy constraints and enabling them to effectively connect to stakeholders. Meet the demands of the digital age without investing in risky and expensive core system replacement.

e datascientist- Exploration.png

e[datascientist] – Exploration: Eagle Genomics’ e[datascientist] exploration module expands on the knowledge and reach of a single scientist or team of scientists to broaden the potential for innovation, reduce time to insight, and maximize the value of data from existing research.

ejudge - Online Judge for Code on Ubuntu.png

ejudge – Online Judge for Code on Ubuntu: ejudge is an easy-to-use contest management system for conducting programming tournaments and supporting training courses, where automatic checking of programs is required.

Enerfy Loyalty.png

Enerfy Loyalty: Use Enerfy Loyalty to reward auto insurance customers while gaining predictive insights that will take underwriting to a new level. Collect valuable customer data, increase customer satisfaction, strengthen customer retention, and gain new customers through peer recommendations.

Foxit Document Transformation Services.png

Foxit Document Transformation Services: Foxit’s Document Transformation Services (DTS) provides enterprise-class conversion and compression technology that integrates with document systems to improve business efficiency, ensure compliance, protect personally identifiable information (PII), and reduce cloud storage/egress costs.

FRISS Fraud Detection at Claims.png

FRISS Fraud Detection at Claims: FRISS Fraud Detection at Claims uses real-time AI fraud scoring to help property and casualty insurers during the claims process. High-risk claims are automatically flagged for investigation and sincere customers are swiftly served.

GrowthEnabler B2B Innovation Sourcing Marketplace.png

GrowthEnabler B2B Innovation Sourcing Marketplace: Source and manage innovative digital solutions with GrowthEnabler, an online B2B marketplace and objective decision insights platform. GrowthEnabler helps chief experience officers drive cross-functional team collaboration and engage with emerging disruptors.

Hyperledger Besu Quickstart.png

Hyperledger Besu Quickstart: Hyperledger Besu is an Ethereum-based blockchain using the standards developed by the Enterprise Ethereum Alliance. It’s compatible with Solidity smart contracts and is suited for enterprise use cases that require privacy, high throughput, and finality such as settlement, digital asset issuance, and payments.

ICTFAX - FAX Software Server for LINUX CentOS 7.7.png

ICTFAX – FAX Software Server for LINUX CentOS 7.7: This hardened image offered by Tidal Media is an email-to-fax, fax-to-email, and web-to-fax gateway application that supports extensions/ATA and REST APIs along with G.711 faxing, PSTN faxing, and FoIP T.38 origination and termination.

iSpring Suite Annual Subscription.png

iSpring Suite Annual Subscription: iSpring Suite is a Microsoft PowerPoint-based authoring toolkit from iSpring Solutions that enables users to create slide-based courses, quizzes, dialog simulations, screencasts, video lectures, and other interactive learning materials.

Jitsi Video Chat Server for Ubuntu 18.04 LTS.png

Jitsi Video Chat Server for Ubuntu 18.04 LTS: This offer from Tidal Media includes Jitsi, a ready-to-run and easy-to-maintain videoconferencing solution deployed on Ubuntu 18.04 LTS. Jitsi passes everyone’s video and audio to all participants rather than mixing them first, resulting in lower latency and better quality.

Kanboard - Kanban Project Management on Ubuntu.png

Kanboard – Kanban Project Management on Ubuntu: This Kanboard image offered by Tidal Media is an easy-to-use project management software solution using the Kanban methodology. Focusing on simplicity and minimalism, it presents all your important information in one place, including projects, calendar, assigned tasks, and subtasks.

Observa Artificial Intelligence.png

Observa Artificial Intelligence: Observa’s AI provides real-time insight into retail sales, marketing, and promotional campaigns. Ensure your pricing and promotions are accurate, and learn how you compare to your competition.

officeatwork- Uploader User Subscription.png

officeatwork | Uploader User Subscription: officeatwork is a Microsoft 365 solution containing apps and add-ins that provide Office 365 users with a simple way to create, upload, and update their Office 365 content. The Uploader comes with the Admin Center app, allowing administrators to configure the Uploader experience for all users.

ownCloud - File Sync and Share Server for Ubuntu.png

ownCloud – File Sync and Share Server for Ubuntu: This ready-to-run image from Tidal Media enables users to securely access and share data from anywhere on any device. ownCloud enterprise file sharing improves transparency, security, and control, and it can easily be integrated into your environment.

Phabricator - Git, Code, Manage Server for Ubuntu.png

Phabricator – Git, Code, Manage Server for Ubuntu: Phabricator is a set of tools for developing software. It includes apps that help users manage tasks and sprints; review code; host Git, SVN, or Mercurial repositories; build with continuous integration; and review designs.

SFTP - FTP Server for Windows Server 2019 OpenSSH.png

SFTP – FTP Server for Windows Server 2019 OpenSSH: This secure SFTP server solution uses SFTP/SSH server software, and the ready-to-use image offered by Tidal Media enables users to securely transfer data over the SSH protocol using AES, DES, and Blowfish encryption.

ShookIOT Essentials.png

ShookIOT Essentials: Simplify and accelerate your Industrial Internet of Things (IIOT) transformation journey with ShookIOT Essentials, an asset-centric, vendor-neutral object model that provides secure, fast, and reliable intelligence to all assets. Turn big data into insights across your industrial infrastructure and operations.

Simplifai Emailbot.png

Simplifai Emailbot: Simplifai Emailbot understands your inbound emails and triggers actions in back-end systems according to your business rules. It integrates with common email servers (Exchange, Gmail, and more) and can be configured to call any external API.

SymbioSys Commission-as-a-Service.png

SymbioSys Commission-as-a-Service: SymbioSys Commission-as-a-Service is a one-stop service for insurers that facilitates the configuration and administration of all types of simple and complex commission contracts. Maintain compliance and reduce the time and cost of administering diverse types of commissions without compromising accuracy.

Taiga Project Management Server for Ubuntu 16.04.png

Taiga Project Management Server for Ubuntu 16.04: Taiga Project Management Server for Ubuntu 16.04 is an open-source project management platform for Agile developers, designers, and project teams. This Taiga image offered by Tidal Media provides intuitive backlog and sprint planning.

Tuleap Agile Management Server on LINUX CentOS 7.7.png

Tuleap Agile Management Server on LINUX CentOS 7.7: Tuleap is an application lifecycle management system that facilitates the planning of software releases, the prioritization of business requirements, the assignment of tasks to project members, the monitoring of project progress, and the creation of reports.

Value Maximizer.png

Value Maximizer: Medisolv’s Value Maximizer uses AI to forecast payments in Centers for Medicare & Medicaid Services (CMS) hospital quality programs. Simulate your performance by measure in each program, and learn which measures need to be improved to maximize your incentive payments.

Virtual Assist.png

Virtual Assist: Suitable for insurance companies, facility maintenance teams, and property managers, Codafication’s Virtual Assist provides a secure way for people and businesses to share their stories instantly via video. Improve customer service and performance score cards while mitigating risk and increasing safety.

Xlight FTP Server for Windows Server 2019.png

Xlight FTP Server for Windows Server 2019: This offer from Tidal Media includes Xlight FTP Server for Windows Server 2019, an easy-to-use high-performance FTP server with low CPU usage. Features include remote administration, SSL, SFTP, ODBC, LDAP, Active Directory support, and IPv6 support.

Consulting services

Azure Virtual Network Endpoints.png

Azure Virtual Network Endpoints: Extend your virtual network private address space with Microsoft Azure Virtual Network (VNet) service endpoint policies managed by KoçSistem’s experts. This offer includes 24/7 system monitoring, testing, and more.

Custom Software Development- 2 Hour-Assessment.png

Custom Software Development: 2 Hour-Assessment: Join Tech Fabric LLC’s enterprise architect and chief sales officer for a free custom software development consultation. You’ll learn about Tech Fabric’s microservices and API-led connectivity approach, the benefits of Microsoft Azure, and more.

Free 5 Day Azure Analytics Services Assessment UK.png

Free 5 Day Azure Analytics Services Assessment UK: Zensar Technologies will assess your analytics investments and landscape, discuss your business objectives, and work with you to create a custom Azure analytics solution architecture. This offer is for customers in the United Kingdom.

Free 5 day Azure Migration Assessment Offer UK.png

Free 5 day Azure Migration Assessment Offer UK: Zensar Technologies will review your applications estate (servers, database, web apps, and data) and deliver a detailed roadmap to initiate an applications migration to the cloud. This offer is for customers in the United Kingdom.

KoçSistem Azure Active Directory & DirSync.png

KoçSistem Azure Active Directory & DirSync: KoçSistem’s expert managed services team will use Microsoft Azure tools to monitor your systems 24/7 based on defined metrics. Easily manage identities with Azure Active Directory, DirSync services, and KoçSistem’s assistance.

KoçSistem Azure App Service.png

KoçSistem Azure App Service: In this offer, KoçSistem will integrate Microsoft Azure applications with your SaaS platforms and on-premises data sources. KoçSistem will also manage role-based access, define automation for scaling, and monitor system health and performance.

KoçSistem Azure Application Gateway.png

KoçSistem Azure Application Gateway: Manage traffic to your web applications with Microsoft Azure Application Gateway and KoçSistem’s managed services team. KoçSistem will monitor your systems and route definitions of customer web applications according to requests.

KoçSistem Azure Backup Management.png

KoçSistem Azure Backup Management: Simplify your data recovery processes with KoçSistem’s 24/7 management of Microsoft Azure Backup services. In addition to system monitoring, KoçSistem will create and plan business continuity and disaster recovery scenarios.

KoçSistem Azure CDN.png

KoçSistem Azure CDN: Efficiently deliver web content to your users with Microsoft Azure Content Delivery Network and the assistance of KoçSistem. This offer includes management and implementation of Azure CDN, along with ongoing help desk services.

KoçSistem Azure Container Service (AKS).png

KoçSistem Azure Container Service (AKS): Let KoçSistem manage your company’s usage of Microsoft Azure Kubernetes Service. This offer features DevOps deployment strategies, cluster version upgrades, cluster security, storage structure, rollback management, and more.

KoçSistem Azure Database Management.png

KoçSistem Azure Database Management: KoçSistem’s team will manage and monitor your Microsoft Azure database services, involving performance analysis and error analysis. KoçSistem supports Azure SQL Managed Instance, Azure Cache for Redis, Azure Cosmos DB, and several other database systems.

KoçSistem Azure DNS.png

KoçSistem Azure DNS: In this offer, KoçSistem’s expert network managed services team will manage your Microsoft Azure DNS hosting operations and provide ongoing help desk support for outages or degraded service.

KoçSistem Azure Express Route.png

KoçSistem Azure Express Route: In this managed service, KoçSistem will provide real-time monitoring of your Microsoft Azure ExpressRoute connection. This offer includes design, deployment, configuration, migration, and management of Azure ExpressRoute.

KoçSistem Azure Key Vault Management.png

KoçSistem Azure Key Vault Management: Increase security and control over your keys and passwords with Azure Key Vault services managed by KoçSistem. In addition to 24/7 monitoring, KoçSistem will handle all necessary classifications and authorizations in Azure Key Vault access.

KoçSistem Azure MFA Management.png

KoçSistem Azure MFA Management: In this offer, KoçSistem will manage your Microsoft Azure Multi-Factor Authentication (MFA), assigning licenses, blocking or unblocking users, updating safe IP lists, and making configuration changes.

KoçSistem Azure Monitoring & Automation.png

KoçSistem Azure Monitoring & Automation: In this managed service, KoçSistem’s team will use Microsoft Azure tools, including Azure Monitor and Azure Log Analytics, to monitor and automate your applications, infrastructure, and network.

KoçSistem Azure Network Security Groups.png

KoçSistem Azure Network Security Groups: Using Azure network security groups, KoçSistem’s expert managed services team will manage your network traffic, filter your networks, and communicate with your on-premises resources.

KoçSistem Azure Network Watcher.png

KoçSistem Azure Network Watcher: In this offer, KoçSistem’s team will manage Microsoft Azure Network Watcher for your organization, performing diagnostics tests and more to increase your network performance.

KoçSistem Azure Security Center Managed Service.png

KoçSistem Azure Security Center Managed Service: Get hybrid security management and threat protection with Microsoft Azure Security Center services managed by KoçSistem’s team of experts. This offer includes installation and distribution for on-premises systems.

KoçSistem Azure Storage Management.png

KoçSistem Azure Storage Management: Reduce investment costs and reduce your datacenter storage management responsibilities with the help of KoçSistem’s managed services team, who will help you handle your Microsoft Azure storage and database services.

KoçSistem Azure Traffic Manager.png

KoçSistem Azure Traffic Manager: Allow KoçSistem to manage Microsoft Azure Traffic Manager for your organization so you can achieve higher availability and faster response time. KoçSistem will create profiles, add endpoints, test functionality, and manage DNS controls.

KoçSistem Azure Virtual Machines.png

KoçSistem Azure Virtual Machines: In this offer, KoçSistem will manage your organization’s use of Microsoft Azure Virtual Machines, handling capacity operations and adding, removing, and updating storage units. Benefit from an on-demand, highly scalable, and protected virtualized infrastructure.

KoçSistem Azure Virtual Network (VNet).png

KoçSistem Azure Virtual Network (VNet): In this managed service, KoçSistem will monitor your Microsoft Azure Virtual Network (VNet) usage based on defined metrics. Incidents will be automatically launched in case of any problem with the system.

KoçSistem Azure Virtual Network TAP.png

KoçSistem Azure Virtual Network TAP: Continuously mirror traffic from a virtual network to a packet collector with Microsoft Azure virtual network Terminal Access Point (TAP) managed by KoçSistem’s team of experts. KoçSistem will provide ongoing help desk services and CDN management.

KoçSistem Azure Virtual Private Network.png

KoçSistem Azure Virtual Private Network: In this offer, KoçSistem’s team will handle Azure Virtual Private Network (VPN) services, including continuity management and transmitting information for tunnels to be created over a VPN gateway.

KoçSistem Azure Virtual WAN.png

KoçSistem Azure Virtual WAN: Optimize and automate branch connectivity with Microsoft Azure Virtual WAN managed by KoçSistem. This offer includes full-time monitoring, addition mapping, service pack changes, and more.

Oracle on Azure- 14-Day Implementation.png

Oracle on Azure: 14-Day Implementation: Asseco Data Systems’ Oracle to Microsoft Azure migration service is designed for users who seek high performance and scalability with full engineering support, troubleshooting, and cost optimization.

Creating a Custom Dashboard for Azure Security Center with Azure Resource Graph

Creating a Custom Dashboard for Azure Security Center with Azure Resource Graph

This article is contributed. See the original author and article here.

While the Azure Security Center dashboard is extremely rich with detail information about different workloads, recommendations, and alerts, in some scenarios you may need to customize your dashboard to visualize only what is important for your daily activities.

 

ARG basics for Azure Security Center

 

Azure Resource Graph (ARG) provides an efficient way to query at scale across a given set of subscriptions for any Azure Resource. With ARG, you can query, visualize, or export Azure Security Center (ASC) recommendations in order to get the information that matters most to you.

 

In the Azure Portal, navigate to Resource Graph Explorer and get familiar with the different options. You can create and save your favourite queries, export results into CSV and even pin them into your Azure Dashboard. Bellow you can see a very basic ARG query that will return the Azure Security Center recommendations from the selected subscriptions and arrange information in a more readable manner.

Img1.png

 

securityresources
 | where type == "microsoft.security/assessments"
 // Get recommendations in useful format
 | project
	['TenantID'] = tenantId,
	['SubscriptionID'] = subscriptionId,
	['AssessmentID'] = name,
	['DisplayName'] = properties.displayName,
	['ResourceType'] = tolower(split(properties.resourceDetails.Id,"/").[7]),
	['ResourceName'] = tolower(split(properties.resourceDetails.Id,"/").[8]),
	['ResourceGroup'] = resourceGroup,
	['ContainsNestedRecom'] = tostring(properties.additionalData.subAssessmentsLink),
	['StatusCode'] = properties.status.code,
	['StatusDescription'] = properties.status.description,
	['PolicyDefID'] = properties.metadata.policyDefinitionId,
	['Description'] = properties.metadata.description,
	['RecomType'] = properties.metadata.assessmentType,
	['Remediation'] = properties.metadata.remediationDescription,
	['RemediationEffort'] = properties.metadata.implementationEffort,
	['Severity'] = properties.metadata.severity,
	['Categories'] = properties.metadata.categories,
	['UserImpact'] = properties.metadata.userImpact,
	['Threats'] = properties.metadata.threats,
	['Link'] = properties.links.azurePortal

 

A Starter kit has been published in the Azure Security Center Github Community page to help you get familiar with recommendations as well as the data structure from Azure Security Center. Just copy/paste the ARG queries and start to customize them to your needs.

 

Img2.png

 

Creating your custom Dashboard

 

One of the coolest features of ARG, is that, apart from querying and exporting your results, you can easily create charts and dashboards directly from the Azure Resource Graph Explorer console and even pin them directly into your Azure Portal. 

 

Let’s use one of the samples from the GIthub repo to query for High Severity and Low Remediation Effort recommendations.  

 

Img3.png

 

By simply adding a few lines to the initial examples shared above, we were able to build different views summarizing:

 

Threat vectors identified

 

// Filter
 | where Severity == "High"
 | where RemediationEffort == "Low"
// summarize and order
 | summarize count() by tostring(Threats)
 | order by count_

 

 

Type of impacted resources

 

// Filter
 | where Severity == "High"
 | where RemediationEffort == "Low"
// summarize and order
 | summarize count() by tostring(Categories)
 | order by count_

 

 

List of recommendations

 

// Filter
 | where Severity == "High"
 | where RemediationEffort == "Low"

 

 

List of impacted resources

 

// Filter
 | where Severity == "High"
 | where RemediationEffort == "Low"
// summarize and order
 | summarize count() by ResourceName, ResourceType
 | order by count_

 

 

Impacted subscriptions by threat vector

 

// Filter
 | where Severity == "High"
 | where RemediationEffort == "Low"
// summarize and order
 | summarize count() by SubscriptionID
 | order by count_

 

 

Impacted resource group by threat vector

 

// Filter
 | where Severity == "High"
 | where RemediationEffort == "Low"
// summarize and order
 | summarize count() by ResourceGroup
 | order by count_

 

Additional Resources

  • ARG Starter Kit Github community – Link
  • Azure Resource Graph – Link
  • Azure Resource Graph API – Link

 

Reviewers

Special thanks to:

Yuri Diogenes, @Yuri Diogenes, Senior Program Manager (CxE ASC Team)

Tal Rosler, @tal_rosler, Program Manager (ASC Engineering Team)

Experiencing Data Access Issue in Azure portal for Log Analytics – 07/13 – Investigating

This article is contributed. See the original author and article here.

Initial Update: Monday, 13 July 2020 10:53 UTC

We are aware of issues within Azure Monitoring and are actively investigating. Some customers may experience missing alerts in a partner solution (Example: service now).

  • Work Around: None
  • Next Update: Before 07/13 13:00 UTC

We are working hard to resolve this issue and apologize for any inconvenience.
-Anmol