Bewerken

Delen via


Azure API Management-landingszoneversneller

Azure API Management
Azure Application Gateway
Azure Functions
.NET

API's zijn steeds prominenter geworden in de manier waarop bedrijven en klanten toegang hebben tot services, zowel intern als extern. Intern worden API's gebruikt voor toegang tot Line-Of-Business-toepassingen, zelf gebouwde oplossingen en integraties van derden. Extern kijken meer bedrijven ernaar productief te zijn en geld te verdienen met hun API's. Met deze trend in gedachten wordt API Management een centraal onderdeel van een standaardbenadering voor het beheren, beheren en publiceren van API's voor zowel interne als externe doelgroepen.

Met behulp van Azure-toepassing Gateway is het nu mogelijk om de toegang tot API's die worden geleverd via Azure API Management te beveiligen en te beperken. In dit artikel wordt een oplossing beschreven waarin u zowel interne als externe API's kunt beheren via één API Management-exemplaar. U kunt een veilige houding behouden om rechtstreeks via internet beschikbaar te worden gesteld, maar in plaats daarvan wordt deze geopend via een Application Gateway.

Notitie

Deze architectuur wordt gebruikt als de basis van de Azure API Management-landingszoneversneller in het Cloud Adoption Framework.

Architectuur

Diagram met de architectuur van de api Management-landingszoneversneller.

Dit architectuurdiagram begint met een omvattend vak dat het bereik van een abonnement vertegenwoordigt, een Privé-DNS zone waar privédomeinen worden omgezet en het bereik van een virtueel netwerknamen APIM-CS VNet. Boven op het abonnement staat een vak dat aangeeft dat het een on-premises workload is. Het vak bevat een serverpictogram. Een pijp geeft een site-naar-site-verbinding aan of Azure ExpressRoute maakt verbinding met het API Management-exemplaar in het Azure-abonnement. Er bevinden zich zeven extra kleinere vakken in het grote vak waarin het Azure-abonnement wordt weergegeven. Vier van de vakken bevinden zich op de bovenste rij en drie staan op de onderste rij. Elk afzonderlijk vak vertegenwoordigt een afzonderlijk subnet, met een gekoppelde netwerkbeveiligingsgroep. Aan de linkerkant bevindt zich een openbaar IP-adres dat is gekoppeld aan Azure-toepassing Gateway in het meest linkse vak op de bovenste rij. Application Gateway bevindt zich ook in een van de zeven kleinere vakken, met het subnet met de naam App GW-subnet. Rechts ziet u nog een vak met het API Management-exemplaar, met het subnet met de naam APIM-subnet. Naast het is het derde vak op de bovenste rij, dat een privé-eindpunt voor het Azure Functions-exemplaar bevat in het subnet met de naam PE-subnet. Het meest rechtse vak in de bovenste rij is het back-endsubnet met Azure Function Apps, het Azure-app Service-plan voor de functie en het opslagaccount dat is gekoppeld aan de functie-app. In de onderste rij, beginnend vanaf de linkerkant, bevindt zich een vak met Azure Bastion in het Bastion-subnet. Het tweede vak bevat de management jumbox VM in het Jump Box Subnet. Het laatste vak op de onderste rij is de DevOps-agent in het DevOps-subnet. Rechtsonder in de afbeelding ziet u drie gedeelde resources met hun respectieve pictogrammen. Van links naar rechts zijn de volgende vakken: sleutelkluis, Application Insights en Log Analytics-werkruimte. Er zijn twee sets werkstromen. De eerste werkstroom wordt aangegeven in zwarte cirkels en de andere werkstroom wordt aangegeven in blauwe cirkels, die in latere secties worden uitgelegd. De zwarte werkstroom geeft de toegang aan van API's die extern beschikbaar zijn. De stroom begint bij de gebruiker die toegang heeft tot het openbare IP-adres. De pijl wijst vervolgens naar de richting van de Application Gateway, van application gateway naar het privé-eindpunt en van het privé-eindpunt naar de functie-app. De blauwe werkstroom begint vanaf een on-premises server, met een pijl die verwijst naar het API Management-exemplaar, via een pijplijnpictogram dat een site-naar-site-verbinding of via ExpressRoute aangeeft. De rest van de stroom is hetzelfde als hierboven beschreven: van API Management naar privé-eindpunt en van privé-eindpunt naar Azure Function.

