Delen via


Aanbevelingen voor het beveiligen van toepassingsgeheimen

Van toepassing op deze aanbeveling voor de Well-Architected Security-checklist: Power Platform

ZOO:07 Beveilig toepassingsgeheimen door de opslag ervan te versterken, de toegang en manipulatie te beperken en door deze acties te controleren. Voer een betrouwbaar en regelmatig rotatieproces uit dat rotaties voor noodgevallen kan improviseren.

In deze handleiding worden de aanbevelingen beschreven voor het beveiligen van gevoelige informatie in workloads. Een goed beheer van geheimen is van cruciaal belang voor het behoud van de veiligheid en integriteit van uw toepassing, workload en bijbehorende gegevens. Onjuiste omgang met geheimen kan leiden tot datalekken, verstoring van de service, overtredingen van de regelgeving en andere problemen.

Inloggegevens, zoals API-sleutels, Open Authorization (OAuth)-tokens en Secure Shell (SSH)-sleutels, zijn geheimen. Nalevingsvereisten kunnen ertoe leiden dat configuratie-instellingen die doorgaans niet als geheim worden beschouwd, worden behandeld als toepassingsgeheimen.

Definities

Term Definitie
Certificaten Digitale bestanden die de openbare sleutels bevatten voor versleuteling of ontsleuteling.
Credentials Informatie die wordt gebruikt om de identiteit van de uitgever of consument in een communicatiekanaal te verifiëren.
Referenties scannen Het proces waarbij de broncode wordt gevalideerd om er zeker van te zijn dat er geen geheimen zijn opgenomen.
Versleuteling Het proces waarbij gegevens onleesbaar worden gemaakt en worden vergrendeld met een geheime code.
Key Een geheime code die wordt gebruikt om versleutelde gegevens te vergrendelen of ontgrendelen.
Toegang met minste bevoegdheden Een Zero Trust-principe dat tot doel heeft een reeks machtigingen voor het voltooien van een taak te minimaliseren.
Beheerde identiteit Een identiteit die wordt toegewezen aan resources en wordt beheerd door Azure.
Niet geheim Informatie die de beveiligingspostuur van de workload bij een lek niet in gevaar brengt.
Draaiing Het proces waarbij geheimen regelmatig worden bijgewerkt, zodat ze, als ze in gevaar komen, slechts voor een beperkte tijd beschikbaar zijn.
Geheim Een vertrouwelijk onderdeel van het systeem dat de communicatie tussen workloadonderdelen faciliteert. Bij een lek kunnen geheimen een schending veroorzaken.
X.509 Een standaard die de indeling van openbare sleutelcertificaten definieert.

Belangrijk

Behandel niet-geheimen niet als geheimen. Geheimen vereisen operationele striktheid die voor niet-geheimen niet nodig is en die tot extra kosten kan leiden.

Toepassingsinstellingen die geen geheimen zijn, zoals de URL's van de API's die de toepassing nodig heeft, moeten gescheiden worden gehouden van de toepassingscode of toepassingsgeheimen. Als u de toepassingsconfiguratie wilt opslaan, kunt u overwegen een aangepaste connector of omgevingsvariabelen te gebruiken. Een andere optie is het gebruik van een Dataverse-tabel om metagegevens over de toepassingsconfiguratie op te slaan. U zult echter een manier moeten vinden om deze gegevens in een nieuwe omgeving in te vullen, zoals het overbrengen van configuratiegegevens van ontwikkeling naar testen of productie. Hiervoor kunt u Dataflows gebruiken.

Belangrijke ontwerpstrategieën

Houd rekening met de volgende aandachtspunten voordat u geheimen opslaat en beheert:

  • Gemaakte geheimen moeten in een veilige opslag worden bewaard met strikt toegangsbeheer.
  • Geheimenrotatie is een proactieve bewerking, terwijl intrekking reactief is.
  • Alleen vertrouwde identiteiten mogen toegang hebben tot geheimen.
  • U moet een audittrail bijhouden om de toegang tot geheimen te inspecteren en valideren.

Ontwikkel een strategie rond deze punten om identiteitsdiefstal te helpen voorkomen, afwijzing te vermijden en onnodige blootstelling van informatie tot een minimum te beperken.

Veilige praktijken voor geheimenbeheer

We raden aan dat sleutels drie verschillende rollen hebben: gebruiker, beheerder en auditor. Rolonderscheid helpt ervoor te zorgen dat alleen vertrouwde identiteiten toegang hebben tot geheimen met het juiste machtigingsniveau. Informeer ontwikkelaars, beheerders en ander relevant personeel over het belang van best practices op het gebied van geheimenbeheer en beveiliging.

Vooraf gedeelde sleutels

