Share via


Referentiearchitectuur voor Azure Spring Apps

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam een tijdje op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermafbeeldingen, video's en diagrammen.

Dit artikel is van toepassing op: ✔️ Standard ✔️ Enterprise

Deze referentiearchitectuur is een basis die gebruikmaakt van een typisch hub- en spoke-ontwerp voor ondernemingen voor het gebruik van Azure Spring Apps. In het ontwerp wordt Azure Spring Apps geïmplementeerd in één spoke die afhankelijk is van gedeelde services die in de hub worden gehost. De architectuur is gebouwd met onderdelen om de basisprincipes in het Microsoft Azure Well-Architected Framework te realiseren.

Er zijn twee varianten van Azure Spring Apps: Het Standard-abonnement en het Enterprise-abonnement.

Het Azure Spring Apps Standard-abonnement bestaat uit de Spring Cloud-configuratieserver, het Spring Cloud-serviceregister en de kpack-buildservice.

Het Azure Spring Apps Enterprise-abonnement bestaat uit de VMware Tanzu® Build Service™, Application Configuration Service voor VMware Tanzu®, VMware Tanzu® Service Registry, Spring Cloud Gateway voor VMware Tanzu® en API-portal voor VMware Tanzu®.

Zie referentiearchitectuur voor Azure Spring Apps op GitHub voor een implementatie van deze architectuur.

Implementatieopties voor deze architectuur zijn Onder andere Azure Resource Manager (ARM), Terraform, Azure CLI en Bicep. De artefacten in deze opslagplaats bieden een basis die u kunt aanpassen voor uw omgeving. U kunt resources, zoals Azure Firewall of Application Gateway, groepeer in verschillende resourcegroepen of abonnementen. Deze groepering helpt verschillende functies gescheiden te houden, zoals IT-infrastructuur, beveiliging, bedrijfstoepassingsteams, enzovoort.

De adresruimte plannen

Voor Azure Spring Apps zijn twee toegewezen subnetten vereist:

  • Serviceruntime
  • Spring Boot-toepassingen

Voor elk van deze subnetten is een toegewezen Azure Spring Apps-cluster vereist. Meerdere clusters kunnen niet dezelfde subnetten delen. De minimale grootte van elk subnet is /28. Het aantal toepassingsexemplaren dat Azure Spring Apps kan ondersteunen, is afhankelijk van de grootte van het subnet. U vindt de gedetailleerde vereisten voor virtuele netwerken in de sectie Vereisten voor virtuele netwerken van Azure Spring Apps implementeren in een virtueel netwerk.

Waarschuwing

De geselecteerde subnetgrootte mag niet overlappen met de bestaande adresruimte van het virtuele netwerk en mag niet overlappen met peer- of on-premises subnetadresbereiken.

Gebruiksvoorbeelden

Deze architectuur wordt doorgaans gebruikt voor:

  • Privétoepassingen: Interne toepassingen die zijn geïmplementeerd in hybride cloudomgevingen
  • Openbare toepassingen: extern gerichte toepassingen

Deze gebruiksvoorbeelden zijn vergelijkbaar, met uitzondering van de beveiligings- en netwerkverkeersregels. Deze architectuur is ontworpen om de nuances van elke architectuur te ondersteunen.

Privétoepassingen

In de volgende lijst worden de infrastructuurvereisten voor privétoepassingen beschreven. Deze vereisten zijn typisch in sterk gereglementeerde omgevingen.

  • Een subnet mag slechts één exemplaar van Azure Spring Apps hebben.
  • Naleving van ten minste één beveiligingsbenchmark moet worden afgedwongen.
  • DNS-records (Domain Name Service) van de toepassingshost moeten worden opgeslagen in Azure Privé-DNS.
  • Azure-serviceafhankelijkheden moeten communiceren via service-eindpunten of Private Link.
  • Data-at-rest moet worden versleuteld.
  • Gegevens die onderweg zijn, moeten worden versleuteld.
  • DevOps-implementatiepijplijnen kunnen worden gebruikt (bijvoorbeeld Azure DevOps) en vereisen netwerkconnectiviteit met Azure Spring Apps.
  • Uitgaand verkeer moet via een centraal netwerk virtueel apparaat (NVA) worden geleid (bijvoorbeeld Azure Firewall).
  • Als Azure Spring Apps-configuratieserver wordt gebruikt om configuratie-eigenschappen uit een opslagplaats te laden, moet de opslagplaats privé zijn.
  • Voor de Zero Trust beveiligingsbenadering van Microsoft moeten geheimen, certificaten en referenties worden opgeslagen in een beveiligde kluis. De aanbevolen service is Azure Key Vault.
  • Naamomzetting van hosts on-premises en in de cloud moet in twee richtingen zijn.
  • Geen rechtstreekse uitgang naar het openbare internet, met uitzondering van verkeer van besturingsvlak.
  • Resourcegroepen die worden beheerd door de Azure Spring Apps-implementatie, mogen niet worden gewijzigd.
  • Subnetten die worden beheerd door de Azure Spring Apps-implementatie, mogen niet worden gewijzigd.

De volgende lijst bevat de onderdelen waaruit het ontwerp bestaat:

  • On-premises netwerk
    • Domain Name Service (DNS)
    • Gateway
  • Hub-abonnement
    • Application Gateway-subnet
    • Azure Firewall subnet
    • Subnet voor gedeelde services
  • Verbonden abonnement
    • Azure Bastion-subnet
    • Virtual Network peer

In de volgende lijst worden de Azure-services in deze referentiearchitectuur beschreven:

  • Azure Key Vault: een door hardware ondersteunde service voor referentiebeheer die nauw is geïntegreerd met Microsoft-identiteitsservices en rekenresources.

  • Azure Monitor: een allesomvattende suite met bewakingsservices voor toepassingen die zowel in Azure als on-premises worden geïmplementeerd.

  • Azure Pipelines: een volledig functionele CI/CD-service (Continuous Integration/Continuous Development) waarmee bijgewerkte Spring Boot-apps automatisch kunnen worden geïmplementeerd in Azure Spring Apps.

  • Microsoft Defender for Cloud: een geïntegreerd systeem voor beveiligingsbeheer en bedreigingsbeveiliging voor workloads in on-premises, meerdere clouds en Azure.

  • Azure Spring Apps: een beheerde service die speciaal is ontworpen en geoptimaliseerd voor Op Java gebaseerde Spring Boot-toepassingen en . Op NET gebaseerde Steeltoe-toepassingen .

De volgende diagrammen vertegenwoordigen een goed ontworpen hub- en spoke-ontwerp dat voldoet aan de bovenstaande vereisten:

Openbare toepassingen

In de volgende lijst worden de infrastructuurvereisten voor openbare toepassingen beschreven. Deze vereisten zijn typisch in sterk gereglementeerde omgevingen.

  • Een subnet mag slechts één exemplaar van Azure Spring Apps hebben.
  • Naleving van ten minste één beveiligingsbenchmark moet worden afgedwongen.
  • DNS-records (Domain Name Service) van de toepassingshost moeten worden opgeslagen in Azure Privé-DNS.
  • Azure DDoS Protection moet zijn ingeschakeld.
  • Azure-serviceafhankelijkheden moeten communiceren via service-eindpunten of Private Link.
  • Data-at-rest moet worden versleuteld.
  • Gegevens die onderweg zijn, moeten worden versleuteld.
  • DevOps-implementatiepijplijnen kunnen worden gebruikt (bijvoorbeeld Azure DevOps) en vereisen netwerkconnectiviteit met Azure Spring Apps.
  • Uitgaand verkeer moet via een centraal netwerk virtueel apparaat (NVA) worden geleid (bijvoorbeeld Azure Firewall).
  • Inkomend verkeer moet worden beheerd door ten minste Application Gateway of Azure Front Door.
  • Routeerbare internetadressen moeten worden opgeslagen in openbare DNS van Azure.
  • Voor de Zero Trust beveiligingsbenadering van Microsoft moeten geheimen, certificaten en referenties worden opgeslagen in een beveiligde kluis. De aanbevolen service is Azure Key Vault.
  • Naamomzetting van hosts on-premises en in de cloud moet in twee richtingen zijn.
  • Geen rechtstreekse uitgang naar het openbare internet, met uitzondering van verkeer van besturingsvlak.
  • Resourcegroepen die worden beheerd door de Azure Spring Apps-implementatie, mogen niet worden gewijzigd.
  • Subnetten die worden beheerd door de Azure Spring Apps-implementatie, mogen niet worden gewijzigd.

