Metodtips för Azure Service Fabric-säkerhet

Utöver den här artikeln kan du även läsa säkerhetschecklistan för Service Fabric för mer information.

Det är snabbt, enkelt och kostnadseffektivt att distribuera ett program i Azure. Innan du distribuerar ditt molnprogram till produktion kan du läsa vår lista över viktiga och rekommenderade metodtips för att implementera säkra kluster i ditt program.

Azure Service Fabric är en distribuerad systemplattform som gör det enkelt att paketera, distribuera och hantera skalbara och tillförlitliga mikrotjänster. Service Fabric tar också itu med betydande utmaningar vid utveckling och hantering av molnprogram. Utvecklare och administratörer kan undvika komplexa infrastrukturproblem och fokusera på att implementera verksamhetskritiska, krävande arbetsbelastningar som är skalbara, tillförlitliga och hanterbara.

För varje metodtips förklarar vi:

  • Vad bästa praxis är.
  • Därför bör du implementera bästa praxis.
  • Vad kan hända om du inte implementerar bästa praxis.
  • Hur du kan lära dig att implementera bästa praxis.

Vi rekommenderar följande metodtips för Azure Service Fabric-säkerhet:

  • Använd Azure Resource Manager-mallar och Service Fabric PowerShell-modulen för att skapa säkra kluster.
  • Använd X.509-certifikat.
  • Konfigurera säkerhetsprinciper.
  • Implementera säkerhetskonfigurationen Reliable Actors.
  • Konfigurera TLS för Azure Service Fabric.
  • Använd nätverksisolering och säkerhet med Azure Service Fabric.
  • Konfigurera Azure Key Vault för säkerhet.
  • Tilldela användare till roller.
  • Saker att tänka på om du är värd för program som inte är betrodda i ett Service Fabric-kluster.

Metodtips för att skydda dina kluster

Använd alltid ett säkert kluster:

  • Implementera klustersäkerhet med hjälp av certifikat.
  • Ge klientåtkomst (administratör och skrivskyddad) med hjälp av Microsoft Entra-ID.

Använd automatiserade distributioner:

  • Använd skript för att generera, distribuera och rulla över hemligheterna.
  • Lagra hemligheterna i Azure Key Vault och använd Microsoft Entra-ID för all annan klientåtkomst.
  • Kräv autentisering för mänsklig åtkomst till hemligheterna.

Tänk även på följande konfigurationsalternativ:

  • Skapa perimeternätverk (kallas även demilitariserade zoner, DMZ:er och skärmade undernät) med hjälp av Azure Network Security Groups (NSG:er).
  • Få åtkomst till virtuella klusterdatorer (VM) eller hantera klustret med hjälp av jump-servrar med Fjärrskrivbord Anslut ion.

Dina kluster måste skyddas för att förhindra att obehöriga användare ansluter, särskilt när ett kluster körs i produktion. Även om det är möjligt att skapa ett osäkert kluster kan anonyma användare ansluta till klustret om klustret exponerar hanteringsslutpunkter för det offentliga Internet.

Det finns tre scenarier för att implementera klustersäkerhet med hjälp av olika tekniker:

  • Säkerhet från nod till nod: Det här scenariot skyddar kommunikationen mellan de virtuella datorerna och datorerna i klustret. Den här typen av säkerhet säkerställer att endast de datorer som har behörighet att ansluta till klustret kan vara värdar för program och tjänster i klustret. I det här scenariot kan de kluster som körs på Azure eller fristående kluster som körs i Windows använda antingen certifikatsäkerhet eller Windows-säkerhet för Windows Server-datorer.
  • Säkerhet från klient till nod: Det här scenariot skyddar kommunikationen mellan en Service Fabric-klient och de enskilda noderna i klustret.
  • Rollbaserad åtkomstkontroll för Service Fabric (Service Fabric RBAC): I det här scenariot används separata identiteter (certifikat, Microsoft Entra-ID och så vidare) för varje administratörs- och användarklientroll som har åtkomst till klustret. Du anger rollidentiteterna när du skapar klustret.

Kommentar

Säkerhetsrekommendations för Azure-kluster: Använd Microsoft Entra-säkerhet för att autentisera klienter och certifikat för nod-till-nod-säkerhet.

Information om hur du konfigurerar ett fristående Windows-kluster finns i Konfigurera inställningar för ett fristående Windows-kluster.

Använd Azure Resource Manager-mallar och Service Fabric PowerShell-modulen för att skapa ett säkert kluster. Stegvisa instruktioner för att skapa ett säkert Service Fabric-kluster med hjälp av Azure Resource Manager-mallar finns i Skapa ett Service Fabric-kluster.

Använd Azure Resource Manager-mallen:

  • Anpassa klustret med hjälp av mallen för att konfigurera hanterad lagring för virtuella virtuella hårddiskar (VHD).
  • Skapa ändringar i resursgruppen med hjälp av mallen för enkel konfigurationshantering och granskning.

Behandla klusterkonfigurationen som kod:

  • Var noggrann när du kontrollerar distributionskonfigurationerna.
  • Undvik att använda implicita kommandon för att ändra dina resurser direkt.

Många aspekter av Service Fabric-programmets livscykel kan automatiseras. Service Fabric PowerShell-modulen automatiserar vanliga uppgifter för att distribuera, uppgradera, ta bort och testa Azure Service Fabric-program. Hanterade API:er och HTTP-API:er för programhantering är också tillgängliga.

Använda X.509-certifikat

Skydda alltid dina kluster med hjälp av X.509-certifikat eller Windows-säkerhet. Säkerhet konfigureras endast vid tidpunkten för klusterskapande. Det går inte att aktivera säkerheten när klustret har skapats.

Om du vill ange ett klustercertifikat anger du värdet för egenskapen ClusterCredentialType till X509. Om du vill ange ett servercertifikat för externa anslutningar anger du egenskapen ServerCredentialType till X509.

Följ dessutom dessa metoder:

  • Skapa certifikaten för produktionskluster med hjälp av en korrekt konfigurerad Windows Server-certifikattjänst. Du kan också hämta certifikaten från en godkänd certifikatutfärdare (CA).
  • Använd aldrig ett tillfälligt certifikat eller testcertifikat för produktionskluster om certifikatet skapades med hjälp av MakeCert.exe eller ett liknande verktyg.
  • Använd ett självsignerat certifikat för testkluster, men inte för produktionskluster.

Om klustret är osäkert kan vem som helst ansluta till klustret anonymt och utföra hanteringsåtgärder. Därför skyddar du alltid produktionskluster med hjälp av X.509-certifikat eller Windows-säkerhet.

Mer information om hur du använder X.509-certifikat finns i Lägga till eller ta bort certifikat för ett Service Fabric-kluster.

Konfigurera säkerhetsprinciper

Service Fabric skyddar även de resurser som används av program. Resurser som filer, kataloger och certifikat lagras under användarkontona när programmet distribueras. Den här funktionen gör program som körs säkrare från varandra, även i en delad värdmiljö.

  • Använd en Active Directory-domängrupp eller -användare: Kör tjänsten under autentiseringsuppgifterna för ett Active Directory-användar- eller gruppkonto. Se till att använda Active Directory lokalt i din domän och inte Microsoft Entra-ID. Få åtkomst till andra resurser i domänen som har beviljats behörigheter med hjälp av en domänanvändare eller grupp. Till exempel resurser som filresurser.

  • Tilldela en säkerhetsåtkomstprincip för HTTP- och HTTPS-slutpunkter: Ange egenskapen SecurityAccessPolicy för att tillämpa en RunAs-princip på en tjänst när tjänstmanifestet deklarerar slutpunktsresurser med HTTP. Portar som allokeras till HTTP-slutpunkterna är korrekt åtkomstkontrollerade listor för det RunAs-användarkonto som tjänsten körs under. När principen inte har angetts har http.sys inte åtkomst till tjänsten och du kan få fel med anrop från klienten.

Information om hur du använder säkerhetsprinciper i ett Service Fabric-kluster finns i Konfigurera säkerhetsprinciper för ditt program.

Implementera säkerhetskonfigurationen Reliable Actors

Service Fabric Reliable Actors är en implementering av aktörens designmönster. Precis som med alla mönster för programvarudesign baseras beslutet att använda ett specifikt mönster på om ett programvaruproblem passar mönstret.

I allmänhet använder du aktörens designmönster för att modellera lösningar för följande programvaruproblem eller säkerhetsscenarier:

  • Ditt problemutrymme omfattar ett stort antal (tusentals eller fler) små, oberoende och isolerade enheter med tillstånd och logik.
  • Du arbetar med entrådade objekt som inte kräver betydande interaktion från externa komponenter, inklusive frågetillstånd för en uppsättning aktörer.
  • Dina aktörsinstanser blockerar inte uppringare med oförutsägbara fördröjningar genom att utfärda I/O-åtgärder.

I Service Fabric implementeras aktörer i programramverket Reliable Actors. Det här ramverket baseras på aktörsmönstret och bygger på Service Fabric Reliable Services. Varje tillförlitlig aktörstjänst som du skriver är en partitionerad tillståndskänslig tillförlitlig tjänst.

Varje aktör definieras som en instans av en aktörstyp, identisk med hur ett .NET-objekt är en instans av en .NET-typ. En aktörstyp som implementerar funktionerna i en kalkylator kan till exempel ha många aktörer av den typen som distribueras på olika noder i ett kluster. Var och en av de distribuerade aktörerna kännetecknas unikt av en aktörsidentifierare.

Replikeringssäkerhetskonfigurationer används för att skydda kommunikationskanalen som används under replikeringen. Den här konfigurationen förhindrar att tjänster ser varandras replikeringstrafik och säkerställer att data med hög tillgänglighet är säkra. Som standard förhindrar ett tomt säkerhetskonfigurationsavsnitt replikeringssäkerhet. Replikatorkonfigurationer konfigurerar replikatorn som ansvarar för att göra aktörens tillstånd för tillståndsprovidern mycket tillförlitligt.

Konfigurera TLS för Azure Service Fabric

Serverautentiseringsprocessen autentiserar klusterhanteringsslutpunkterna till en hanteringsklient. Hanteringsklienten inser sedan att den pratar med det verkliga klustret. Det här certifikatet tillhandahåller även en TLS för HTTPS-hanterings-API:et och för Service Fabric Explorer via HTTPS. Du måste skaffa ett anpassat domännamn för ditt kluster. När du begär ett certifikat från en certifikatutfärdare måste certifikatets ämnesnamn matcha det anpassade domännamn som du använder för klustret.

För att konfigurera TLS för ett program måste du först skaffa ett SSL/TLS-certifikat som har signerats av en certifikatutfärdare. Certifikatutfärdare är en betrodd tredje part som utfärdar certifikat för TLS-säkerhetsändamål. Om du inte redan har ett SSL/TLS-certifikat måste du skaffa ett från ett företag som säljer SSL-/TLS-certifikat.

Certifikatet måste uppfylla följande krav för SSL/TLS-certifikat i Azure:

  • Certifikatet måste innehålla en privat nyckel.

  • Certifikatet måste skapas för nyckelutbyte och kunna exporteras till en fil för personligt informationsutbyte (.pfx).

  • Certifikatets ämnesnamn måste matcha domännamnet som används för att komma åt molntjänsten.

    • Skaffa ett anpassat domännamn som ska användas för åtkomst till din molntjänst.
    • Begär ett certifikat från en certifikatutfärdare med ett ämnesnamn som matchar tjänstens anpassade domännamn. Om ditt anpassade domännamn till exempel är contoso.com ska certifikatet från certifikatutfärdare ha ämnesnamnet .contoso.com eller www.contoso.com.

    Kommentar

    Du kan inte hämta ett SSL/TLS-certifikat från en certifikatutfärdare för cloudapp.net-domänen.

  • Certifikatet måste använda minst 2 048-bitars kryptering.