U kunt de toegang beheren door voor elke consument afzonderlijke sleutels te maken. Een cliënt, zoals een app of stroom, bijvoorbeeld communiceert met een API van derden met behulp van een vooraf gedeelde sleutel. Als een andere cliënt toegang nodig heeft tot dezelfde API, moet deze een andere sleutel gebruiken. Deel geen sleutels, zelfs niet als twee consumenten dezelfde toegangspatronen of rollen hebben. Het consumentenbereik kan in de loop van de tijd veranderen en u kunt de machtigingen niet onafhankelijk bijwerken of gebruikspatronen onderscheiden nadat een sleutel is gedeeld. Afzonderlijke toegang maakt intrekking ook eenvoudiger. Als de sleutel van een consument in gevaar komt, is het gemakkelijker om die sleutel in te trekken of te roteren zonder dat dit gevolgen heeft voor andere consumenten.

Deze richtlijnen zijn van toepassing op verschillende omgevingen. Dezelfde sleutel mag niet worden gebruikt voor zowel preproductie- als productieomgevingen. Als u verantwoordelijk bent voor het maken van vooraf gedeelde sleutels, zorg er dan voor dat u meerdere sleutels maakt om meerdere cliënten te ondersteunen.

Zie voor meer informatie Aanbevelingen voor identiteits- en toegangsbeheer.

Geheimen opslaan

gebruik een geheimbeheersysteem, zoals Azure Key Vault, om geheimen op te slaan in een beveiligde omgeving, versleutel gegevens in rust en onderweg en controleer de toegang tot en wijzigingen in geheimen. Als u toepassingsgeheimen moet opslaan, bewaar deze dan buiten de broncode zodat ze gemakkelijk kunnen worden gerouleerd.

Een toegewezen beheersysteem voor geheimen maakt het eenvoudig om toepassingsgeheimen op te slaan, te distribueren en de toegang tot toepassingsgeheimen te beheren. Alleen geautoriseerde identiteiten en services mogen toegang hebben tot opslagplaatsen voor geheimen. De toegang tot het systeem kan worden beperkt via machtigingen. Pas altijd de aanpak met de minste bevoegdheden toe bij het toewijzen van machtigingen.

U moet ook de toegang op het niveau van het geheim beheren. Elk geheim mag slechts toegang hebben tot één resourcebereik. Maak isolatiegrenzen zodat een onderdeel alleen de benodigde geheimen kan gebruiken. Als een geïsoleerd onderdeel wordt aangetast, kan het geen controle krijgen over andere geheimen en mogelijk over de gehele workload. Eén manier om geheimen te isoleren is door meerdere sleutelkluizen te gebruiken. Er zijn geen extra kosten verbonden aan het maken van extra sleutelkluizen.

Implementeer auditing en monitoring voor toegang tot geheimen. Registreer wie toegang heeft tot geheimen en wanneer ongeautoriseerde of verdachte activiteiten moeten worden vastgesteld. Voor informatie over registratie vanuit beveiligingsperspectief raadpleegt u Aanbevelingen voor bewaking en dreigingsdetectie.

Geheimenrotatie

Zorg voor een proces voor het onderhoud van geheimen. De levensduur van een geheim beïnvloedt het beheer van dat geheim. Om aanvalsvectoren te verminderen, moeten geheimen zo vaak mogelijk worden teruggetrokken en vervangen door nieuwe geheimen.

Ga zorgvuldig om met toegangstokens en houd rekening met hun levensduur. OAuth Overweeg of het blootstellingsvenster moet worden aangepast aan een kortere periode. Vernieuwingstokens moeten veilig worden opgeslagen met beperkte blootstelling aan de toepassing. Verlengde certificaten moeten ook een nieuwe sleutel gebruiken. Voor informatie over vernieuwingstokens, zie Secure OAuth 2.0 On-Behalf-Of vernieuwingstokens.

Vervang geheimen nadat ze het einde van hun levensduur hebben bereikt, niet langer door de workload worden gebruikt of als ze zijn gecompromitteerd. Omgekeerd geldt dat u actieve geheimen niet buiten gebruik stelt, tenzij er sprake is van een noodgeval. U kunt de status van een geheim bepalen door toegangslogboeken te bekijken. Processen voor geheimenrotatie mogen de betrouwbaarheid of prestaties van de workload niet beïnvloeden. Gebruik strategieën die redundantie opbouwen in geheimen, consumenten en toegangsmethoden voor een soepele rotatie.

Veilige praktijken voor het gebruik van geheimen

Als geheimgenerator of operator moet u op een veilige manier geheimen kunnen verspreiden. Veel organisaties gebruiken tools om geheimen veilig te delen, zowel binnen de organisatie als extern met partners. Als er geen tool is, zorg dan voor een proces voor het correct overdragen van referenties aan geautoriseerde ontvangers. Uw noodherstelplannen moeten procedures voor het herstel van geheimen omvatten. Zorg voor een proces voor situaties waarin een sleutel is aangetast of gelekt en op verzoek opnieuw moet worden gegenereerd. Overweeg de volgende best practices voor veiligheid bij het gebruik van geheimen:

