Aanbevolen procedures voor het beveiligen van geheimen
Dit artikel bevat richtlijnen voor het beveiligen van uw geheimen en het verminderen van het risico op onbevoegde toegang. Volg deze richtlijnen om ervoor te zorgen dat u geen gevoelige informatie opslaat, zoals referenties in code, GitHub-opslagplaatsen, logboeken, CI/CD-pijplijnen (continue integratie/continue implementatie), enzovoort. De richtlijnen in dit artikel worden samengesteld op basis van aanbevelingen van afzonderlijke services, evenals van de Microsoft Cloud Security Benchmark (MCSB).
Algemene aanbevolen procedures
In het digitale landschap van vandaag is het beveiligen van gevoelige informatie, zoals toepassingsreferenties en geheimen, van cruciaal belang. Een schending kan leiden tot ernstige gevolgen, waaronder gegevensverlies, financiële sancties en schade aan reputatie. Het implementeren van een uitgebreide strategie voor geheimbeheer is essentieel om deze risico's te beperken.
Een controle uitvoeren om geheimen te identificeren
Voordat u uw geheimen kunt beveiligen, moet u weten waar ze zich bevinden. Het uitvoeren van een grondige controle van uw systemen en toepassingen helpt bij het identificeren van alle gevoelige informatie die bescherming nodig heeft. Dit omvat wachtwoorden, API-sleutels, verbindingsreeks s en andere referenties. Regelmatige controles zorgen ervoor dat nieuwe geheimen worden verantwoordelijk en dat bestaande geheimen correct worden beheerd.
Het is belangrijk te weten dat zelfs dynamisch gemaakte geheimen, zoals OAuth-tokens, die tijdelijk kunnen zijn, nog steeds moeten worden beveiligd met dezelfde rigor als langetermijngeheimen.
Coderen van geheimen voorkomen
Het rechtstreeks insluiten van geheimen in uw code- of configuratiebestanden is een aanzienlijk beveiligingsrisico. Als uw codebase is gecompromitteerd, zijn dit uw geheimen. Gebruik in plaats daarvan omgevingsvariabelen of hulpprogramma's voor configuratiebeheer die geheimen buiten uw broncode houden. Deze procedure minimaliseert het risico op onbedoelde blootstelling en vereenvoudigt het proces van het bijwerken van geheimen.
Bovendien kan het integreren van geheim ophalen in uw geautomatiseerde implementatiepijplijn en het gebruik van geheime injectiepatronen voorkomen dat geheimen per ongeluk worden weergegeven in logboeken of versiebeheer, waardoor de beveiliging van uw implementatieproces verder wordt verbeterd.
Zie Aanbevelingen voor het beveiligen van toepassingsgeheimen
Beveiligde sleutelarchieven gebruiken
Door gebruik te maken van beveiligde sleutelarchieven, zorgt u ervoor dat uw geheimen worden opgeslagen op een veilige, versleutelde locatie. Services zoals Azure Key Vault en Azure Managed HSM bieden robuuste beveiligingsfuncties, waaronder toegangsbeheer, logboekregistratie en automatische rotatie. Deze aanpak centraliseert het beheer van uw geheimen en vermindert het risico op onbevoegde toegang.
Voor nog meer beveiliging, met name voor zeer gevoelige of kritieke geheimen, kunt u overwegen het geheim te versleutelen met een sleutelarchief in een HSM (Hardware Security Model), dat verbeterde beveiliging biedt in vergelijking met op software gebaseerde geheime winkels. Zie Sleutelbeheer in Azure en de juiste oplossing voor sleutelbeheer kiezen voor een overzicht van alle aanbiedingen voor sleutelbeheer in Azure en richtlijnen.
Hulpprogramma's voor geheim scannen implementeren
Regelmatig scannen van uw codebase voor ingesloten geheimen kan onbedoelde blootstelling voorkomen. Hulpprogramma's zoals Azure DevOps Credential Scanner en de functie voor het scannen van GitHub-geheimen kunnen u automatisch detecteren en waarschuwen voor geheimen in uw opslagplaatsen. Het integreren van deze hulpprogramma's in uw CI/CD-pijplijn zorgt voor continue bewaking. Het is van cruciaal belang om elk geheim te behandelen dat door deze scanprogramma's is gevonden als aangetast, wat betekent dat het onmiddellijk moet worden ingetrokken en vervangen om de integriteit van uw beveiligingspostuur te behouden.
Beheerde identiteiten gebruiken
Beheerde identiteiten in Azure bieden een veilige manier om toepassingen te verifiëren bij Azure-services zonder referenties in de code op te slaan. Door beheerde identiteiten voor Azure-resources in te schakelen, hebt u veilig toegang tot Azure Key Vault en andere services, waardoor geheimen niet handmatig hoeven te worden verwerkt. Deze aanpak minimaliseert niet alleen het maken van geheimen, maar vermindert ook het oppervlak voor potentiële schendingen, omdat de verantwoordelijkheid voor het beheren van referenties wordt gedelegeerd aan het platform.
Gedetailleerd toegangsbeheer toepassen
Volg het principe van minimale bevoegdheden door gedetailleerd toegangsbeheer toe te passen op uw geheimen. Gebruik op rollen gebaseerd toegangsbeheer (RBAC) van Azure om ervoor te zorgen dat alleen geautoriseerde entiteiten toegang hebben tot specifieke geheimen. Controleer regelmatig de toegangsmachtigingen en werk deze bij om onbevoegde toegang te voorkomen. Het is ook raadzaam om afzonderlijke rollen te implementeren, zoals gebruiker, beheerder en auditor voor het beheren van de toegang tot geheimen, zodat alleen vertrouwde identiteiten het juiste machtigingsniveau hebben.
Raadpleeg de azure Key Vault RBAC-handleiding.
Geheimen regelmatig roteren
Geheimen zijn vatbaar voor lekkage of blootstelling in de loop van de tijd. Het regelmatig roteren van uw geheimen vermindert het risico op onbevoegde toegang. U kunt geheimen roteren in Azure Key Vault voor bepaalde geheimen. Voor geheimen die niet automatisch kunnen worden geroteerd, stelt u een handmatig rotatieproces in en zorgt u ervoor dat ze worden opgeschoond wanneer ze niet meer worden gebruikt.
Door het proces voor geheimrotatie te automatiseren en redundantie in uw geheimbeheer te bouwen, kan de beschikbaarheid van de service niet worden onderbroken. Het implementeren van logica voor opnieuw proberen en gelijktijdige toegangspatronen in uw code kan helpen bij het minimaliseren van problemen tijdens het draaivenster.
Toegang tot logboeken bewaken en registreren
Schakel logboekregistratie en bewaking in voor uw geheime beheersysteem om de toegang en het gebruik bij te houden. Gebruik Key Vault-logboekregistratie en/of -services, zoals Azure Monitor en Azure Event Grid, om alle activiteiten met betrekking tot uw geheimen te bewaken. Dit biedt inzicht in wie toegang heeft tot uw geheimen en helpt bij het detecteren van verdacht gedrag of mogelijke beveiligingsincidenten. Het onderhouden van gedetailleerde audittrails is essentieel voor het inspecteren en valideren van toegang tot geheimen, wat kan helpen identiteitsdiefstal te voorkomen, afkeer te voorkomen en onnodige blootstelling te verminderen.
Netwerkisolatie implementeren
Verminder de blootstelling van uw geheimen door netwerkisolatie te implementeren. Configureer firewalls en netwerkbeveiligingsgroepen om de toegang tot uw sleutelkluizen te beperken. Alleen vertrouwde toepassingen en services toegang geven tot uw geheimen, waardoor het kwetsbaarheid voor aanvallen wordt geminimaliseerd en onbevoegde toegang wordt voorkomen. Overweeg bovendien meerdere sleutelkluizen te gebruiken om isolatiegrenzen voor verschillende onderdelen te maken, zodat het ene onderdeel geen controle kan krijgen over andere geheimen of de hele workload.
Geheimen at rest en in transit versleutelen
Zorg ervoor dat uw geheimen zowel at-rest als in transit zijn versleuteld. In Azure Key Vault worden geheimen veilig opgeslagen met envelopversleuteling, waarbij DEK's (Data Encryption Keys) worden versleuteld door SLEUTELversleutelingssleutels (KEK's), wat een extra beveiligingslaag biedt. Deze aanpak verbetert de beveiliging tegen onbevoegde toegang. Gebruik bovendien beveiligde communicatieprotocollen zoals HTTPS om gegevens tijdens de overdracht tussen uw toepassingen en de sleutelkluis te versleutelen, zodat uw geheimen tijdens zowel opslag als overdracht worden beveiligd.
In Azure wordt versleuteling-at-rest geïmplementeerd in verschillende services met behulp van AES 256-versleuteling, terwijl gegevens in transit worden beveiligd via TLS en MACsec om onbevoegde toegang tijdens verzending te voorkomen. Deze versleutelingsprocedures bieden uitgebreide beveiliging voor uw gegevens, ongeacht of deze worden opgeslagen of verzonden tussen systemen. Zie Encryption at rest en in transit voor meer informatie.
Veilige distributie van geheimen
Wanneer u geheimen distribueert, moet u ervoor zorgen dat ze veilig binnen en buiten de organisatie worden gedeeld. Gebruik hulpprogramma's die zijn ontworpen voor veilig delen en bevatten geheime herstelprocedures in uw noodherstelplannen. Als een sleutel is aangetast of gelekt, moet deze onmiddellijk opnieuw worden gegenereerd. Als u de beveiliging verder wilt verbeteren, gebruikt u afzonderlijke sleutels voor elke consument in plaats van sleutels te delen, zelfs als ze vergelijkbare toegangspatronen hebben. Deze procedure vereenvoudigt sleutelbeheer en intrekking, waardoor gecompromitteerde sleutels kunnen worden ingetrokken zonder dat dit van invloed is op andere consumenten.
Aanbevolen procedures voor services
Afzonderlijke services hebben mogelijk aanvullende aanbevolen procedures en richtlijnen voor het beveiligen van geheimen. Hieronder volgen een aantal voorbeelden:
- API Management: Benoemde waarden gebruiken in Azure API Management-beleid met Key Vault-integratie
- App Service: Key Vault-verwijzingen gebruiken voor App Service en Azure Functions
- Application Gateway: Een Application Gateway configureren met TLS-beëindiging met behulp van Azure Portal
- Automatisering: Referenties beheren in Azure Automation
- Azure-app configuratie: Zelfstudie: Key Vault-verwijzingen gebruiken in een ASP.NET Core-app
- Azure Bot Service: Azure Bot Service-versleuteling voor data-at-rest
- Azure Center voor SAP-oplossingen: Azure Center for SAP Solutions - Implementatie - Netwerk voorbereiden voor implementatie
- Azure Communications Gateway: geheimen maken en opslaan
- Azure Communications Service: toegangstokens maken en beheren
- Azure Database for PostgreSQL - Flexibele server: Azure Database for PostgreSQL - Flexibele servergegevensversleuteling met een door de klant beheerde sleutel
- Azure Databricks: Key Vault-integratie in Databricks
- Azure DevTest Labs: door de gebruiker toegewezen beheerde identiteiten inschakelen op virtuele labmachines in Azure DevTest Labs
- Azure Front Door: Azure Front Door-geheimen
- Azure HDInsight in AKS: Resourcevereisten - Azure Key Vault maken
- Azure Information Protection: details voor ondersteuning voor Azure Information Protection Key Vault
- Azure Kubernetes Service (AKS): CSI Secret Store
- Azure Managed Applications: Toegang tot Key Vault-geheim bij het implementeren van Azure Managed Applications
- Azure OpenAI: Azure AI-servicestoepassingen ontwikkelen met Key Vault
- Azure Pipelines: geheimen beveiligen in Azure Pipelines
- Azure Purview: Referenties voor bronverificatie in Microsoft Purview
- Azure SignalR Service: Key Vault-geheimverwijzing in URL-sjablooninstellingen
- Azure Service Bus: een toepassing verifiëren en autoriseren met Microsoft Entra-id voor toegang tot Azure Service Bus-entiteiten
- Azure Stack Edge: Azure Stack Edge-geheimen beheren met behulp van Azure Key Vault
- Azure Stack Hub: Geheimen roteren
- Azure Web PubSub: een aangepast certificaat toevoegen
- Back-up: Een kluis configureren om te versleutelen met door de klant beheerde sleutels
- Cognitive Services: Azure Cognitive Services-toepassingen ontwikkelen met Key Vault
- Data Factory: Referenties opslaan in Azure Key Vault
- ExpressRoute: MACsec-versleuteling configureren voor ExpressRoute Direct.
- Functies: Key Vault-verwijzingen gebruiken voor App Service en Azure Functions
- Key Vault: Over Azure Key Vault-geheimen
- Logic Apps: Standaard-app-instellingen voor Logic Apps
- Machine Learning Service: verificatiereferentiegeheimen gebruiken in Azure Machine Learning-taken
- SQL IaaS: Azure Key Vault-integratie configureren voor SQL Server op Azure-VM's (Resource Manager)
- Opslag: Opslagaccountsleutels beheren met Key Vault en de Azure CLI
Volgende stappen
Het minimaliseren van beveiligingsrisico's is een gedeelde verantwoordelijkheid. U moet proactief zijn bij het nemen van stappen om uw workloads te beveiligen. Meer informatie over gedeelde verantwoordelijkheid in de cloud.
Bekijk best practices en patronen voor Azure-beveiliging voor meer aanbevolen beveiligingsprocedures die u kunt gebruiken wanneer u uw cloudoplossingen ontwerpt, implementeert en beheert met behulp van Azure.