In deze architectuur wordt ervan uitgegaan dat het beleid van de Azure-landingszoneversneller wordt toegepast en dat de structuur omlaag wordt gestuurd vanuit de beheergroep.

Een Visio-bestand van deze architectuur downloaden.

Workflow

Hybride scenario (blauwe cirkels)

Voor dit scenario is een site-naar-site- of Azure ExpressRoute-verbinding met uw on-premises omgeving vereist.

  1. Een on-premises toepassing vereist toegang tot een interne API die wordt geleverd via Azure API Management.
  2. API Management maakt verbinding met de back-end-API's die worden gehost in Azure Functions. Deze verbinding bevindt zich via een privé-eindpunt dat beschikbaar is via het Azure Functions Premium-abonnement en wordt gehost in een eigen subnet.
  3. Het privé-eindpunt heeft veilig toegang tot de interne API die wordt gehost in Azure Functions.

Scenario voor externe toegang (zwarte cirkels)

  1. Een externe toepassing heeft toegang tot een openbaar IP-adres of aangepaste FQDN, die is gekoppeld aan Azure-toepassing Gateway.
  2. Application Gateway fungeert als de webtoepassingsfirewall, waarvoor PFX-certificaten zijn vereist voor SSL-beëindiging.
  3. API Management maakt verbinding met de back-end-API's, die worden gehost in Azure Functions, via een privé-eindpunt. Dit eindpunt is beschikbaar via het Azure Functions Premium-abonnement en wordt gehost in een eigen subnet.
  4. Het privé-eindpunt heeft veilig toegang tot de extern beschikbare API die wordt gehost in Azure Functions.

Onderdelen

De architectuur maakt gebruik van de volgende onderdelen:

  • Azure API Management is een beheerde service waarmee u services in hybride en multicloudomgevingen kunt beheren. API Management fungeert als een gevel om de back-endarchitectuur te abstraheren en biedt controle en beveiliging voor de waarneembaarheid en het gebruik van API's voor zowel interne als externe gebruikers.

  • Azure Functions is een serverloze oplossing waarmee u zich meer kunt richten op codeblokken die kunnen worden uitgevoerd met minimaal infrastructuurbeheer. Functies kunnen worden gehost in verschillende hostingabonnementen, terwijl deze referentiearchitectuur gebruikmaakt van het Premium-abonnement, vanwege het gebruik van privé-eindpunten.

  • Azure-toepassing-gateway is een beheerde service die fungeert als een load balancer van laag 7 en web application firewall. In dit scenario beveiligt de toepassingsgateway het interne APIM-exemplaar, waarmee u de interne en externe modus kunt gebruiken.

  • Met Azure DNS Privé-DNS-zones kunt u domeinnamen binnen een virtueel netwerk beheren en omzetten zonder dat u een aangepaste DNS-oplossing hoeft te implementeren. Een Privé-DNS zone kan worden uitgelijnd op een of meer virtuele netwerken, via virtuele netwerkkoppelingen. Als gevolg van de azure-functies die worden weergegeven via een privé-eindpunt dat door deze referentiearchitectuur wordt gebruikt, moet u een privé-DNS-zone gebruiken.

  • Met Azure MonitorApplication Insights kunnen ontwikkelaars afwijkingen detecteren, problemen diagnosticeren en gebruikspatronen begrijpen. Application Insights biedt uitbreidbaar beheer van toepassingsprestaties en bewaking voor live web-apps. Verschillende platforms worden ondersteund, waaronder .NET, Node.js, Java en Python. Het ondersteunt apps die worden gehost in Azure, on-premises, in een hybride omgeving of in andere openbare clouds. Application Insights is opgenomen als onderdeel van deze referentiearchitectuur om het gedrag van de geïmplementeerde toepassing te bewaken.

  • Met Azure MonitorLog Analytics kunt u logboekquery's bewerken en uitvoeren met gegevens in Azure Monitor-logboeken, optioneel vanuit Azure Portal. Ontwikkelaars kunnen eenvoudige query's uitvoeren voor een set records of Log Analytics gebruiken om geavanceerde analyses uit te voeren. Vervolgens kunnen ze de resultaten visualiseren. Log Analytics is geconfigureerd als onderdeel van deze referentiearchitectuur om alle bewakingslogboeken samen te voegen voor meer analyse en rapportage.

  • Azure Virtual Machines is een rekenresource die kan worden gebruikt voor het hosten van veel verschillende workloads. In deze referentiearchitectuur worden virtuele machines gebruikt om een jumpbox-server voor beheer te bieden, evenals een host voor de DevOps-agent of GitHub-runner.

  • Azure Key Vault is een cloudservice waarmee geheimen veilig worden opgeslagen en geopend, die variëren van API-sleutels en wachtwoorden tot certificaten en cryptografische sleutels. Deze referentiearchitectuur maakt gebruik van Azure Key Vault om de SSL-certificaten op te slaan die worden gebruikt door application gateway.

  • Azure Bastion is een platform-as-a-service die is ingericht in het virtuele netwerk van de ontwikkelaar. Het biedt beveiligde RDP-/SSH-connectiviteit met de virtuele machines van de ontwikkelaar via TLS, vanuit Azure Portal. Met Azure Bastion hebben virtuele machines geen openbaar IP-adres meer nodig om verbinding te maken via RDP/SSH. Deze referentiearchitectuur maakt gebruik van Azure Bastion voor toegang tot de DevOps-agent of gitHub runner-server of de beheer jump box-server.

Als u een DevOps-hulpprogramma gebruikt, zoals Azure DevOps of GitHub, werken in de cloud gehoste agents of hardlopers via het openbare internet. Omdat api-beheer in deze architectuur is ingesteld op een intern netwerk, moet u een DevOps-agent gebruiken die toegang heeft tot het VNet. De DevOps-agent helpt u bij het implementeren van beleidsregels en andere wijzigingen in de API's in uw architectuur. Deze CI/CD-sjablonen kunnen worden gebruikt om het proces uit elkaar te breken en uw ontwikkelteams in staat te stellen wijzigingen per API te implementeren. Ze worden uitgevoerd door de DevOps-runners.

Alternatieven

Voor de back-endservices waarmee het API Management-exemplaar verbinding maakt, zijn er verschillende alternatieven beschikbaar, naast Azure Functions, die in deze referentie-implementatie worden gebruikt:

Voor implementaties in meerdere regio's kunt u Azure Front Door gebruiken om snelle, betrouwbare en veilige toegang te bieden tussen uw gebruikers en de statische en dynamische webinhoud van uw toepassingen.

Raadpleeg API's beveiligen met Application Gateway en API Management voor aanvullende voorbeelden van hoe Application Gateway API's kan beveiligen.

Overwegingen

Met deze overwegingen worden de pijlers van het Azure Well-Architected Framework geïmplementeerd. Dit is een set richtlijnen die kunnen worden gebruikt om de kwaliteit van een workload te verbeteren. Zie Microsoft Azure Well-Architected Framework voor meer informatie.

Betrouwbaarheid

Betrouwbaarheid zorgt ervoor dat uw toepassing kan voldoen aan de toezeggingen die u aan uw klanten hebt gedaan. Zie Overzicht van de betrouwbaarheidspijler voor meer informatie.

  • Implementeer ten minste twee schaaleenheden van API Management die zijn verdeeld over twee beschikbaarheidszones per regio. Deze methode maximaliseert uw beschikbaarheid en prestaties.
  • VNet-peering biedt uitstekende prestaties in een regio, maar heeft een schaalbaarheidslimiet van maximaal 500 netwerken. Als u meer workloads wilt verbinden, gebruikt u een hub spoke-ontwerp of Azure vWAN.

Beveiliging

Beveiliging biedt garanties tegen opzettelijke aanvallen en misbruik van uw waardevolle gegevens en systemen. Zie Overzicht van de beveiligingspijler voor meer informatie.

  • API Management-validatiebeleid is beschikbaar voor het valideren van API-aanvragen en -antwoorden op basis van een OpenAPI-schema. Deze functies zijn geen vervanging voor een Web Application Firewall, maar ze kunnen extra beveiliging bieden tegen sommige bedreigingen. Het toevoegen van validatiebeleid kan gevolgen hebben voor de prestaties, dus we raden u aan prestatiebelastingstests te gebruiken om de impact op de API-doorvoer te beoordelen.
  • Implementeer Azure Web Application Firewall (WAF) vóór API Management om bescherming te bieden tegen veelvoorkomende aanvallen en beveiligingsproblemen van webtoepassingen.
  • Benoemde waarden toepassen met Key Vault-geheimen om gevoelige informatie in APIM-beleid te beveiligen.
  • Gebruik Application Gateway voor externe toegang van een intern APIM-exemplaar om het APIM-exemplaar te beveiligen en hybride connectiviteit mogelijk te maken.
  • Implementeer de API Management-gateway in een VNet, ter ondersteuning van hybride connectiviteit en verbeterde beveiliging.
  • VNet-peering biedt uitstekende prestaties in een regio, maar heeft een schaalbaarheidslimiet van maximaal 500 netwerken. Als u meer workloads wilt verbinden, gebruikt u een hub spoke-ontwerp of Azure vWAN.

Kostenoptimalisatie

Kostenoptimalisatie gaat over manieren om onnodige uitgaven te verminderen en operationele efficiëntie te verbeteren. Zie Overzicht van de pijler kostenoptimalisatie voor meer informatie.

  • Vanwege de noodzaak van ondersteuning voor beschikbaarheidszones en virtuele netwerken hebben we de Premium-laag van API Management geselecteerd, volgens de prijzen voor elke regio. Daarnaast wordt Azure Functions in deze workload gehost op het Premium-abonnement, vanwege de noodzaak van VNet-toegang.
  • Voor proof-of-concept- of prototypes raden we u aan andere lagen van API Management (zoals Developer of Standard) te gebruiken.

Operationele uitmuntendheid

Operationele uitmuntendheid omvat de operationele processen die een toepassing implementeren en deze in productie houden. Zie Overzicht van de operationele uitmuntendheidpijler voor meer informatie.

  • API Management-configuraties moeten worden weergegeven als ARM-sjablonen en u moet een benadering van infrastructuur als code omarmen.
  • Gebruik een CI/CD-proces om API Management-configuraties te beheren, versie en bij te werken.
  • Maak aangepaste statustests om de status van uw API Management-exemplaar te valideren. Gebruik de URL /status-0123456789abcdef om een algemeen statuseindpunt te maken voor de APIM-service in de app-gateway.
  • Certificaten die in de sleutelkluis worden bijgewerkt, worden automatisch geroteerd in API Management, dat binnen 4 uur wordt bijgewerkt.
  • Implementeer ten minste twee schaaleenheden van API Management die zijn verdeeld over twee beschikbaarheidszones per regio. Deze methode maximaliseert de beschikbaarheid en prestaties.

Dit scenario implementeren

Deze architectuur is beschikbaar op GitHub. Het bevat alle benodigde infrastructuur als codebestanden en de implementatie-instructies.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Belangrijkste auteurs:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Bekijk deze belangrijke resources:

Meer informatie over deze belangrijke services: