Zabezpečený přístup ke spravovaným HSM

Spravovaný HSM služby Azure Key Vault je cloudová služba, která chrání šifrovací klíče. Vzhledem k tomu, že tato data jsou citlivá a důležitá pro firmu, musíte zabezpečit přístup ke spravovaným hsM tím, že k němu budou mít přístup jenom autorizované aplikace a uživatelé. Tento článek obsahuje přehled modelu řízení přístupu spravovaného HSM. Vysvětluje ověřování a autorizaci a popisuje, jak zabezpečit přístup ke spravovaným HSM.

Tento kurz vás provede jednoduchým příkladem, který ukazuje, jak dosáhnout oddělení povinností a řízení přístupu pomocí Azure RBAC a místního řízení přístupu na základě role spravovaného HSM. Informace o modelu řízení přístupu spravovaného HSM najdete v tématu Řízení přístupu spravovaného HSM.

Požadavky

K dokončení kroků v tomto článku musíte mít následující položky:

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Screenshot that shows an example of Try It for Azure Cloud Shell.
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Button to launch Azure Cloud Shell.
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Přihlášení k Azure

Pokud se chcete přihlásit k Azure pomocí rozhraní příkazového řádku, můžete zadat:

az login

Další informace o možnostech přihlášení prostřednictvím rozhraní příkazového řádku najdete v tématu Přihlášení pomocí Azure CLI.

Příklad

V tomto příkladu vyvíjíme aplikaci, která pro operace podepisování používá 2 048bitový klíč RSA. Naše aplikace běží na virtuálním počítači Azure se spravovanou identitou. Klíč RSA použitý k podepisování je uložený v našem spravovaném HSM.

Zjistili jsme následující role, které spravují, nasazují a auditují naši aplikaci:

  • Bezpečnostní tým: IT pracovníci z kanceláře CSO (chief security officer) nebo podobných přispěvatelů. Bezpečnostní tým zodpovídá za správné uchovávání klíčů. Klíče RSA nebo EC pro podepisování a klíče RSA nebo AES pro šifrování dat.
  • Vývojáři a operátoři: Zaměstnanci, kteří aplikaci vyvíjejí a nasazují v Azure. Členové tohoto týmu nejsou součástí bezpečnostních pracovníků. Neměli by mít přístup k citlivým datům, jako jsou klíče RSA. K tomuto citlivému datu by měla mít přístup pouze aplikace, kterou nasadí.
  • Auditoři: Tato role je určená pro přispěvatele, kteří nejsou členy vývojového ani obecného it oddělení. Kontrolují použití a údržbu certifikátů, klíčů a tajných kódů, aby zajistily dodržování standardů zabezpečení.

Existuje další role, která je mimo rozsah naší aplikace: správce předplatného (nebo skupiny prostředků). Správce předplatného nastaví počáteční přístupová oprávnění pro bezpečnostní tým. Udělí přístup týmu zabezpečení pomocí skupiny prostředků, která obsahuje prostředky vyžadované aplikací.

Pro naše role musíme autorizovat následující operace:

Bezpečnostní tým

  • Vytvořte spravovaný HSM.
  • Stažení spravované domény zabezpečení HSM (pro zotavení po havárii)
  • Zapněte protokolování.
  • Generování nebo import klíčů
  • Vytvořte spravované zálohy HSM pro zotavení po havárii.
  • Nastavte řízení přístupu na základě role spravovaného HSM tak, aby uživatelům a aplikacím udělila oprávnění pro konkrétní operace.
  • Klíče pravidelně zahrnujte.

Vývojáři a operátoři

  • Získejte referenční informace (identifikátor URI klíče) od týmu zabezpečení, který klíč RSA používá k podepisování.
  • Vyvíjejte a nasazujte aplikaci, která přistupuje k klíči prostřednictvím kódu programu.

Auditoři

  • Zkontrolujte data vypršení platnosti klíčů a ujistěte se, že jsou klíče aktuální.
  • Monitorování přiřazení rolí za účelem zajištění přístupu ke klíčům pouze autorizovanými uživateli nebo aplikacemi
  • Projděte si protokoly spravovaného HSM a ověřte správné použití klíčů v souladu se standardy zabezpečení dat.

Následující tabulka shrnuje přiřazení rolí týmům a prostředkům pro přístup ke spravovanému HSM.

Role Role roviny správy Role roviny dat
Bezpečnostní tým Spravovaný přispěvatel HSM Správce spravovaného HSM
Vývojáři a operátoři Nic Nic
Auditoři Nic Spravovaný kryptografický auditor HSM
Spravovaná identifikace virtuálního počítače používaného aplikací Nic Spravovaný uživatel kryptografických modulů HSM
Spravovaná identita účtu úložiště používaného aplikací Nic Šifrování spravované služby HSM