De volgende lijst bevat de onderdelen waaruit het ontwerp bestaat:

  • On-premises netwerk
    • Domain Name Service (DNS)
    • Gateway
  • Hub-abonnement
    • Application Gateway-subnet
    • Azure Firewall-subnet
    • Shared Services-subnet
  • Verbonden abonnement
    • Azure Bastion-subnet
    • Virtual Network peer

In de volgende lijst worden de Azure-services in deze referentiearchitectuur beschreven:

  • Azure-toepassing Firewall: een functie van Azure Application Gateway die gecentraliseerde beveiliging van toepassingen biedt tegen veelvoorkomende aanvallen en beveiligingsproblemen.

  • Azure Application Gateway: een load balancer die verantwoordelijk is voor toepassingsverkeer met TLS-offload (Transport Layer Security) die werkt op laag 7.

  • Azure Key Vault: een door hardware ondersteunde service voor referentiebeheer die nauw is geïntegreerd met Microsoft-identiteitsservices en rekenresources.

  • Azure Monitor: een allesomvattende suite met bewakingsservices voor toepassingen die zowel in Azure als on-premises worden geïmplementeerd.

  • Azure Pipelines: een volledig functionele CI/CD-service (Continuous Integration/Continuous Development) waarmee bijgewerkte Spring Boot-apps automatisch kunnen worden geïmplementeerd in Azure Spring Apps.

  • Microsoft Defender for Cloud: een geïntegreerd systeem voor beveiligingsbeheer en bedreigingsbeveiliging voor workloads in on-premises, meerdere clouds en Azure.

  • Azure Spring Apps: een beheerde service die speciaal is ontworpen en geoptimaliseerd voor Op Java gebaseerde Spring Boot-toepassingen en . Op NET gebaseerde Steeltoe-toepassingen .

De volgende diagrammen vertegenwoordigen een goed ontworpen hub- en spoke-ontwerp dat voldoet aan de bovenstaande vereisten. Alleen het hub-virtual-network communiceert met internet:

On-premises connectiviteit van Azure Spring Apps

Toepassingen in Azure Spring Apps kunnen communiceren met verschillende Azure-, on-premises en externe resources. Door het hub- en spoke-ontwerp te gebruiken, kunnen toepassingen verkeer extern of naar het on-premises netwerk routeren met behulp van Express Route of Site-to-Site Virtual Private Network (VPN).

Overwegingen voor Azure Well-Architected Framework

Het Azure Well-Architected Framework is een set uitgangspunten die moeten worden gevolgd bij het tot stand brengen van een sterke infrastructuurbasis. Het framework bevat de volgende categorieën: kostenoptimalisatie, operationele uitmuntendheid, prestatie-efficiëntie, betrouwbaarheid en beveiliging.

Kostenoptimalisatie

Vanwege de aard van gedistribueerd systeemontwerp is de wildgroei van de infrastructuur een realiteit. Deze realiteit leidt tot onverwachte en onbeheersbare kosten. Azure Spring Apps is gebouwd met behulp van onderdelen die worden geschaald, zodat het aan de vraag kan voldoen en de kosten kan optimaliseren. De kern van deze architectuur is de Azure Kubernetes Service (AKS). De service is ontworpen om de complexiteit en operationele overhead van het beheer van Kubernetes te verminderen, waaronder efficiëntie in de operationele kosten van het cluster.

U kunt verschillende toepassingen en toepassingstypen implementeren in één exemplaar van Azure Spring Apps. De service ondersteunt het automatisch schalen van toepassingen die worden geactiveerd door metrische gegevens of planningen die het gebruik en de kostenefficiëntie kunnen verbeteren.

U kunt ook Application Insights en Azure Monitor gebruiken om de operationele kosten te verlagen. Met de zichtbaarheid van de uitgebreide logboekregistratieoplossing kunt u automatisering implementeren om de onderdelen van het systeem in realtime te schalen. U kunt ook logboekgegevens analyseren om inefficiënties in de toepassingscode aan het licht te brengen die u kunt aanpakken om de totale kosten en prestaties van het systeem te verbeteren.

Operationele uitmuntendheid

