Biztonságos hozzáférés a felügyelt HSM-ekhez
Az Azure Key Vault Managed HSM egy felhőszolgáltatás, amely védi a titkosítási kulcsokat. Mivel ezek az adatok bizalmasak és üzleti szempontból kritikus fontosságúak, a felügyelt HSM-ekhez való hozzáférést úgy kell biztosítani, hogy csak a jogosult alkalmazások és felhasználók férhessenek hozzá. Ez a cikk áttekintést nyújt a felügyelt HSM hozzáférés-vezérlési modelljéről. Ismerteti a hitelesítést és az engedélyezést, valamint ismerteti a felügyelt HSM-ekhez való hozzáférés biztonságossá tételét.
Ez az oktatóanyag egy egyszerű példát mutat be, amely bemutatja, hogyan lehet elkülöníteni a feladatokat és a hozzáférés-vezérlést az Azure RBAC és a felügyelt HSM helyi RBAC használatával. A felügyelt HSM-hozzáférés-vezérlési modellről a Felügyelt HSM-hozzáférés-vezérlési modellről szóló cikkben olvashat.
Előfeltételek
A cikkben ismertetett lépések elvégzéséhez a következő elemeket kell tartalmaznia:
- Egy Microsoft Azure-előfizetésre. Ha még nincs fiókja, regisztráljon egy ingyenes próbaverzióra.
- Az Azure CLI 2.25.0-s vagy újabb verziója. A verzió azonosításához futtassa a következőt:
az --version
. Ha telepíteni vagy frissíteni szeretne, olvassa el az Azure CLI telepítését ismertető cikket. - Felügyelt HSM az előfizetésben. Lásd : Gyorsútmutató: Felügyelt HSM kiépítése és aktiválása az Azure CLI használatával felügyelt HSM kiépítéséhez és aktiválásához.
Azure Cloud Shell
Az Azure által üzemeltetett Azure Cloud Shell egy interaktív felület, amelyet a böngészőből használhat. A Bash vagy a PowerShell segítségével is használhatja a Cloud Shellt az Azure-szolgáltatásokhoz. Az Cloud Shell előre telepített parancsokkal futtathatja a kódot ebben a cikkben anélkül, hogy bármit telepítenie kellene a helyi környezetben.
Az Azure Cloud Shell indítása:
Beállítás | Példa/hivatkozás |
---|---|
Válassza a Kipróbálás lehetőséget egy kód vagy parancsblokk jobb felső sarkában. A Kipróbálás lehetőség választásával nem másolja automatikusan a kódot vagy a parancsot a Cloud Shell. | ![]() |
Látogasson el a https://shell.azure.com webhelyre, vagy kattintson a Cloud Shell indítása gombra a böngészőben. | ![]() |
Az Azure Portal jobb felső sarkában található menüben kattintson a Cloud Shell gombra. | ![]() |
Az Azure Cloud Shell használata:
Indítsa el a Cloud Shellt.
A kód vagy parancs másolásához kattintson a Másolás gombra egy kódblokkon (vagy parancsblokkon).
Illessze be a kódot vagy a parancsot a Cloud Shell munkamenetbe a Windows és Linux rendszeren a Ctrl+Shift+V, macOS rendszeren pedig a Cmd+Shift+V billentyűkombinációval.
A kód vagy parancs futtatásához válassza az Enter billentyűt .
Bejelentkezés az Azure-ba
Ha a parancssori felülettel szeretne bejelentkezni az Azure-ba, írja be a következőt:
az login
A cli-n keresztüli bejelentkezési lehetőségekkel kapcsolatos további információkért lásd: Bejelentkezés az Azure CLI-vel
Példa
Ebben a példában egy olyan alkalmazást fejlesztünk, amely 2048 bites RSA-kulcsot használ az aláírási műveletekhez. Az alkalmazás felügyelt identitással rendelkező Azure-beli virtuális gépen (VM) fut. Az aláíráshoz használt RSA-kulcsot a felügyelt HSM tárolja.
Az alkalmazás kezelését, üzembe helyezését és naplózását végző alábbi szerepköröket azonosítottuk:
- Biztonsági csapat: a KSH irodájának informatikai személyzete (biztonsági igazgató) vagy hasonló közreműködők. A biztonsági csapat felelős a kulcsok megfelelő megőrzéséért. Az aláíráshoz használt RSA- vagy EC-kulcsok, az adattitkosításhoz pedig RSA- vagy AES-kulcsok.
- Fejlesztők és operátorok: Az alkalmazást fejlesztő és az Azure-ban üzembe helyező munkatársak. A csapat tagjai nem tagjai a biztonsági személyzetnek. Nem férhetnek hozzá bizalmas adatokhoz, például RSA-kulcsokhoz. Csak az általuk telepített alkalmazás férhet hozzá ezekhez a bizalmas adatokhoz.
- Auditorok: Ez a szerepkör azoknak a közreműködőknek szól, akik nem tagjai a fejlesztő vagy az általános informatikai személyzetnek. Ellenőrzik a tanúsítványok, kulcsok és titkos kódok használatát és karbantartását a biztonsági szabványoknak való megfelelés biztosítása érdekében.
Van egy másik szerepkör, amely kívül esik az alkalmazás hatókörén: az előfizetési (vagy erőforráscsoport-) rendszergazda. Az előfizetés rendszergazdája beállítja a kezdeti hozzáférési engedélyeket a biztonsági csapat számára. Hozzáférést biztosítanak a biztonsági csapatnak egy olyan erőforráscsoport használatával, amely rendelkezik az alkalmazás által igényelt erőforrásokkal.
A szerepkörökhöz a következő műveleteket kell engedélyezni:
Biztonsági csapat
- Hozza létre a felügyelt HSM-et.
- A felügyelt HSM biztonsági tartomány letöltése (vészhelyreállításhoz)
- Kapcsolja be a naplózást.
- Kulcsok létrehozása vagy importálása
- Hozza létre a felügyelt HSM biztonsági másolatokat vészhelyreállításhoz.
- Állítsa be a Felügyelt HSM helyi RBAC-t, hogy engedélyeket adjon a felhasználóknak és alkalmazásoknak adott műveletekhez.
- A kulcsokat rendszeresen forgja el.
Fejlesztők és üzemeltetők
- Kérje le az aláíráshoz használt RSA-kulcsot (kulcs URI-ját) a biztonsági csapattól.
- A kulcsot programozott módon elérő alkalmazás fejlesztése és üzembe helyezése.
Ellenőrök
- A kulcsok lejárati dátumának áttekintése annak ellenőrzéséhez, hogy a kulcsok naprakészek-e
- A szerepkör-hozzárendelések monitorozása annak biztosítása érdekében, hogy a kulcsokat csak a jogosult felhasználók/alkalmazások érhessék el
- Tekintse át a felügyelt HSM-naplókat, és győződjön meg arról, hogy a kulcsok megfelelő használata megfelel az adatbiztonsági szabványoknak.
Az alábbi táblázat összefoglalja a csapatok és erőforrások szerepkör-hozzárendeléseit a felügyelt HSM eléréséhez.
Szerepkör | Felügyeleti sík szerepkör | Adatsíkszerepkör |
---|---|---|
Biztonsági csapat | Felügyelt HSM-közreműködő | Felügyeleti HSM rendszergazdája |
Fejlesztők és üzemeltetők | None | None |
Ellenőrök | None | Felügyelt HSM Crypto Auditor |
Az alkalmazás által használt virtuális gép felügyelt azonosítása | None | Felügyelt HSM-titkosítási felhasználó |
Az alkalmazás által használt Tárfiók felügyelt identitása | None | Felügyelt HSM-szolgáltatás titkosítása |
A három csapatszerepkörnek más erőforrásokhoz is hozzá kell férnie a felügyelt HSM-engedélyekkel együtt. A virtuális gépek (vagy a Azure App Service Web Apps funkciója) üzembe helyezéséhez a fejlesztőknek és az operátoroknak hozzá kell Contributor
férni ezekhez az erőforrástípusokhoz. Az auditoroknak olvasási hozzáférésre van szükségük ahhoz a Tárfiókhoz, ahol a felügyelt HSM-naplók vannak tárolva.
A felügyeletisík-szerepkörök (Azure RBAC) hozzárendeléséhez használhatja Azure Portal vagy bármely más felügyeleti felületet, például az Azure CLI-t vagy a Azure PowerShell. Felügyelt HSM-adatsík-szerepkörök hozzárendeléséhez az Azure CLI-t kell használnia.
Az ebben a szakaszban található Azure CLI-kódrészletek az alábbi feltételezésekkel készültek:
- Az Azure Active Directory rendszergazdája biztonsági csoportokat hozott létre, amelyek a következő három szerepkört képviselik: a Contoso biztonsági csapata, a Contoso alkalmazás DevOps és a Contoso alkalmazás auditorai. A rendszergazda felhasználókat adott hozzá a megfelelő csoportokhoz.
- Minden erőforrás a ContosoAppRG erőforráscsoportban található.
- A felügyelt HSM-naplók tárolása a contosologstorage tárfiókban történik.
- A ContosoMHSM által felügyelt HSM és a contosologstorage tárfiók ugyanabban az Azure-helyen található.
Az előfizetés rendszergazdája hozzárendeli a Managed HSM Contributor
szerepkört a biztonsági csapathoz. Ez a szerepkör lehetővé teszi, hogy a biztonsági csapat kezelje a meglévő felügyelt HSM-eket, és újakat hozzon létre. Ha vannak már felügyelt HSM-ek, a kezelésükhöz hozzá kell rendelni a "Felügyelt HSM-rendszergazda" szerepkört.
# 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 'objectId' -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 'objectId' -o tsv) --scope / --role "Managed HSM Administrator"
A biztonsági csapat beállítja a naplózást, és szerepköröket rendel az auditorokhoz és a virtuálisgép-alkalmazáshoz.
# 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
Ez az oktatóanyag csak a hozzáférés-vezérlés szempontjából releváns műveleteket mutatja be a legtöbb esetben. Az alkalmazás virtuális gépen való üzembe helyezésével, a tárfiók ügyfél által felügyelt kulccsal történő titkosításának bekapcsolásával és a felügyelt HSM létrehozásával kapcsolatos egyéb műveletek és műveletek nem jelennek meg itt, hogy a példa a hozzáférés-vezérlésre és a szerepkör-kezelésre összpontosítson.
A példánk egy egyszerű forgatókönyvet ír le. A valós forgatókönyvek összetettebbek lehetnek. A kulcstartó engedélyeit igény szerint módosíthatja. Feltételeztük, hogy a biztonsági csapat biztosítja azokat a kulcs- és titkos referenciákat (URI-kat és ujjlenyomatokat), amelyeket a DevOps csapata használ az alkalmazásaikban. A fejlesztőknek és az operátoroknak nincs szükségük adatsík-hozzáférésre. A kulcstartó védelmére összpontosítottunk. Hasonló szempontokat kell figyelembe vennie a virtuális gépek, tárfiókok és más Azure-erőforrások védelmekor.
További források
- Az Azure RBAC dokumentációja
- Azure RBAC: Beépített szerepkörök
- Az Azure RBAC kezelése az Azure CLI-vel
Következő lépések
A rendszergazdáknak szánt első lépéseket ismertető oktatóanyagért lásd : Mi a felügyelt HSM?.
További információ a felügyelt HSM-naplózás használati naplózásáról: Felügyelt HSM-naplózás.