Överväganden för nyckel- och hemlighetshantering i Azure


Skydd av kryptografiska nycklar kan ofta förbises eller implementeras dåligt. Det är särskilt svårt att hantera nycklar på ett säkert sätt med programkod och det kan leda till misstag som att oavsiktligt publicera känsliga åtkomstnycklar till offentliga koddatabaser.

Användning av identitetsbaserade alternativ för åtkomstkontroll för lagring rekommenderas. Det här alternativet använder rollbaserade åtkomstkontroller (RBAC) över lagringsresurser. Använd RBAC för att tilldela behörigheter till användare, grupper och program i ett visst omfång. Identitetssystem som Azure Active Directory (Azure AD) erbjuder säker och användbar upplevelse för åtkomstkontroll med inbyggda mekanismer för hantering av nyckelrotation, övervakning av avvikelser med mera.

Anteckning

Bevilja åtkomst baserat på principen om minsta behörighet. Risken för att ge fler privilegier än nödvändigt kan leda till data komprometterade.

Anta att du behöver lagra känsliga data i Azure Blob Storage. Du kan använda Azure AD och RBAC för att autentisera ett huvudnamn för tjänsten som har de behörigheter som krävs för att få åtkomst till lagringen. Mer information om funktionen finns i Auktorisera åtkomst till blobar och köer med hjälp av Azure Active Directory.

Tips

Att använda SAS-token är ett vanligt sätt att kontrollera åtkomst. SAS-token skapas med hjälp av tjänstägarens Azure AD-autentiseringsuppgifter. Token skapas per resurs och du kan använda Azure RBAC för att begränsa åtkomsten. SAS-token har en tidsgräns som styr exponeringsfönstret. Här är resurserna för föregående exempel:

GitHub logotypGitHub: Azure Cognitive Services-referensimplementering.

Designöverväganden beskrivs i Taltranskribering med Azure Cognitive Services.

Nyckellagring

För att förhindra säkerhetsläckor lagrar du följande nycklar och hemligheter i ett säkert arkiv:

  • API-nycklar
  • Databasanslutningssträngar
  • Datakrypteringsnycklar
  • Lösenord

Känslig information ska inte lagras i programkoden eller konfigurationen. En angripare som får läsbehörighet till källkoden bör inte få kunskap om program- och miljöspecifika hemligheter.

Lagra alla programnycklar och hemligheter i en hanterad nyckelvalvstjänst, till exempel Azure Key Vaulthashicorp-valv. Lagring av krypteringsnycklar i ett hanterat arkiv begränsar åtkomsten ytterligare. Arbetsbelastningen kan komma åt hemligheterna genom att autentisera mot Key Vault med hjälp av hanterade identiteter. Den åtkomsten kan begränsas med Azure RBAC.

Se till att inga nycklar och hemligheter för någon miljötyp (Dev, Test eller Produktion) lagras i programkonfigurationsfiler eller CI/CD-pipelines. Utvecklare kan använda Visual Studio Connected Services eller lokala filer för att komma åt autentiseringsuppgifter.

Ha processer som regelbundet identifierar exponerade nycklar i programkoden. Ett alternativ är Skanner för autentiseringsuppgifter. Information om hur du konfigurerar uppgiften finns i Uppgiften Skanner för autentiseringsuppgifter.

Har du en åtkomstmodell för nyckelvalv för att bevilja åtkomst till nycklar och hemligheter?


Du kan skydda åtkomsten till dina nyckelvalv genom att kontrollera behörigheter till nycklar och hemligheter via en åtkomstmodell. Mer information finns i Översikt över Åtkomstmodell.

Föreslagna åtgärder

Överväg att Azure Key Vault för hemligheter och nycklar.

Driftöverväganden

Vem ansvarar för att hantera nycklar och hemligheter i programkontexten?


Nyckel- och certifikatrotation är ofta orsaken till programavbrott. Även Azure har haft utgångna certifikat. Det är viktigt att rotationen av nycklar och certifikat schemaläggs och operationaliseras fullständigt. Rotationsprocessen bör automatiseras och testas för att säkerställa effektiviteten. Azure Key Vault stöder nyckelrotation och granskning.