Azure Spring Apps heeft betrekking op meerdere aspecten van operationele uitmuntendheid. U kunt deze aspecten combineren om ervoor te zorgen dat de service efficiënt wordt uitgevoerd in productieomgevingen, zoals beschreven in de volgende lijst:

  • U kunt Azure Pipelines gebruiken om ervoor te zorgen dat implementaties betrouwbaar en consistent zijn, terwijl u menselijke fouten kunt voorkomen.
  • U kunt Azure Monitor en Application Insights gebruiken om logboek- en telemetriegegevens op te slaan. U kunt verzamelde logboek- en metrische gegevens evalueren om de status en prestaties van uw toepassingen te garanderen. Application Performance Monitoring (APM) is volledig geïntegreerd in de service via een Java-agent. Deze agent biedt inzicht in alle geïmplementeerde toepassingen en afhankelijkheden zonder dat er extra code nodig is. Zie het blogbericht Moeiteloos toepassingen en afhankelijkheden bewaken in Azure Spring Apps voor meer informatie.
  • U kunt Microsoft Defender for Cloud gebruiken om ervoor te zorgen dat toepassingen de beveiliging behouden door een platform te bieden voor het analyseren en evalueren van de verstrekte gegevens.
  • De service ondersteunt verschillende implementatiepatronen. Zie Een faseringsomgeving instellen in Azure Spring Apps voor meer informatie.

Betrouwbaarheid

Azure Spring Apps is gebouwd op AKS. Hoewel AKS een niveau van tolerantie biedt via clustering, gaat deze referentiearchitectuur nog verder door services en architectuuroverwegingen in te voegen om de beschikbaarheid van de toepassing te verhogen als er onderdelenfouten optreden.

Door voort te bouwen op een goed gedefinieerd hub-and-spoke-ontwerp, zorgt de basis van deze architectuur ervoor dat u deze in meerdere regio's kunt implementeren. Voor het gebruiksscenario van de privétoepassing maakt de architectuur gebruik van Azure Privé-DNS om te zorgen voor continue beschikbaarheid tijdens een geografische fout. Voor de use-case van de openbare toepassing zorgen Azure Front Door en Azure Application Gateway voor beschikbaarheid.

Beveiliging

De beveiliging van deze architectuur wordt aangepakt door de naleving van door de industrie gedefinieerde controles en benchmarks. In dit verband betekent "controle" een beknopte en goed gedefinieerde best practice, zoals "Gebruik het principe van minimale bevoegdheden bij de implementatie van toegang tot informatiesystemen. IAM-05" De besturingselementen in deze architectuur zijn afkomstig van de Cloud Control Matrix (CCM) van de Cloud Security Alliance (CSA) en de Microsoft Azure Foundations Benchmark (MAFB) van het Center for Internet Security (CIS). In de toegepaste besturingselementen ligt de focus op de primaire beveiligingsontwerpprincipes van governance, netwerken en toepassingsbeveiliging. Het is uw verantwoordelijkheid om de ontwerpprincipes van identiteit, toegangsbeheer en opslag te verwerken, aangezien deze betrekking hebben op uw doelinfrastructuur.

Beheer