HTTP-protokollet är osäkert och föremål för avlyssningsattacker. Data som överförs via HTTP skickas som oformaterad text från webbläsaren till webbservern eller mellan andra slutpunkter. Angripare kan fånga upp och visa känsliga data som skickas via HTTP, till exempel kreditkortsinformation och kontoinloggningar. När data skickas eller publiceras via en webbläsare via HTTPS ser SSL till att känslig information krypteras och skyddas från avlyssning.

Mer information om hur du använder SSL/TLS-certifikat finns i Konfigurera TLS för ett program i Azure.

Använda nätverksisolering och säkerhet med Azure Service Fabric

Konfigurera ett 3 nodetype-säkert kluster med hjälp av Azure Resource Manager-mallen som exempel. Kontrollera inkommande och utgående nätverkstrafik med hjälp av mallen och nätverkssäkerhetsgrupper.

Mallen har en NSG för var och en av vm-skalningsuppsättningarna och används för att styra trafiken in och ut ur uppsättningen. Reglerna konfigureras som standard för att tillåta all trafik som krävs för systemtjänsterna och de programportar som anges i mallen. Granska dessa regler och gör ändringar som passar dina behov, inklusive att lägga till nya regler för dina program.

Mer information finns i Vanliga nätverksscenarier för Azure Service Fabric.

Konfigurera Azure Key Vault för säkerhet

Service Fabric använder certifikat för att tillhandahålla autentisering och kryptering för att skydda ett kluster och dess program.

Service Fabric använder X.509-certifikat för att skydda ett kluster och för att tillhandahålla programsäkerhetsfunktioner. Du använder Azure Key Vault för att hantera certifikat för Service Fabric-kluster i Azure. Azure-resursprovidern som skapar klustren hämtar certifikaten från ett nyckelvalv. Providern installerar sedan certifikaten på de virtuella datorerna när klustret distribueras i Azure.

Det finns en certifikatrelation mellan Azure Key Vault, Service Fabric-klustret och resursprovidern som använder certifikaten. När klustret skapas lagras information om certifikatrelationen i ett nyckelvalv.

Det finns två grundläggande steg för att konfigurera ett nyckelvalv:

  1. Skapa en resursgrupp specifikt för ditt nyckelvalv.

    Vi rekommenderar att du placerar nyckelvalvet i en egen resursgrupp. Den här åtgärden hjälper till att förhindra förlust av nycklar och hemligheter om andra resursgrupper tas bort, till exempel lagring, beräkning eller den grupp som innehåller klustret. Resursgruppen som innehåller ditt nyckelvalv måste finnas i samma region som klustret som använder det.

  2. Skapa ett nyckelvalv i den nya resursgruppen.

    Nyckelvalvet måste vara aktiverat för distribution. Beräkningsresursprovidern kan sedan hämta certifikaten från valvet och installera dem på de virtuella datorinstanserna.

Mer information om hur du konfigurerar ett nyckelvalv finns i Vad är Azure Key Vault?.

Tilldela användare till roller

När du har skapat programmen för att representera klustret tilldelar du användarna till de roller som stöds av Service Fabric: skrivskyddad och administratör. Du kan tilldela dessa roller med hjälp av Azure-portalen.

Kommentar

Mer information om hur du använder roller i Service Fabric finns i Rollbaserad åtkomstkontroll för Service Fabric-klienter.

Azure Service Fabric stöder två åtkomstkontrolltyper för klienter som är anslutna till ett Service Fabric-kluster: administratör och användare. Klusteradministratören kan använda åtkomstkontroll för att begränsa åtkomsten till vissa klusteråtgärder för olika användargrupper. Åtkomstkontroll gör klustret säkrare.

Saker att tänka på om värd för ej betrodda program i ett Service Fabric-kluster

Se Värd för ej betrodda program i ett Service Fabric-kluster.

Nästa steg