Metodtips för att skydda hemligheter
Den här artikeln innehåller vägledning om hur du skyddar dina hemligheter och minskar risken för obehörig åtkomst. Följ den här vägledningen för att se till att du inte lagrar känslig information, till exempel autentiseringsuppgifter i kod, GitHub-lagringsplatser, loggar, CI/CD-pipelines (kontinuerlig integrering/kontinuerlig distribution) och så vidare. Vägledningen i den här artikeln sammanställs från rekommendationer från enskilda tjänster samt från Microsoft Cloud Security Benchmark (MCSB).
Allmänna metodtips
I dagens digitala landskap är det av största vikt att skydda känslig information som programautentiseringsuppgifter och hemligheter. Ett intrång kan leda till allvarliga konsekvenser, inklusive dataförlust, ekonomiska påföljder och skada på ryktet. Det är viktigt att implementera en omfattande strategi för hemlig hantering för att minska dessa risker.
Utföra en granskning för att identifiera hemligheter
Innan du kan skydda dina hemligheter måste du veta var de finns. Genom att utföra en grundlig granskning av dina system och program kan du identifiera all känslig information som behöver skydd. Detta omfattar lösenord, API-nycklar, niska veze och andra autentiseringsuppgifter. Regelbundna granskningar säkerställer att nya hemligheter redovisas och att befintliga hanteras korrekt.
Det är viktigt att observera att även dynamiskt skapade hemligheter, till exempel OAuth-token, som kan vara tillfälliga, fortfarande måste skyddas med samma stränghet som långsiktiga hemligheter.
Undvik hårdkodningshemligheter
Att bädda in hemligheter direkt i koden eller konfigurationsfilerna är en betydande säkerhetsrisk. Om din kodbas har komprometterats, så är även dina hemligheter. Använd i stället miljövariabler eller konfigurationshanteringsverktyg som håller hemligheter borta från källkoden. Den här metoden minimerar risken för oavsiktlig exponering och förenklar processen med att uppdatera hemligheter.
Om du integrerar hemlig hämtning i din automatiserade distributionspipeline och använder mönster för hemlig inmatning kan du förhindra att hemligheter oavsiktligt exponeras i loggar eller versionskontroll, vilket ytterligare förbättrar säkerheten för distributionsprocessen.
Se Rekommendationer för att skydda programhemligheter
Använda säkra nyckellager
Genom att använda säkra nyckellager ser du till att dina hemligheter lagras på en säker och krypterad plats. Tjänster som Azure Key Vault och Azure Managed HSM tillhandahåller robusta säkerhetsfunktioner, inklusive åtkomstkontroll, loggning och automatisk rotation. Den här metoden centraliserar hanteringen av dina hemligheter och minskar risken för obehörig åtkomst.
För ännu större säkerhet, särskilt för mycket känsliga eller kritiska hemligheter, bör du överväga att kryptera hemligheten med en nyckellagring i en maskinvarusäkerhetsmodell (HSM), som erbjuder förbättrat skydd jämfört med programvarubaserade hemliga butiker. En översikt över alla viktiga hanteringserbjudanden i Azure och vägledning om vilka du kan välja finns i Nyckelhantering i Azure och Så här väljer du rätt lösning för nyckelhantering.
Implementera verktyg för hemlig genomsökning
Genom att regelbundet söka igenom din kodbas efter inbäddade hemligheter kan du förhindra oavsiktlig exponering. Verktyg som Azure DevOps Credential Scanner och GitHub secret scanning-funktionen kan automatiskt identifiera och varna dig för hemligheter som finns i dina lagringsplatser. Genom att integrera dessa verktyg i CI/CD-pipelinen säkerställs kontinuerlig övervakning. Det är viktigt att behandla alla hemligheter som hittas av dessa genomsökningsverktyg som komprometterade, vilket innebär att den omedelbart bör återkallas och ersättas för att upprätthålla integriteten i din säkerhetsstatus.
Utnyttja hanterade identiteter
Hanterade identiteter i Azure är ett säkert sätt för program att autentisera till Azure-tjänster utan att lagra autentiseringsuppgifter i koden. Genom att aktivera hanterade identiteter för Azure-resurser kan du på ett säkert sätt komma åt Azure Key Vault och andra tjänster, vilket minskar behovet av att hantera hemligheter manuellt. Den här metoden minimerar inte bara skapandet av hemligheter utan minskar också ytan för potentiella överträdelser, eftersom ansvaret för att hantera autentiseringsuppgifter delegeras till plattformen.
Tillämpa detaljerad åtkomstkontroll
Följ principen om minsta behörighet genom att tillämpa detaljerad åtkomstkontroll på dina hemligheter. Använd rollbaserad åtkomstkontroll i Azure (RBAC) för att säkerställa att endast auktoriserade entiteter har åtkomst till specifika hemligheter. Granska och uppdatera åtkomstbehörigheter regelbundet för att förhindra obehörig åtkomst. Det är också lämpligt att implementera distinkta roller som användare, administratör och granskare för att hantera åtkomst till hemligheter, vilket säkerställer att endast betrodda identiteter har rätt behörighetsnivå.
Se RBAC-guiden för Azure Key Vault.
Rotera hemligheter regelbundet
Hemligheter är känsliga för läckage eller exponering över tid. Att regelbundet rotera dina hemligheter minskar risken för obehörig åtkomst. Du kan rotera hemligheter i Azure Key Vault för vissa hemligheter. För de som inte kan roteras automatiskt upprättar du en manuell rotationsprocess och ser till att de rensas när de inte längre används.
Om du automatiserar processen för hemlig rotation och skapar redundans i din hemliga hantering kan du se till att rotationen inte stör tjänstens tillgänglighet. Genom att implementera logik för återförsök och samtidiga åtkomstmönster i koden kan du minimera problem under rotationsfönstret.
Övervaka och logga åtkomst
Aktivera loggning och övervakning för ditt hemliga hanteringssystem för att spåra åtkomst och användning. Använd Key Vault-loggning och/eller tjänster som Azure Monitor och Azure Event Grid för att övervaka alla aktiviteter som är relaterade till dina hemligheter. Detta ger insyn i vem som har åtkomst till dina hemligheter och hjälper till att identifiera misstänkt beteende eller potentiella säkerhetsincidenter. Att upprätthålla detaljerade spårningsloggar är viktigt för att inspektera och verifiera åtkomst till hemligheter, vilket kan bidra till att förhindra identitetsstöld, undvika avvisning och minska onödig exponering.
Implementera nätverksisolering
Minska exponeringen av dina hemligheter genom att implementera nätverksisolering. Konfigurera brandväggar och nätverkssäkerhetsgrupper för att begränsa åtkomsten till dina nyckelvalv. Tillåt endast betrodda program och tjänster att komma åt dina hemligheter, minimera attackytan och förhindra obehörig åtkomst. Överväg dessutom att använda flera nyckelvalv för att skapa isoleringsgränser för olika komponenter, vilket säkerställer att om en komponent komprometteras kan den inte få kontroll över andra hemligheter eller hela arbetsbelastningen.
Kryptera hemligheter i vila och under överföring
Se till att dina hemligheter är krypterade både i vila och under överföring. Azure Key Vault lagrar hemligheter på ett säkert sätt med hjälp av kuvertkryptering, där datakrypteringsnycklar (DEK) krypteras av nyckelkrypteringsnycklar (KEK:er), vilket ger ytterligare ett säkerhetslager. Den här metoden förbättrar skyddet mot obehörig åtkomst. Använd dessutom säkra kommunikationsprotokoll som HTTPS för att kryptera data under överföring mellan dina program och nyckelvalvet, vilket säkerställer att dina hemligheter skyddas under både lagring och överföring.
I Azure implementeras vilande kryptering i olika tjänster med hjälp av AES 256-kryptering, medan data under överföring skyddas via TLS och MACsec för att förhindra obehörig åtkomst under överföringen. Dessa krypteringsmetoder ger omfattande skydd för dina data, oavsett om de lagras eller överförs mellan system. Mer information finns i Kryptering i vila och under överföring.
Säker distribution av hemligheter
När du distribuerar hemligheter ska du se till att de delas på ett säkert sätt inom och utanför organisationen. Använd verktyg som är utformade för säker delning och inkludera hemliga återställningsprocedurer i dina haveriberedskapsplaner. Om en nyckel komprometteras eller läcker bör den återskapas omedelbart. För att ytterligare förbättra säkerheten använder du distinkta nycklar för varje konsument i stället för att dela nycklar, även om de har liknande åtkomstmönster. Den här metoden förenklar nyckelhantering och återkallande, vilket säkerställer att komprometterade nycklar kan återkallas utan att påverka andra konsumenter.
Metodtips för tjänstspecifika
Enskilda tjänster kan ha ytterligare metodtips och vägledning för att skydda hemligheter. Nedan följer några exempel:
- API Management: Använd namngivna värden i Azure API Management-principer med Key Vault-integrering
- App Service: Använda Key Vault-referenser för App Service och Azure Functions
- Application Gateway: Konfigurera en Application Gateway med TLS-avslutning med hjälp av Azure-portalen
- Automation: Hantera autentiseringsuppgifter i Azure Automation
- Azure App Configuration: Självstudie: Använda Key Vault-referenser i en ASP.NET Core-app
- Azure Bot Service: Azure Bot Service-kryptering för vilande data
- Azure Center for SAP-lösningar: Azure Center for SAP Solutions – Distribution – Förbereda nätverket för distribution
- Azure Communications Gateway: Skapa och lagra hemligheter
- Azure Communications Service: Skapa och hantera åtkomsttoken
- Azure Database for PostgreSQL – flexibel server: Azure Database for PostgreSQL – flexibel serverdatakryptering med en kundhanterad nyckel
- Azure Databricks: Key Vault-integrering i Databricks
- Azure DevTest Labs: Aktivera användartilldelade hanterade identiteter på virtuella labbdatorer i Azure DevTest Labs
- Azure Front Door: Azure Front Door-hemligheter
- Azure HDInsight på AKS: Resurskrav – Skapa Azure Key Vault
- Azure Information Protection: Information om Stöd för Azure Information Protection Key Vault
- Azure Kubernetes Service (AKS): CSI Secret Store
- Azure-hanterade program: Åtkomst till Key Vault-hemlighet när du distribuerar Azure Managed Applications
- Azure OpenAI: Utveckla Azure AI-tjänstprogram med Key Vault
- Azure Pipelines: Skydda hemligheter i Azure Pipelines
- Azure Purview: Autentiseringsuppgifter för källautentisering i Microsoft Purview
- Azure SignalR Service: Nyckelvalvshemlighetsreferens i URL-mallinställningar
- Azure Service Bus: Autentisera och auktorisera ett program med Microsoft Entra-ID för åtkomst till Azure Service Bus-entiteter
- Azure Stack Edge: Hantera Azure Stack Edge-hemligheter med hjälp av Azure Key Vault
- Azure Stack Hub: Rotera hemligheter
- Azure Web PubSub: Lägg till ett anpassat certifikat
- Säkerhetskopiering: Konfigurera ett valv för kryptering med hjälp av kundhanterade nycklar
- Cognitive Services: Utveckla Azure Cognitive Services-program med Key Vault
- Data Factory: Lagra autentiseringsuppgifter i Azure Key Vault
- ExpressRoute: Konfigurera MACsec-kryptering för ExpressRoute Direct.
- Funktioner: Använda Key Vault-referenser för App Service och Azure Functions
- Key Vault: Om Azure Key Vault-hemligheter
- Logic Apps: Standardinställningar för Logic Apps-appar
- Mašinsko učenje Service: Använda hemligheter för autentiseringsuppgifter i Azure Mašinsko učenje-jobb
- SQL IaaS: Konfigurera Azure Key Vault-integrering för SQL Server på virtuella Azure-datorer (Resource Manager)
- Lagring: Hantera lagringskontonycklar med Key Vault och Azure CLI
Nästa steg
Att minimera säkerhetsrisken är ett delat ansvar. Du måste vara proaktiv när du vidtar åtgärder för att skydda dina arbetsbelastningar. Läs mer om delat ansvar i molnet.
Se Metodtips och mönster för Säkerhet i Azure för mer metodtips för säkerhet som du kan använda när du utformar, distribuerar och hanterar dina molnlösningar med hjälp av Azure.