Det centrala SecOps-teamet ger vägledning om hur nycklar och hemligheter hanteras (styrning). DevOps-teamet ansvarar för att hantera programrelaterade nycklar och hemligheter.

Vilka typer av nycklar och hemligheter används och hur genereras de?


Följande metoder är:

  • Microsoft-hanterade nycklar
  • Kund hanterade nycklar
  • Bring Your Own Key

Beslutet styrs ofta av säkerhets-, efterlevnads- och specifika krav på dataklassificering. Utveckla en tydlig förståelse för dessa krav för att fastställa den lämpligaste typen av nycklar.

Roteras nycklar och hemligheter ofta?


För att minska attackvektorerna kräver hemligheter rotation och är benägna att förfalla. Processen bör automatiseras och köras utan mänsklig interaktion. Lagring av dem i ett hanterat lager förenklar dessa operativa uppgifter genom att hantera nyckelrotation.

Ersätt hemligheter när de har nått slutet av sin aktiva livslängd eller om de har komprometterats. Förnyade certifikat bör också använda en ny nyckel. Ha en process för situationer där nycklar komprometteras (läcks) och behöver återskapas på begäran. Det kan till exempel vara rotering av hemligheter SQL Database.

Mer information finns i Key Vault nyckelrotation.

Genom att använda hanterade identiteter tar du bort driftskostnaderna för att lagra hemligheter eller certifikat för tjänstens huvudnamn.

Övervakas förfallodatumen för SSL/TLS-certifikat och finns det processer för att förnya dem?


En vanlig orsak till programavbrott är att SSL/TLS-certifikat har upphört att gälla.

Undvik avbrott genom att spåra förfallodatum för SSL/TLS-certifikat och förnya dem i rätt tid. Vi rekommenderar att processen automatiseras, även om detta ofta är beroende av en certifikatutfärdare (CA). Om det inte är automatiserat använder du aviseringar för att se till att förfallodatumen inte går obemärkt förbi.

Föreslagna åtgärder

Implementera en process för SSL-certifikathantering och den automatiserade förnyelseprocessen med Azure Key Vault.

Läs mer

Självstudie: Konfigurera automatisk rotering av certifikat i Key Vault

Identitets- och åtkomsthanteringstjänster autentiserar och beviljar behörighet till följande grupper:

  • Användare
  • Partner
  • Kunder
  • Program
  • Tjänster
  • Andra entiteter

Säkerhetsöverväganden finns i Överväganden för identitets- och åtkomsthantering i Azure.

Tillbaka till huvudartikeln: Dataskydd

Nästa steg

Skydda vilodata och under överföring via kryptering. Se till att du använder standardkrypteringsalgoritmer.

Kryptering är ett viktigt verktyg för säkerhet eftersom det begränsar åtkomsten. Det är dock lika viktigt att skydda hemligheterna (nycklar, certifikat) som ger åtkomst till data.

Huvudpunkter

  • Använd identitetsbaserad åtkomstkontroll i stället för kryptografiska nycklar.
  • Använd standardalgoritmer och rekommenderade krypteringsalgoritmer.
  • Lagra nycklar och hemligheter i tjänsten för hanterade nyckelvalv. Kontrollera behörigheter med en åtkomstmodell.
  • Rotera nycklar och andra hemligheter ofta. Ersätt utgångna eller komprometterade hemligheter.

Identitetsbaserad åtkomstkontroll

Organisationer bör inte utveckla och underhålla sina egna krypteringsalgoritmer. Det finns många sätt att ge åtkomstkontroll över tillgängliga lagringsresurser, till exempel:

  • Delade nycklar
  • Delade signaturer
  • Anonym åtkomst
  • Identitetsproviderbaserade metoder

Det finns redan säkra standarder på marknaden och bör föredras. AES bör användas som symmetriskt blockchiffrering, AES-128AES-192 , och är AES-256 godtagbara. Krypto-API:er som är inbyggda i operativsystem bör användas där det är möjligt, i stället för icke-plattformsoberoende kryptobibliotek. För .NET kontrollerar du att du följer .NET-kryptografimodellen.

Prioriterar du autentisering via identitetstjänster för en arbetsbelastning över kryptografiska nycklar?