Voorkom hardcodering

Codeer geheimen niet hard als statische tekst in code-artefacten zoals cloudflows en canvas-apps, configuratiebestanden en build-deployment-pipelines. Deze risicovolle praktijk maakt de code kwetsbaar omdat geheimen toegankelijk zijn voor iedereen met leestoegang.

gebruik hulpmiddelen die periodiek blootgestelde geheimen in uw applicatiecode detecteren en artefacten bouwen. U kunt deze tools toevoegen als onderdeel van uw implementatiepijplijnen om te scannen op referenties voordat de broncode wordt geïmplementeerd. Controleer en leeg toepassingslogboeken regelmatig om ervoor te zorgen dat er niet per ongeluk geheimen worden vastgelegd. U kunt de detectie ook versterken via peer reviews.

Notitie

Als de scantools een geheim ontdekken, moet dat geheim als gecompromitteerd worden beschouwd. Het moet worden ingetrokken.

Reageer op geheimenrotatie

Als eigenaar van een workload moet u het plan en het beleid voor geheimenrotatie begrijpen, zodat u nieuwe geheimen kunt opnemen met minimale verstoring voor gebruikers. Wanneer een geheim wordt gerouleerd, kan er een periode zijn waarin het oude geheim niet geldig is, maar het nieuwe geheim nog niet is geplaatst. Gedurende die periode accepteert het onderdeel dat de workload probeert te bereiken geen aanvragen. U kunt deze problemen minimaliseren door logica voor opnieuw proberen in de code in te bouwen. U kunt ook gelijktijdige toegangspatronen gebruiken waarmee u over meerdere referenties beschikt die veilig kunnen worden gewijzigd zonder dat dit gevolgen voor elkaar heeft.

Werk samen met het operationele team en maak deel uit van het verandermanagementproces. U moet eigenaren van referenties op de hoogte stellen wanneer u een deel van de workload buiten gebruik stelt waarvoor referenties worden gebruikt die niet langer nodig zijn.

Integreer het ophalen en configureren van geheimen in uw geautomatiseerde implementatiepijplijn. Het ophalen van geheimen zorgt ervoor dat geheimen automatisch worden opgehaald tijdens de implementatie. U kunt ook injectiepatronen voor geheimen gebruiken om tijdens runtime geheimen in de toepassingscode of configuratie in te voegen, waardoor wordt voorkomen dat geheimen per ongeluk worden blootgesteld aan logboeken of versiebeheer.

Power Platform faciliteren

In de volgende secties worden Power Platform-functies en -mogelijkheden beschreven die u kunt gebruiken om toepassingsgeheimen te beheren.

Azure Key Vault-geheimen gebruiken

Met omgevingsvariabelen kan worden verwezen naar geheimen die zijn opgeslagen in Azure Key Vault. Deze geheimen worden vervolgens beschikbaar gesteld voor gebruik in Power Automate-stromen en aangepaste connectors. Houd er rekening mee dat de geheimen niet beschikbaar zijn voor gebruik in andere aanpassingen of in het algemeen via de API.

De echte geheimen worden alleen opgeslagen in Azure Key Vault en de omgevingsvariabele verwijst alleen naar de geheime locatie van de sleutelkluis. Voor het gebruik van Azure Key Vault-geheimen met omgevingsvariabelen moet u Azure Key Vault zo configureren dat Power Platform de specifieke geheimen kan lezen waarnaar u wilt verwijzen. Zie voor meer informatie Omgevingsvariabelen gebruiken in oplossingen en Omgevingsvariabelen gebruiken in aangepaste connectors voor oplossingen.

Oplossingscontrole gebruiken

Met de oplossingscontrolefunctie kunt u een uitgebreide statische analysecontrole op uw oplossingen uitvoeren waarbij een set regels voor best practices wordt toegepast, en deze problematische patronen snel vaststellen. Als de controle is voltooid, ontvangt u een gedetailleerd rapport met de vastgestelde problemen, de onderdelen en code waarop de problemen betrekking hebben en koppelingen naar documentatie waarin wordt beschreven hoe u elk probleem kunt oplossen. Bekijk de beschikbare regels voor oplossingscontrole in de categorie Beveiliging. Zie voor meer informatie Oplossingscontrole gebruiken om uw oplossingen te valideren.

CyberArk-acties gebruiken

CyberArk biedt een identiteitsbeveiligingsplatform dat de identiteit van mens en machine van begin tot eind beveiligt. Met Power Automate-bureaubladstromen kunt u referenties ophalen uit CyberArk. Zie voor meer informatie CyberArk-acties.

Controlelijst voor beveiliging

Raadpleeg de volledige reeks aanbevelingen.