Povolení klíče spravovaného zákazníkem
Tento článek je druhou částí čtyřdílné série kurzů. První část poskytuje přehled klíčů spravovaných zákazníkem, jejich funkcí a důležitých informací před tím, než je v registru povolíte. Tento článek vás provede postupem povolení klíče spravovaného zákazníkem pomocí Azure CLI, Azure Portal nebo šablony Azure Resource Manager.
Požadavky
- Nainstalujte Azure CLI nebo se připravte na použití Azure Cloud Shell.
- Přihlaste se k webu Azure Portal.
Povolení klíče spravovaného zákazníkem pomocí Azure CLI
Vytvoření skupiny prostředků
Spuštěním příkazu az group create vytvořte skupinu prostředků, která bude obsahovat trezor klíčů, registr kontejneru a další požadované prostředky:
az group create --name <resource-group-name> --location <location>
Vytvoření spravované identity přiřazené uživatelem
Nakonfigurujte spravovanou identitu přiřazenou uživatelem pro registr, abyste měli přístup k trezoru klíčů:
Spuštěním příkazu az identity create vytvořte spravovanou identitu:
az identity create \ --resource-group <resource-group-name> \ --name <managed-identity-name>
Ve výstupu příkazu si poznamenejte
id
hodnoty aprincipalId
pro konfiguraci přístupu k registru s trezorem klíčů:{ "clientId": "xxxx2bac-xxxx-xxxx-xxxx-192cxxxx6273", "clientSecretUrl": "https://control-eastus.identity.azure.net/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentityname/credentials?tid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&oid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&aid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myresourcegroup", "location": "eastus", "name": "myidentityname", "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "resourceGroup": "myresourcegroup", "tags": {}, "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "type": "Microsoft.ManagedIdentity/userAssignedIdentities" }
Pro usnadnění si uložte
id
hodnoty aprincipalId
do proměnných prostředí:identityID=$(az identity show --resource-group <resource-group-name> --name <managed-identity-name> --query 'id' --output tsv) identityPrincipalID=$(az identity show --resource-group <resource-group-name> --name <managed-identity-name> --query 'principalId' --output tsv)
Vytvořte trezor klíčů.
Spuštěním příkazu az keyvault create vytvořte trezor klíčů, do kterého můžete uložit klíč spravovaný zákazníkem pro šifrování registru.
Ve výchozím nastavení nový trezor klíčů automaticky povolí nastavení obnovitelného odstranění . Pokud chcete zabránit ztrátě dat v případě náhodného odstranění klíčů nebo trezorů klíčů, doporučujeme povolit nastavení ochrany před vymazáním :
az keyvault create --name <key-vault-name> \ --resource-group <resource-group-name> \ --enable-purge-protection
Pro usnadnění si poznamenejte ID prostředku trezoru klíčů a uložte hodnotu do proměnných prostředí:
keyvaultID=$(az keyvault show --resource-group <resource-group-name> --name <key-vault-name> --query 'id' --output tsv)
Povolení přístupu k trezoru klíčů důvěryhodným službám
Pokud je trezor klíčů v ochraně pomocí brány firewall nebo virtuální sítě (privátního koncového bodu), musíte povolit nastavení sítě, aby se povolil přístup důvěryhodným službám Azure. Další informace najdete v tématu Konfigurace nastavení sítě Azure Key Vault.
Povolení přístupu k trezoru klíčů spravovaným identitám
Existují dva způsoby, jak povolit spravovaným identitám přístup k trezoru klíčů.
První možností je nakonfigurovat zásady přístupu pro trezor klíčů a nastavit oprávnění ke klíči pro přístup pomocí spravované identity přiřazené uživatelem:
Spusťte příkaz az keyvault set policy . Předejte dříve vytvořenou a uloženou proměnnou prostředí hodnotu
principalID
.Nastavte oprávnění klíče na
get
,unwrapKey
awrapKey
:az keyvault set-policy \ --resource-group <resource-group-name> \ --name <key-vault-name> \ --object-id $identityPrincipalID \ --key-permissions get unwrapKey wrapKey
Druhou možností je použít řízení přístupu na základě role (RBAC) v Azure k přiřazení oprávnění spravované identitě přiřazené uživatelem a přístup k trezoru klíčů. Spusťte příkaz az role assignment create a přiřaďte Key Vault Crypto Service Encryption User
roli spravované identitě přiřazené uživatelem:
az role assignment create --assignee $identityPrincipalID \
--role "Key Vault Crypto Service Encryption User" \
--scope $keyvaultID
Vytvoření klíče a získání ID klíče
Spuštěním příkazu az keyvault key create vytvořte klíč v trezoru klíčů:
az keyvault key create \ --name <key-name> \ --vault-name <key-vault-name>
Ve výstupu příkazu si poznamenejte ID klíče (
kid
):[...] "key": { "crv": null, "d": null, "dp": null, "dq": null, "e": "AQAB", "k": null, "keyOps": [ "encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey" ], "kid": "https://mykeyvault.vault.azure.net/keys/mykey/<version>", "kty": "RSA", [...]
Pro usnadnění si uložte formát, který zvolíte pro ID klíče, do
$keyID
proměnné prostředí. ID klíče můžete použít s verzí nebo bez.
Obměna klíčů
Můžete zvolit ruční nebo automatickou obměnu klíčů.
Šifrování registru pomocí klíče spravovaného zákazníkem, který má verzi klíče, umožní pouze ruční obměně klíčů v Azure Container Registry. Tento příklad ukládá vlastnost klíče kid
:
keyID=$(az keyvault key show \
--name <keyname> \
--vault-name <key-vault-name> \
--query 'key.kid' --output tsv)
Šifrování registru pomocí klíče spravovaného zákazníkem vynecháním verze klíče umožní automatickou obměně klíčů ke zjištění nové verze klíče v Azure Key Vault. Tento příklad odebere verzi z vlastnosti klíče kid
:
keyID=$(az keyvault key show \
--name <keyname> \
--vault-name <key-vault-name> \
--query 'key.kid' --output tsv)
keyID=$(echo $keyID | sed -e "s/\/[^/]*$//")
Vytvoření registru s klíčem spravovaným zákazníkem
Spuštěním příkazu az acr create vytvořte registr na úrovni služby Premium a povolte klíč spravovaný zákazníkem.
Předejte hodnoty ID spravované identity (
id
) a ID klíče (kid
) uložené v proměnných prostředí v předchozích krocích:az acr create \ --resource-group <resource-group-name> \ --name <container-registry-name> \ --identity $identityID \ --key-encryption-key $keyID \ --sku Premium
Zobrazit stav šifrování
Spuštěním příkazu az acr encryption show zobrazte stav šifrování registru s klíčem spravovaným zákazníkem:
az acr encryption show --name <container-registry-name>
V závislosti na klíči použitém k šifrování registru je výstup podobný následujícímu:
{
"keyVaultProperties": {
"identity": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"keyIdentifier": "https://myvault.vault.azure.net/keys/myresourcegroup/abcdefg123456789...",
"keyRotationEnabled": true,
"lastKeyRotationTimestamp": xxxxxxxx
"versionedKeyIdentifier": "https://myvault.vault.azure.net/keys/myresourcegroup/abcdefg123456789...",
},
"status": "enabled"
}
Povolení klíče spravovaného zákazníkem pomocí Azure Portal
Vytvoření spravované identity přiřazené uživatelem
Vytvoření spravované identity přiřazené uživatelem pro prostředky Azure v Azure Portal:
Postupujte podle pokynů k vytvoření identity přiřazené uživatelem.
Uložte název identity, abyste ji mohli použít v pozdějších krocích.
Vytvořte trezor klíčů.
Postupujte podle kroků v tématu Rychlý start: Vytvoření trezoru klíčů pomocí Azure Portal.
Při vytváření trezoru klíčů pro klíč spravovaný zákazníkem povolte na kartě Základy nastavení Ochrana před vymazáním . Toto nastavení pomáhá zabránit ztrátě dat v případě náhodného odstranění klíčů nebo trezorů klíčů.
Povolení přístupu k trezoru klíčů důvěryhodným službám
Pokud je trezor klíčů v ochraně pomocí brány firewall nebo virtuální sítě (privátní koncový bod), povolte nastavení sítě a povolte přístup důvěryhodným službám Azure. Další informace najdete v tématu Konfigurace nastavení sítě Azure Key Vault.
Povolení přístupu k trezoru klíčů spravovaným identitám
Existují dva způsoby, jak povolit spravovaným identitám přístup k trezoru klíčů.
První možností je nakonfigurovat zásady přístupu pro trezor klíčů a nastavit oprávnění ke klíči pro přístup pomocí spravované identity přiřazené uživatelem:
- Přejděte do trezoru klíčů.
- Vyberte Nastavení>Zásady > přístupu + Přidat zásady přístupu.
- Vyberte Oprávnění ke klíči a pak vyberte Získat, Rozbalit klíč a Zabalit klíč.
- V části Vybrat objekt zabezpečení vyberte název prostředku spravované identity přiřazené uživatelem.
- Vyberte Přidat a pak vyberte Uložit.
Druhou možností je přiřadit Key Vault Crypto Service Encryption User
roli RBAC spravované identitě přiřazené uživatelem v oboru trezoru klíčů. Podrobný postup najdete v tématu Přiřazování rolí Azure s využitím webu Azure Portal.
Vytvoření klíče
Vytvořte klíč v trezoru klíčů a použijte ho k šifrování registru. Pokud chcete jako klíč spravovaný zákazníkem vybrat konkrétní verzi klíče, postupujte podle těchto kroků. Pokud je přístup k trezoru klíčů omezený na privátní koncový bod nebo vybrané sítě, možná budete muset před vytvořením registru vytvořit klíč.
- Přejděte do trezoru klíčů.
- Vyberte Klíče nastavení>.
- Vyberte +Vygenerovat/importovat a zadejte jedinečný název klíče.
- Přijměte zbývající výchozí hodnoty a pak vyberte Vytvořit.
- Po vytvoření vyberte klíč a pak vyberte aktuální verzi. Zkopírujte identifikátor klíče pro verzi klíče.
Vytvoření registru kontejneru
- Vyberte Create a resource ContainersContainer Registry (Vytvořit registr kontejneru prostředků>).>
- Na kartě Základy vyberte nebo vytvořte skupinu prostředků a pak zadejte název registru. V části SKU vyberte Premium.
- Na kartě Šifrování v části Klíč spravovaný zákazníkem vyberte Povoleno.
- V části Identita vyberte spravovanou identitu, kterou jste vytvořili.
- V části Šifrování zvolte jednu z následujících možností:
- Zvolte Vybrat z Key Vault a pak buď vyberte existující trezor klíčů a klíč, nebo vyberte Vytvořit nový. Klíč, který vyberete, není převedený a umožňuje automatickou obměnu klíčů.
- Vyberte Zadat identifikátor URI klíče a zadejte identifikátor existujícího klíče. Můžete zadat buď identifikátor URI klíče s verzí (pro klíč, který se musí ručně obměňovat), nebo identifikátor URI klíče bez verze (který umožňuje automatickou obměnu klíčů). Postup vytvoření klíče najdete v předchozí části.
- Vyberte Zkontrolovat a vytvořit.
- Výběrem možnosti Vytvořit nasaďte instanci registru.
Zobrazit stav šifrování
Pokud chcete zobrazit stav šifrování registru na portálu, přejděte do svého registru. V části Nastavení vyberte Šifrování.
Povolení klíče spravovaného zákazníkem pomocí šablony Resource Manager
Pomocí šablony Resource Manager můžete vytvořit registr kontejneru a povolit šifrování pomocí klíče spravovaného zákazníkem:
Zkopírujte následující obsah šablony Resource Manager do nového souboru a uložte ho jako CMKtemplate.json:
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "vault_name": { "defaultValue": "", "type": "String" }, "registry_name": { "defaultValue": "", "type": "String" }, "identity_name": { "defaultValue": "", "type": "String" }, "kek_id": { "type": "String" } }, "variables": {}, "resources": [ { "type": "Microsoft.ContainerRegistry/registries", "apiVersion": "2019-12-01-preview", "name": "[parameters('registry_name')]", "location": "[resourceGroup().location]", "sku": { "name": "Premium", "tier": "Premium" }, "identity": { "type": "UserAssigned", "userAssignedIdentities": { "[resourceID('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]": {} } }, "dependsOn": [ "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]" ], "properties": { "adminUserEnabled": false, "encryption": { "status": "enabled", "keyVaultProperties": { "identity": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name')), '2018-11-30').clientId]", "KeyIdentifier": "[parameters('kek_id')]" } }, "networkRuleSet": { "defaultAction": "Allow", "virtualNetworkRules": [], "ipRules": [] }, "policies": { "quarantinePolicy": { "status": "disabled" }, "trustPolicy": { "type": "Notary", "status": "disabled" }, "retentionPolicy": { "days": 7, "status": "disabled" } } } }, { "type": "Microsoft.KeyVault/vaults/accessPolicies", "apiVersion": "2018-02-14", "name": "[concat(parameters('vault_name'), '/add')]", "dependsOn": [ "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name'))]" ], "properties": { "accessPolicies": [ { "tenantId": "[subscription().tenantId]", "objectId": "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities', parameters('identity_name')), '2018-11-30').principalId]", "permissions": { "keys": [ "get", "unwrapKey", "wrapKey" ] } } ] } }, { "type": "Microsoft.ManagedIdentity/userAssignedIdentities", "apiVersion": "2018-11-30", "name": "[parameters('identity_name')]", "location": "[resourceGroup().location]" } ] }
Postupujte podle kroků v předchozích částech a vytvořte následující prostředky:
- Trezor klíčů identifikovaný názvem
- Klíč trezoru klíčů identifikovaný id klíče
Spuštěním příkazu az deployment group create vytvořte registr pomocí předchozího souboru šablony. Pokud je to uvedené, zadejte nový název registru a název spravované identity přiřazené uživatelem spolu s názvem trezoru klíčů a ID klíče, které jste vytvořili.
az deployment group create \ --resource-group <resource-group-name> \ --template-file CMKtemplate.json \ --parameters \ registry_name=<registry-name> \ identity_name=<managed-identity> \ vault_name=<key-vault-name> \ key_id=<key-vault-key-id>
Spuštěním příkazu az acr encryption show zobrazte stav šifrování registru:
az acr encryption show --name <registry-name>
Další kroky
V dalším článku si projdete obměněmi klíčů spravovaných zákazníkem, aktualizací verzí klíčů a odvoláním klíče spravovaného zákazníkem.
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