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:

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:

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í:

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:

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:

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