Het primaire aspect van governance waar deze architectuur betrekking op heeft, is scheiding door de isolatie van netwerkbronnen. In de CCM raadt DCS-08 toegangsbeheer en uitgaand verkeer aan voor het datacenter. Om aan de controle te voldoen, maakt de architectuur gebruik van een hub-and-spoke-ontwerp met behulp van netwerkbeveiligingsgroepen (NSG's) om oost-westverkeer tussen resources te filteren. De architectuur filtert ook verkeer tussen centrale services in de hub en resources in de spoke. De architectuur maakt gebruik van een exemplaar van Azure Firewall om verkeer tussen internet en de resources binnen de architectuur te beheren.

In de volgende lijst ziet u het besturingselement voor de beveiliging van datacenters in deze verwijzing:

CSA CCM-beheer-id CSA CCM Control Domain
DCS-08 Vermelding van niet-geautoriseerde personen voor datacenterbeveiliging

Netwerk

Het netwerkontwerp dat deze architectuur ondersteunt, is afgeleid van het traditionele hub-and-spoke-model. Deze beslissing zorgt ervoor dat netwerkisolatie een fundamentele constructie is. CCM-beheer IVS-06 raadt aan dat verkeer tussen netwerken en virtuele machines wordt beperkt en bewaakt tussen vertrouwde en niet-vertrouwde omgevingen. Deze architectuur neemt de controle over door de implementatie van de NSG's voor oost-west-verkeer (binnen het 'datacentrum') en de Azure Firewall voor noord-zuidverkeer (buiten het 'datacentrum'). CCM-beheer IPY-04 raadt aan dat de infrastructuur beveiligde netwerkprotocollen moet gebruiken voor de uitwisseling van gegevens tussen services. De Azure-services die deze architectuur ondersteunen, maken allemaal gebruik van standaard beveiligde protocollen, zoals TLS voor HTTP en SQL.

De volgende lijst bevat de CCM-besturingselementen die betrekking hebben op netwerkbeveiliging in deze verwijzing:

CSA CCM-beheer-id CSA CCM Control Domain
IPY-04 Netwerkprotocollen
IVS-06 Netwerkbeveiliging

De implementatie van het netwerk wordt verder beveiligd door besturingselementen van de MAFB te definiëren. De besturingselementen zorgen ervoor dat verkeer naar de omgeving wordt beperkt via het openbare internet.

De volgende lijst bevat de CIS-besturingselementen die betrekking hebben op netwerkbeveiliging in deze verwijzing:

CIS-besturingselement-id Beschrijving van CIS-besturingselement
6,2 Zorg ervoor dat SSH-toegang via internet is beperkt.
6.3 Zorg ervoor dat inkomend verkeer 0.0.0.0/0 (ANY IP) niet is toegestaan in SQL-databases.
6.5 Zorg ervoor dat Network Watcher ingeschakeld is.
6.6 Zorg ervoor dat inkomend verkeer via UDP is beperkt via internet.

Azure Spring Apps vereist beheerverkeer naar uitgaand verkeer vanuit Azure wanneer het wordt geïmplementeerd in een beveiligde omgeving. U moet de netwerk- en toepassingsregels toestaan die worden vermeld in Klantverantwoordelijkheden voor het uitvoeren van Azure Spring Apps in een virtueel netwerk.

Toepassingsbeveiliging

Dit ontwerpprincipe omvat de fundamentele onderdelen van identiteit, gegevensbescherming, sleutelbeheer en toepassingsconfiguratie. Standaard wordt een toepassing die is geïmplementeerd in Azure Spring Apps uitgevoerd met minimale bevoegdheden die nodig zijn om te kunnen functioneren. De set autorisatiebesturingselementen is rechtstreeks gerelateerd aan gegevensbeveiliging bij het gebruik van de service. Sleutelbeheer versterkt deze gelaagde benadering van toepassingsbeveiliging.

De volgende lijst bevat de CCM-besturingselementen die betrekking hebben op sleutelbeheer in deze verwijzing:

CSA CCM-controle-id CSA CCM Control Domain
EKM-01 Rechten voor versleuteling en sleutelbeheer
EKM-02 Sleutelgeneratie voor versleuteling en sleutelbeheer
EKM-03 Versleuteling en sleutelbeheer Bescherming van gevoelige gegevens
EKM-04 Opslag en toegang voor versleuteling en sleutelbeheer

Vanuit de CCM, EKM-02 en EKM-03 worden beleidsregels en procedures aanbevolen voor het beheren van sleutels en het gebruik van versleutelingsprotocollen om gevoelige gegevens te beveiligen. EKM-01 raadt aan dat alle cryptografische sleutels identificeerbare eigenaren hebben, zodat ze kunnen worden beheerd. EKM-04 raadt het gebruik van standaardalgoritmen aan.

De volgende lijst bevat de CIS-besturingselementen die betrekking hebben op sleutelbeheer in deze verwijzing:

CIS-besturingselement-id Beschrijving van CIS-besturingselement
8.1 Zorg ervoor dat de vervaldatum is ingesteld voor alle sleutels.
8.2 Zorg ervoor dat de vervaldatum is ingesteld voor alle geheimen.
8.4 Zorg ervoor dat de sleutelkluis kan worden hersteld.

De CIS-besturingselementen 8.1 en 8.2 raden aan om vervaldatums in te stellen voor referenties om ervoor te zorgen dat rotatie wordt afgedwongen. CIS-beheer 8.4 zorgt ervoor dat de inhoud van de sleutelkluis kan worden hersteld om de bedrijfscontinuïteit te behouden.

De aspecten van toepassingsbeveiliging vormen een basis voor het gebruik van deze referentiearchitectuur ter ondersteuning van een Spring-workload in Azure.

Volgende stappen

Verken deze referentiearchitectuur via de ARM-, Terraform- en Azure CLI-implementaties die beschikbaar zijn in de azure Spring Apps Reference Architecture-opslagplaats .