Správa klíčů účtu úložiště pomocí Key Vault a Azure CLI
Důležité
Doporučujeme používat Azure Storage s Azure Active Directory (Azure AD), cloudovou službou microsoftu pro správu identit a přístupu. Integrace Azure AD je dostupná pro objekty blob afronty Azure a poskytuje přístup k Azure Storage na základě tokenů OAuth2 (stejně jako Azure Key Vault). Azure AD umožňuje ověřovat klientskou aplikaci pomocí identity aplikace nebo uživatele místo přihlašovacích údajů k účtu úložiště. Spravovanou identitu Azure AD můžete použít při spuštění v Azure. Spravované identity odstraňte potřebu ověřování klientů a ukládání přihlašovacích údajů do aplikace nebo s vaší aplikací. Níže uvedené řešení použijte pouze v případě, že není možné ověřování Azure AD.
Účet úložiště Azure používá přihlašovací údaje, které obsahují název účtu a klíč. Klíč se automaticky vygeneruje a slouží jako heslo, nikoli jako kryptografický klíč. Key Vault spravuje klíče účtu úložiště tím, že je pravidelně obnovuje v účtu úložiště a poskytuje tokeny sdíleného přístupového podpisu pro delegovaný přístup k prostředkům ve vašem účtu úložiště.
Pomocí funkce klíče spravovaného Key Vault úložiště můžete vygenerovat (synchronizovat) klíče s účtem úložiště Azure a klíče pravidelně obnovovat (obměně). Můžete spravovat klíče pro účty úložiště i klasické účty úložiště.
Při použití funkce klíče spravovaného účtu úložiště zvažte následující body:
- Hodnoty klíče se nikdy nevrátily jako odpověď volajícímu.
- Klíče Key Vault úložiště byste měli spravovat jenom vy. Nespravujte klíče sami a nezasahujte do Key Vault procesů.
- Pouze jeden Key Vault by měl spravovat klíče účtu úložiště. Nepovoluje správu klíčů z více objektů.
- Znovu vygenerujte klíče pouze Key Vault klíči. Klíče účtu úložiště negenerujte ručně.
Důležité
Opětovné vygenerování klíče přímo v účtu úložiště přeruší nastavení spravovaného účtu úložiště a může zneplatnění tokenů SAS a způsobit výpadky.
ID aplikace instančního objektu
Tenant Azure AD poskytuje každé zaregistrované aplikaci objekt služby. Tento objekt služby slouží jako ID aplikace, které se používá při nastavování autorizace pro přístup k jiným prostředkům Azure prostřednictvím Azure RBAC.
Key Vault je aplikace Microsoftu, která je předem zaregistrovaná ve všech tenantech Azure AD. Key Vault je zaregistrované pod stejným ID aplikace v každém cloudu Azure.
| Tenanti | Cloud | ID aplikace |
|---|---|---|
| Azure AD | Azure Government | 7e7c393b-45d0-48b1-a35e-2905ddf8183c |
| Azure AD | Veřejný Azure | cfa8b339-82a2-471a-a3c9-0fc0be7a4093 |
| Jiné | Všechny | cfa8b339-82a2-471a-a3c9-0fc0be7a4093 |
Požadavky
Abyste tuto příručku dokončili, musíte nejprve provést následující:
- Nainstalujte Azure CLI.
- Vytvořte trezor klíčů.
- Vytvořte účet úložiště Azure. Název účtu úložiště musí obsahovat pouze malá písmena a číslice. Délka názvu musí být 3 až 24 znaků.
Správa klíčů účtu úložiště
Připojení k účtu Azure
Ověřte relaci Azure CLI pomocí příkazů az login.
az login
Give Key Vault access to your storage account
Pomocí příkazu az role assignment create v Azure CLI Key Vault přístup k účtu úložiště. Zadejte příkaz s následujícími hodnotami parametru:
--role: Předejte roli azure Storage role operátora klíče účtu účtu. Tato role omezuje rozsah přístupu na váš účet úložiště. V případě klasického účtu úložiště místo Storage roli služby "Klasický operátor klíče účtu".--assignee: Předejte hodnotu " ", což je adresa https://vault.azure.net URL pro Key Vault ve veřejném cloudu Azure. (V případě cloudu Azure Goverment místo toho použijte --assignee-object-id, viz ID aplikace objektu služby.)--scope: Předejte ID prostředku účtu úložiště ve tvaru/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>. K vyhledání ID předplatného použijte příkaz Azure CLI az account list. K vyhledání názvu účtu úložiště a skupiny prostředků účtu úložiště použijte příkaz Azure CLI az storage account list.
az role assignment create --role "Storage Account Key Operator Service Role" --assignee "https://vault.azure.net" --scope "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"
Udejte uživatelskému účtu oprávnění ke spravovaným účtům úložiště.
Pomocí rutiny Azure CLI az keyvault-set-policy aktualizujte zásady přístupu Key Vault a udělte účtu úložiště oprávnění k vašemu uživatelskému účtu.
# Give your user principal access to all storage account permissions, on your Key Vault instance
az keyvault set-policy --name <YourKeyVaultName> --upn user@domain.com --storage-permissions get list delete set update regeneratekey getsas listsas deletesas setsas recover backup restore purge
Mějte na paměti, že oprávnění pro účty úložiště nejsou k dispozici na stránce Zásady přístupu účtu úložiště v Azure Portal.
Vytvoření Key Vault spravovaného účtu úložiště
Vytvořte Key Vault spravovaného účtu úložiště pomocí příkazu azure CLI az keyvault storage. Nastavte dobu opětovného vygenerování na 90 dnů. Když je čas obměny, keyVault znovu vygeneruje klíč, který není aktivní, a pak nastaví nově vytvořený klíč jako aktivní. K vydání tokenů SAS se v jednom okamžiku používá pouze jeden z klíčů, to je aktivní klíč. Zadejte příkaz s následujícími hodnotami parametru:
--vault-name: Předejte název trezoru klíčů. K vyhledání názvu trezoru klíčů použijte příkaz Azure CLI az keyvault list.-n: Předejte název vašeho účtu úložiště. K vyhledání názvu účtu úložiště použijte příkaz Azure CLI az storage account list.--resource-id: Předejte ID prostředku účtu úložiště ve tvaru/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>. K vyhledání ID předplatného použijte příkaz Azure CLI az account list. K vyhledání názvu účtu úložiště a skupiny prostředků účtu úložiště použijte příkaz Azure CLI az storage account list.
az keyvault storage add --vault-name <YourKeyVaultName> -n <YourStorageAccountName> --active-key-name key1 --auto-regenerate-key --regeneration-period P90D --resource-id "/subscriptions/<subscriptionID>/resourceGroups/<StorageAccountResourceGroupName>/providers/Microsoft.Storage/storageAccounts/<YourStorageAccountName>"
Tokeny sdíleného přístupového podpisu
Můžete také požádat o Key Vault tokeny sdíleného přístupového podpisu. Sdílený přístupový podpis poskytuje delegovaný přístup k prostředkům ve vašem účtu úložiště. Klientům můžete udělit přístup k prostředkům ve vašem účtu úložiště bez sdílení klíčů účtu. Sdílený přístupový podpis poskytuje zabezpečený způsob, jak sdílet prostředky úložiště, aniž byste měli ohrožené klíče účtu.
Příkazy v této části dokončí následující akce:
- Nastavte definici sdíleného přístupového podpisu
<YourSASDefinitionName>účtu. Definice se nastaví pro účet Key Vault úložiště ve<YourStorageAccountName>vašem trezoru<YourKeyVaultName>klíčů. - Vytvořte token sdíleného přístupového podpisu účtu pro služby Blob, File, Table a Queue. Token se vytvoří pro typy prostředků Service (Služba), Container (Kontejner) a Object (Objekt). Token se vytvoří se všemi oprávněními, přes https a se zadaným počátečním a koncovým datem.
- Nastavte Key Vault sdíleného přístupového podpisu spravovaného úložiště v trezoru. Definice má identifikátor URI šablony vytvořeného tokenu sdíleného přístupového podpisu. Definice má typ sdíleného přístupového podpisu
accounta je platná po dobu N dnů. - Ověřte, že se sdílený přístupový podpis uložil do trezoru klíčů jako tajný kód.
Vytvoření tokenu sdíleného přístupového podpisu
Vytvořte definici sdíleného přístupového podpisu pomocí příkazu az storage account generate-sas v Azure CLI. Tato operace vyžaduje storage oprávnění setsas a .
az storage account generate-sas --expiry 2020-01-01 --permissions rw --resource-types sco --services bfqt --https-only --account-name <YourStorageAccountName> --account-key 00000000
Po úspěšném spuštění operace zkopírujte výstup.
"se=2020-01-01&sp=***"
Tento výstup bude předán --template-uri parametru v dalším kroku.
Vygenerování definice sdíleného přístupového podpisu
Pomocí příkazu az keyvault storage sas-definition create v Azure CLI předejte výstup z předchozího kroku do parametru a vytvořte definici --template-uri sdíleného přístupového podpisu. Do parametru můžete zadat název podle vašeho -n výběru.
az keyvault storage sas-definition create --vault-name <YourKeyVaultName> --account-name <YourStorageAccountName> -n <YourSASDefinitionName> --validity-period P2D --sas-type account --template-uri <OutputOfSasTokenCreationStep>
Ověření definice sdíleného přístupového podpisu
Pomocí příkazu azure CLI az keyvault storage sas-definition show můžete ověřit, jestli je definice sdíleného přístupového podpisu uložená ve vašem trezoru klíčů.
K zobrazení obsahu tohoto tajného klíče teď můžete použít příkaz az keyvault storage sas-definition show a vlastnost id .
az keyvault storage sas-definition show --id https://<YourKeyVaultName>.vault.azure.net/storage/<YourStorageAccountName>/sas/<YourSASDefinitionName>
Další kroky
- Přečtěte si další informace o klíčích, tajných klíčích a certifikátech.
- Prohlédněte si články na Azure Key Vault blogu týmu.
- Viz referenční dokumentace k az keyvault storage.