Tři týmové role potřebují přístup k dalším prostředkům spolu se spravovanými oprávněními HSM. K nasazení virtuálních počítačů (nebo funkce Web Apps služby Aplikace Azure) potřebují Contributor vývojáři a operátoři k těmto typům prostředků přístup. Auditoři potřebují přístup pro čtení k účtu úložiště, kde jsou uložené spravované protokoly HSM.

K přiřazení rolí roviny správy (Azure RBAC) můžete použít Azure Portal nebo jakékoli jiné rozhraní pro správu, jako je Azure CLI nebo Azure PowerShell. Pokud chcete přiřadit role spravované roviny dat HSM, musíte použít Azure CLI. Další informace o rolích roviny správy najdete v tématu Předdefinované role Azure. Další informace o rolích roviny dat spravovaného HSM najdete v tématu Místní předdefinované role RBAC pro managed HSM.

Fragmenty kódu Azure CLI v této části se vytvářejí s následujícími předpoklady:

  • Správce Microsoft Entra vytvořil skupiny zabezpečení, které představují tři role: Tým zabezpečení Společnosti Contoso, Contoso App DevOps a Auditoři aplikací Contoso. Správce přidal uživatele do příslušných skupin.
  • Všechny prostředky se nacházejí ve skupině prostředků ContosoAppRG .
  • Protokoly spravovaného HSM se ukládají v účtu úložiště contosologstorage .
  • Spravovaný HSM ContosoMHSM a účet úložiště contosologstorage jsou ve stejném umístění Azure.

Správce předplatného Managed HSM Contributorpřiřadí roli týmu zabezpečení. Tato role umožňuje týmu zabezpečení spravovat existující spravované moduly HSM a vytvářet nové. Pokud existují spravované moduly HSM, budou muset mít přiřazenou roli Managed HSM Správa istrator, aby je bylo možné spravovat.

# This role assignment allows Contoso Security Team to create new Managed HSMs
az role assignment create --assignee-object-id $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --assignee-principal-type Group --role "Managed HSM Contributor"

# This role assignment allows Contoso Security Team to become administrator of existing managed HSM
az keyvault role assignment create  --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso Security Team' --query 'id' -o tsv) --scope / --role "Managed HSM Administrator"

Bezpečnostní tým nastaví protokolování a přiřadí role auditorům a aplikaci virtuálního počítače.

# Enable logging
hsmresource=$(az keyvault show --hsm-name ContosoMHSM --query id -o tsv)
storageresource=$(az storage account show --name contosologstorage --query id -o tsv)
az monitor diagnostic-settings create --name MHSM-Diagnostics --resource $hsmresource --logs    '[{"category": "AuditEvent","enabled": true}]' --storage-account $storageresource

# Assign the "Crypto Auditor" role to Contoso App Auditors group. It only allows them to read.
az keyvault role assignment create  --hsm-name ContosoMHSM --assignee $(az ad group show -g 'Contoso App Auditors' --query 'objectId' -o tsv) --scope / --role "Managed HSM Crypto Auditor"

# Grant the "Crypto User" role to the VM's managed identity. It allows to create and use keys. 
# However it cannot permanently delete (purge) keys
az keyvault role assignment create  --hsm-name ContosoMHSM --assignee $(az vm identity show --name "vmname" --resource-group "ContosoAppRG" --query objectId -o tsv) --scope / --role "Managed HSM Crypto Auditor"

# Assign "Managed HSM Crypto Service Encryption User" role to the Storage account ID
storage_account_principal=$(az storage account show --id $storageresource --query identity.principalId -o tsv)
# (if no identity exists), then assign a new one
[ "$storage_account_principal" ] || storage_account_principal=$(az storage account update --assign-identity --id $storageresource)

az keyvault role assignment create --hsm-name ContosoMHSM --role "Managed HSM Crypto Service Encryption User" --assignee $storage_account_principal

V tomto kurzu se zobrazují jenom akce relevantní pro řízení přístupu ve většině případů. Další akce a operace související s nasazením aplikace na virtuálním počítači, zapnutí šifrování pomocí klíče spravovaného zákazníkem pro účet úložiště, vytvoření spravovaného HSM se tady nezobrazuje, aby se příklad zaměřený na řízení přístupu a správu rolí.

Náš příklad popisuje jednoduchý scénář. Scénáře reálného života můžou být složitější. Oprávnění k trezoru klíčů můžete upravit podle svých potřeb. Předpokládáme, že bezpečnostní tým poskytuje klíčové a tajné odkazy (URI a kryptografické otisky), které ve svých aplikacích používají pracovníci DevOps. Vývojáři a operátoři nevyžadují přístup k rovině dat. Zaměřili jsme se na to, jak zabezpečit váš trezor klíčů. Při zabezpečenívirtuálních

Zdroje informací

Další kroky

Úvodní kurz pro správce najdete v tématu Co je Managed HSM?.

Další informace o protokolování využití pro protokolování spravovaného HSM najdete v tématu Protokolování spravovaného HSM.