Best practices voor Azure Service Fabric-beveiliging
Naast dit artikel raadpleegt u ook de controlelijst voor Service Fabric-beveiliging voor meer informatie.
Het implementeren van een toepassing in Azure is snel, eenvoudig en rendabel. Voordat u uw cloudtoepassing in productie implementeert, bekijkt u onze lijst met essentiële en aanbevolen aanbevolen procedures voor het implementeren van beveiligde clusters in uw toepassing.
Azure Service Fabric is een gedistribueerde systemen platform waarmee u gemakkelijk pakket, implementeren en beheren van schaalbare en betrouwbare microservices. Service Fabric biedt ook een oplossing voor de grote uitdaging van het ontwikkelen en beheren van cloudtoepassingen. Ontwikkelaars en beheerders kunnen complexe infrastructuurproblemen voorkomen en zich concentreren op het implementeren van bedrijfsspecifieke, veeleisende werkbelastingen die schaalbaar, betrouwbaar en beheerbaar zijn.
Voor elke best practice leggen we het volgende uit:
- Wat de best practice is.
- Waarom u de best practice moet implementeren.
- Wat kan er gebeuren als u de best practice niet implementeert.
- Hoe u de best practice kunt implementeren.
We raden de volgende aanbevolen procedures voor Azure Service Fabric-beveiliging aan:
- Gebruik Azure Resource Manager-sjablonen en de Service Fabric PowerShell-module om beveiligde clusters te maken.
- X.509-certificaten gebruiken.
- Beveiligingsbeleid configureren.
- Implementeer de Reliable Actors-beveiligingsconfiguratie.
- TLS configureren voor Azure Service Fabric.
- Gebruik netwerkisolatie en -beveiliging met Azure Service Fabric.
- Azure Key Vault configureren voor beveiliging.
- Gebruikers toewijzen aan rollen.
- Houd rekening met het hosten van niet-vertrouwde toepassingen in een Service Fabric-cluster.
Aanbevolen procedures voor het beveiligen van uw clusters
Gebruik altijd een beveiligd cluster:
- Implementeer clusterbeveiliging met behulp van certificaten.
- Geef clienttoegang (beheerder en alleen-lezen) op met behulp van Microsoft Entra-id.
Geautomatiseerde implementaties gebruiken:
- Gebruik scripts om de geheimen te genereren, te implementeren en over te rollen.
- Sla de geheimen op in Azure Key Vault en gebruik de Microsoft Entra-id voor alle andere clienttoegang.
- Verificatie vereisen voor menselijke toegang tot de geheimen.
Houd ook rekening met de volgende configuratieopties:
- Maak perimeternetwerken (ook wel bekend als gedemilitariseerde zones, DMZ's en gescreende subnetten) met behulp van Azure Network Security Groups (NSG's).
- Toegang tot virtuele machines (VM's) van het cluster of beheer uw cluster met behulp van jumpservers met Verbinding met extern bureaublad.
Uw clusters moeten worden beveiligd om te voorkomen dat onbevoegde gebruikers verbinding maken, met name wanneer een cluster in productie wordt uitgevoerd. Hoewel het mogelijk is om een onbeveiligd cluster te maken, kunnen anonieme gebruikers verbinding maken met uw cluster als het cluster beheereindpunten blootstelt aan het openbare internet.
Er zijn drie scenario's voor het implementeren van clusterbeveiliging met behulp van verschillende technologieën:
- Beveiliging tussen knooppunten: in dit scenario wordt de communicatie tussen de VM's en de computers in het cluster beveiligd. Deze vorm van beveiliging zorgt ervoor dat alleen computers die zijn gemachtigd om lid te worden van het cluster toepassingen en services in het cluster kunnen hosten. In dit scenario kunnen de clusters die worden uitgevoerd in Azure of zelfstandige clusters die worden uitgevoerd in Windows, gebruikmaken van certificaatbeveiliging of Windows-beveiliging voor Windows Server-computers.
- Beveiliging van client-naar-knooppunt: dit scenario beveiligt de communicatie tussen een Service Fabric-client en de afzonderlijke knooppunten in het cluster.
- Op rollen gebaseerd toegangsbeheer van Service Fabric (Service Fabric RBAC): in dit scenario worden afzonderlijke identiteiten (certificaten, Microsoft Entra-id, enzovoort) gebruikt voor elke beheerder en gebruikersclientrol die toegang heeft tot het cluster. U geeft de rolidentiteiten op wanneer u het cluster maakt.
Notitie
Beveiligingsaanbeveling voor Azure-clusters: Gebruik Microsoft Entra-beveiliging om clients en certificaten te verifiëren voor beveiliging van knooppunten naar knooppunt.
Zie Instellingen configureren voor een zelfstandig Windows-cluster om een zelfstandig Windows-cluster te configureren.
Gebruik Azure Resource Manager-sjablonen en de Service Fabric PowerShell-module om een beveiligd cluster te maken. Zie Een Service Fabric-cluster maken voor stapsgewijze instructies voor het maken van een beveiligd Service Fabric-cluster met behulp van Azure Resource Manager-sjablonen.
Gebruik de Azure Resource Manager-sjabloon:
- Pas uw cluster aan met behulp van de sjabloon voor het configureren van beheerde opslag voor virtuele harde schijven (VHD's).
- Stationswijzigingen in uw resourcegroep met behulp van de sjabloon voor eenvoudig configuratiebeheer en controle.
Uw clusterconfiguratie behandelen als code:
- Wees grondig bij het controleren van uw implementatieconfiguraties.
- Vermijd het gebruik van impliciete opdrachten om uw resources rechtstreeks te wijzigen.
Veel aspecten van de levenscyclus van de Service Fabric-toepassing kunnen worden geautomatiseerd. De Service Fabric PowerShell-module automatiseert algemene taken voor het implementeren, upgraden, verwijderen en testen van Azure Service Fabric-toepassingen. Beheerde API's en HTTP-API's voor toepassingsbeheer zijn ook beschikbaar.
X.509-certificaten gebruiken
Beveilig uw clusters altijd met behulp van X.509-certificaten of Windows-beveiliging. Beveiliging wordt alleen geconfigureerd tijdens het maken van het cluster. Het is niet mogelijk om beveiliging in te schakelen nadat het cluster is gemaakt.
Als u een clustercertificaat wilt opgeven, stelt u de waarde van de eigenschap ClusterCredentialType in op X509. Als u een servercertificaat voor externe verbindingen wilt opgeven, stelt u de eigenschap ServerCredentialType in op X509.
Volg bovendien deze procedures:
- Maak de certificaten voor productieclusters met behulp van een correct geconfigureerde Windows Server-certificaatservice. U kunt de certificaten ook verkrijgen bij een goedgekeurde certificeringsinstantie (CA).
- Gebruik nooit een tijdelijk of testcertificaat voor productieclusters als het certificaat is gemaakt met behulp van MakeCert.exe of een vergelijkbaar hulpprogramma.
- Gebruik een zelfondertekend certificaat voor testclusters, maar niet voor productieclusters.
Als het cluster niet veilig is, kan iedereen anoniem verbinding maken met het cluster en beheerbewerkingen uitvoeren. Daarom moet u altijd productieclusters beveiligen met behulp van X.509-certificaten of Windows-beveiliging.
Zie Certificaten voor een Service Fabric-cluster toevoegen of verwijderen voor meer informatie over het gebruik van X.509-certificaten.
Beveiligingsbeleid configureren
Service Fabric beveiligt ook de resources die worden gebruikt door toepassingen. Resources zoals bestanden, mappen en certificaten worden opgeslagen onder de gebruikersaccounts wanneer de toepassing wordt geïmplementeerd. Deze functie maakt het uitvoeren van toepassingen veiliger van elkaar, zelfs in een gedeelde gehoste omgeving.
Gebruik een Active Directory-domeingroep of -gebruiker: voer de service uit onder de referenties voor een Active Directory-gebruikers- of groepsaccount. Zorg ervoor dat u Active Directory on-premises binnen uw domein gebruikt en niet microsoft Entra-id. Toegang tot andere resources in het domein waaraan machtigingen zijn verleend met behulp van een domeingebruiker of -groep. Bijvoorbeeld resources zoals bestandsshares.
Wijs een beveiligingstoegangsbeleid toe voor HTTP- en HTTPS-eindpunten: geef de eigenschap SecurityAccessPolicy op om een RunAs-beleid toe te passen op een service wanneer het servicemanifest eindpuntbronnen declareert met HTTP. Poorten die zijn toegewezen aan de HTTP-eindpunten, zijn correct toegangsbeheerde lijsten voor het RunAs-gebruikersaccount waaronder de service wordt uitgevoerd. Wanneer het beleid niet is ingesteld, heeft http.sys geen toegang tot de service en kunt u fouten krijgen met aanroepen van de client.
Zie Beveiligingsbeleid configureren voor uw toepassing voor meer informatie over het gebruik van beveiligingsbeleid in een Service Fabric-cluster.
De Reliable Actors-beveiligingsconfiguratie implementeren
Service Fabric Reliable Actors is een implementatie van het ontwerppatroon van de actor. Net als bij elk softwareontwerppatroon is de beslissing om een specifiek patroon te gebruiken gebaseerd op of een softwareprobleem bij het patroon past.
Gebruik in het algemeen het ontwerppatroon van de actor om oplossingen te modelleren voor de volgende softwareproblemen of beveiligingsscenario's:
- Uw probleemruimte omvat een groot aantal (duizenden of meer) kleine, onafhankelijke en geïsoleerde eenheden van status en logica.
- U werkt met objecten met één thread waarvoor geen significante interactie van externe onderdelen is vereist, inclusief het uitvoeren van querystatussen in een set actoren.
- Uw actorinstanties blokkeren bellers met onvoorspelbare vertragingen niet door I/O-bewerkingen uit te geven.
In Service Fabric worden actoren geïmplementeerd in het Reliable Actors-toepassingsframework. Dit framework is gebaseerd op het actorpatroon en gebouwd op Service Fabric Reliable Services. Elke betrouwbare actorservice die u schrijft, is een gepartitioneerde stateful betrouwbare service.
Elke actor wordt gedefinieerd als een exemplaar van een actortype, identiek aan de manier waarop een .NET-object een exemplaar van een .NET-type is. Een actortype dat de functionaliteit van een calculator implementeert, kan bijvoorbeeld veel actoren van dat type bevatten die op verschillende knooppunten in een cluster worden gedistribueerd. Elk van de gedistribueerde actoren wordt uniek gekenmerkt door een actor-id.
Replicatorbeveiligingsconfiguraties worden gebruikt om het communicatiekanaal te beveiligen dat tijdens de replicatie wordt gebruikt. Met deze configuratie voorkomt u dat services elkaars replicatieverkeer zien en ervoor zorgen dat maximaal beschikbare gegevens veilig zijn. Standaard voorkomt een lege beveiligingsconfiguratiesectie replicatiebeveiliging. Replicatorconfiguraties configureren de replicator die verantwoordelijk is voor het zeer betrouwbaar maken van de status actorstatusprovider.
TLS configureren voor Azure Service Fabric
Het verificatieproces van de server verifieert de eindpunten voor clusterbeheer voor een beheerclient. De beheerclient herkent vervolgens dat deze met het echte cluster praat. Dit certificaat biedt ook een TLS voor de HTTPS-beheer-API en voor Service Fabric Explorer via HTTPS. U hebt voor uw cluster een aangepaste domeinnaam nodig. Wanneer u een certificaat van een certificeringsinstantie aanvraagt, moet de onderwerpnaam van het certificaat overeenkomen met de aangepaste domeinnaam die u voor uw cluster gebruikt.
Als u TLS voor een toepassing wilt configureren, moet u eerst een SSL/TLS-certificaat verkrijgen dat is ondertekend door een CA. De CA is een vertrouwde derde partij die certificaten uitgeeft voor TLS-beveiligingsdoeleinden. Als u nog geen SSL/TLS-certificaat hebt, moet u er een verkrijgen van een bedrijf dat SSL/TLS-certificaten verkoopt.
Het certificaat moet voldoen aan de volgende vereisten voor SSL/TLS-certificaten in Azure:
Het certificaat moet een persoonlijke sleutel bevatten.
Het certificaat moet worden gemaakt voor sleuteluitwisseling en kan worden geëxporteerd naar een pfx-bestand (Personal Information Exchange).
De onderwerpnaam van het certificaat moet overeenkomen met de domeinnaam die wordt gebruikt voor toegang tot uw cloudservice.
- Verkrijg een aangepaste domeinnaam die u wilt gebruiken voor toegang tot uw cloudservice.
- Vraag een certificaat aan bij een CA met een onderwerpnaam die overeenkomt met de aangepaste domeinnaam van uw service. Als uw aangepaste domeinnaam bijvoorbeeld contoso is.com moet het certificaat van uw CA de onderwerpnaam .contoso.com of www.contoso.com hebben.
Notitie
U kunt geen SSL/TLS-certificaat verkrijgen van een CA voor het cloudapp.net-domein.
Het certificaat moet minimaal 2048-bits versleuteling gebruiken.
Het HTTP-protocol is onbeveiligd en onderhevig aan afluisteraanvallen. Gegevens die via HTTP worden verzonden, worden verzonden als tekst zonder opmaak vanuit de webbrowser naar de webserver of tussen andere eindpunten. Aanvallers kunnen gevoelige gegevens onderscheppen en weergeven die via HTTP worden verzonden, zoals creditcardgegevens en accountaanmelding. Wanneer gegevens worden verzonden of gepost via een browser via HTTPS, zorgt SSL ervoor dat gevoelige informatie wordt versleuteld en beveiligd tegen onderschepping.
Zie TLS configureren voor een toepassing in Azure voor meer informatie over het gebruik van SSL/TLS-certificaten.
Netwerkisolatie en -beveiliging gebruiken met Azure Service Fabric
Stel een beveiligd cluster met 3 knooppunttypen in met behulp van de Azure Resource Manager-sjabloon als voorbeeld. Beheer het binnenkomende en uitgaande netwerkverkeer met behulp van de sjabloon en netwerkbeveiligingsgroepen.
De sjabloon heeft een NSG voor elk van de virtuele-machineschaalsets en wordt gebruikt om het verkeer in en uit de set te beheren. De regels worden standaard geconfigureerd om al het verkeer toe te staan dat nodig is voor de systeemservices en de toepassingspoorten die zijn opgegeven in de sjabloon. Bekijk deze regels en breng wijzigingen aan in uw behoeften, waaronder het toevoegen van nieuwe regels voor uw toepassingen.
Zie Algemene netwerkscenario's voor Azure Service Fabric voor meer informatie.
Azure Key Vault instellen voor beveiliging
Service Fabric gebruikt certificaten om verificatie en versleuteling te bieden voor het beveiligen van een cluster en de bijbehorende toepassingen.
Service Fabric maakt gebruik van X.509-certificaten om een cluster te beveiligen en toepassingsbeveiligingsfuncties te bieden. U gebruikt Azure Key Vault voor het beheren van certificaten voor Service Fabric-clusters in Azure. De Azure-resourceprovider waarmee de clusters worden gemaakt, haalt de certificaten op uit een sleutelkluis. De provider installeert vervolgens de certificaten op de VM's wanneer het cluster wordt geïmplementeerd in Azure.
Er bestaat een certificaatrelatie tussen Azure Key Vault, het Service Fabric-cluster en de resourceprovider die gebruikmaakt van de certificaten. Wanneer het cluster wordt gemaakt, wordt informatie over de certificaatrelatie opgeslagen in een sleutelkluis.
Er zijn twee basisstappen voor het instellen van een sleutelkluis:
Maak een resourcegroep die specifiek is bedoeld voor uw sleutelkluis.
U wordt aangeraden de sleutelkluis in een eigen resourcegroep te plaatsen. Met deze actie kunt u voorkomen dat uw sleutels en geheimen verloren gaan als andere resourcegroepen worden verwijderd, zoals opslag, berekening of de groep die uw cluster bevat. De resourcegroep die uw sleutelkluis bevat, moet zich in dezelfde regio bevinden als het cluster dat deze gebruikt.
Maak een sleutelkluis in de nieuwe resourcegroep.
De sleutelkluis moet zijn ingeschakeld voor implementatie. De rekenresourceprovider kan vervolgens de certificaten ophalen uit de kluis en installeren op de VM-exemplaren.
Zie Wat is Azure Key Vault? voor meer informatie over het instellen van een sleutelkluis.
Gebruikers toewijzen aan rollen
Nadat u de toepassingen voor uw cluster hebt gemaakt, wijst u uw gebruikers toe aan de rollen die worden ondersteund door Service Fabric: alleen-lezen en beheerder. U kunt deze rollen toewijzen met behulp van Azure Portal.
Notitie
Zie Op rollen gebaseerd toegangsbeheer voor Service Fabric-clients voor meer informatie over het gebruik van rollen in Service Fabric.
Azure Service Fabric ondersteunt twee typen toegangsbeheer voor clients die zijn verbonden met een Service Fabric-cluster: beheerder en gebruiker. De clusterbeheerder kan toegangsbeheer gebruiken om de toegang tot bepaalde clusterbewerkingen voor verschillende groepen gebruikers te beperken. Met toegangsbeheer wordt het cluster veiliger.
Aandachtspunten bij het hosten van niet-vertrouwde toepassingen in een Service Fabric-cluster
Zie Niet-vertrouwde toepassingen hosten in een Service Fabric-cluster.
Volgende stappen
- Controlelijst voor Service Fabric-beveiliging
- Uw Service Fabric-ontwikkelomgeving instellen.
- Meer informatie over service fabric-ondersteuningsopties.