Zabezpečení bezserverových funkcí
Tento článek popisuje služby a aktivity Azure, které můžou pracovníci zabezpečení implementovat pro bezserverové funkce. Tyto pokyny a zdroje informací pomáhají vyvíjet zabezpečený kód a nasazovat zabezpečené aplikace do cloudu.
Plánování
Hlavními cíli zabezpečeného bezserverového aplikačního prostředí Azure Functions je ochrana spuštěných aplikací, rychlá identifikace a řešení problémů se zabezpečením a prevence budoucích podobných problémů.
OWASP Bezserverová top 10 popisuje nejběžnější chyby zabezpečení bezserverové aplikace a poskytuje základní techniky pro identifikaci a ochranu proti nim.
Plánování zabezpečeného vývoje, nasazení a provozu bezserverových funkcí je v mnoha ohledech stejné jako u všech webových nebo cloudových aplikací hostovaných v cloudu. Aplikace Azure Service poskytuje hostingovou infrastrukturu pro vaše aplikace funkcí. Zabezpečení článku o Azure Functions poskytuje strategie zabezpečení pro spouštění kódu funkce a způsob, jakým vám app Service může pomoct zabezpečit funkce.
Další informace o zabezpečení, osvědčených postupech a sdílených zodpovědnostech Azure najdete v tématech:
- Zabezpečení ve službě Azure App Service
- Integrované ovládací prvky zabezpečení
- Osvědčené postupy zabezpečeného vývoje v Azure
- Osvědčené postupy zabezpečení pro řešení Azure (sestava PDF)
- Sdílené odpovědnosti za cloud computing
Nasazení
Aby se připravily bezserverové aplikace Functions pro produkční prostředí, pracovníci zabezpečení by měli:
- Proveďte pravidelné kontroly kódu za účelem identifikace ohrožení zabezpečení kódu a knihovny.
- Definujte oprávnění k prostředkům, která služba Functions potřebuje spustit.
- Nakonfigurujte pravidla zabezpečení sítě pro příchozí a odchozí komunikaci.
- Identifikace a klasifikace přístupu k citlivým datům
Článek o standardních hodnotách zabezpečení Azure pro Azure Functions obsahuje další doporučení, která vám pomůžou zlepšit stav zabezpečení nasazení.
Zabezpečení kódu
Vyhledejte ohrožení zabezpečení a chyby v kódu a spravujte ohrožení zabezpečení v projektech a závislostech.
Další informace naleznete v tématu:
Provedení ověření vstupu
Různé zdroje událostí, jako je Blob Storage, databáze NoSQL služby Azure Cosmos DB, centra událostí, fronty nebo události graphu, můžou aktivovat bezserverové funkce. Injektáže nejsou výhradně omezené na vstupy přicházející přímo z volání rozhraní API. Funkce mohou využívat další vstupy z možných zdrojů událostí.
Obecně platí, že nedůvěřujte vstupu ani nepředpokládáte žádné předpoklady o jeho platnosti. Vždy používejte bezpečná rozhraní API, která sanitizují nebo ověřují vstup. Pokud je to možné, použijte rozhraní API, která sváže nebo parametrizují proměnné, jako je použití připravených příkazů pro dotazy SQL.
Další informace naleznete v tématu:
- Ověřování vstupu azure Functions s využitím fluentValidation
- Rámec zabezpečení: Zmírnění rizik ověřování vstupu
- Ověření žádosti o funkci triggeru HTTP
- Ověření požadavku pro Azure Functions
Zabezpečení koncových bodů HTTP pro vývoj, testování a produkci
Azure Functions umožňuje používat klíče, které znesnadní přístup ke koncovým bodům funkce HTTP. Pokud chcete plně zabezpečit koncové body funkcí v produkčním prostředí, zvažte implementaci jedné z následujících možností zabezpečení na úrovni aplikace funkcí:
- Zapněte ověřování a autorizaci služby App Service pro vaši aplikaci Functions. Viz Autorizační klíče.
- K ověřování požadavků použijte Azure API Management (APIM). Viz Import aplikace Funkcí Azure jako rozhraní API ve službě Azure API Management.
- Nasaďte aplikaci Functions do prostředí služby Aplikace Azure Service Environment (ASE).
- Použijte plán služby App Service, který omezuje přístup, a implementujte Azure Front Door + WAF ke zpracování příchozích požadavků. Viz Vytvoření služby Front Door pro vysoce dostupnou globální webovou aplikaci.
Další informace najdete v tématu Zabezpečení koncového bodu HTTP v produkčním prostředí.
Nastavení řízení přístupu na základě role v Azure (Azure RBAC)
Řízení přístupu na základě role v Azure (Azure RBAC) má několik předdefinovaných rolí Azure, které můžete přiřadit uživatelům, skupinám, instančním objektům a spravovaným identitám pro řízení přístupu k prostředkům Azure. Pokud předdefinované role nevyhovují potřebám vaší organizace, můžete vytvořit vlastní role Azure.
Před nasazením zkontrolujte jednotlivé aplikace Functions a identifikujte nadměrná oprávnění. Pečlivě prozkoumejte funkce, abyste použili oprávnění "nejnižší úrovně oprávnění", a udělte tak každou funkci jenom to, co potřebuje k úspěšnému spuštění.
Pomocí Azure RBAC přiřaďte oprávnění uživatelům, skupinám a aplikacím v určitém rozsahu. Role se dají přidělovat na úrovni předplatného, skupiny prostředků nebo konkrétního prostředku. Nepoužívejte zástupné cardy, kdykoli je to možné.
Další informace o Azure RBAC najdete tady:
- Co je řízení přístupu na základě role v Azure (Azure RBAC)?
- Předdefinované role v Azure
- Vlastní role Azure
Použití spravovaných identit a trezorů klíčů
Běžným problémem při vytváření cloudových aplikací je správa přihlašovacích údajů pro ověřování v cloudových službách v kódu. Přihlašovací údaje by se nikdy neměly zobrazovat v kódu aplikace, vývojářských pracovních stanicích ani ve správě zdrojového kódu. Místo toho použijte trezor klíčů k ukládání a načítání klíčů a přihlašovacích údajů. Azure Key Vault nabízí způsob bezpečného ukládání přihlašovacích údajů, tajných kódů a dalších klíčů. Kód se ověří ve službě Key Vault a načte přihlašovací údaje.
Další informace najdete v tématu Použití odkazů služby Key Vault pro App Service a Azure Functions.
Spravované identity umožňují aplikacím Functions přistupovat k prostředkům, jako jsou trezory klíčů a účty úložiště, aniž by vyžadovaly konkrétní přístupové klíče nebo připojovací řetězec. Úplný záznam auditu v protokolech zobrazuje, které identity spouštějí požadavky na prostředky. Pomocí Azure RBAC a spravovanýchidentitch
Další informace naleznete v tématu:
- Co jsou spravované identity pro prostředky Azure?
- Jak používat spravované identity pro App Service a Azure Functions
Použití tokenů sdíleného přístupového podpisu (SAS) k omezení přístupu k prostředkům
Sdílený přístupový podpis (SAS) poskytuje zabezpečený delegovaný přístup k prostředkům ve vašem účtu úložiště bez ohrožení zabezpečení vašich dat. Pomocí sdíleného přístupového podpisu máte podrobnou kontrolu nad tím, jak může klient přistupovat k vašim datům. Můžete řídit, k jakým prostředkům může klient přistupovat, jaká oprávnění k těmto prostředkům má a jak dlouho je SAS platný, mimo jiné parametry.
Další informace najdete v tématu Udělení omezeného přístupu k prostředkům Azure Storage pomocí sdílených přístupových podpisů (SAS).
Zabezpečené úložiště objektů blob
Identifikujte a klasifikovat citlivá data a minimalizujte úložiště citlivých dat jenom na to, co je potřeba. Pro ukládání citlivých dat přidejte vícefaktorové ověřování a šifrování dat během přenosu a neaktivních uložených dat. Udělte omezený přístup k prostředkům Azure Storage pomocí tokenů SAS.
Další informace najdete v tématu Doporučení zabezpečení pro úložiště objektů blob.
Optimalizace
Jakmile je aplikace v produkčním prostředí, můžou pracovníci zabezpečení pomoct optimalizovat pracovní postup a připravit se na škálování.
Použití Microsoft Defenderu pro cloud a použití doporučení zabezpečení
Microsoft Defender for Cloud je řešení kontroly zabezpečení pro vaši aplikaci, které identifikuje potenciální ohrožení zabezpečení a vytváří doporučení. Tato doporučení vás provedou konfigurací potřebných ovládacích prvků pro posílení a ochranu vašich prostředků.
Další informace naleznete v tématu:
Vynucení zásad správného řízení aplikací
Použití centralizovaných, konzistentních vynucování a bezpečnostních opatření pro vaši aplikaci ve velkém měřítku Další informace najdete v tématu Předdefinované definice zásad služby Azure Policy.
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro