Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek je druhou částí čtyřdílné série kurzů. První část obsahuje přehled klíčů spravovaných zákazníkem, jejich funkcí a důležitých informací, než ho povolíte v registru. Tento článek vás provede postupem povolení klíče spravovaného zákazníkem pomocí Azure CLI, webu Azure Portal nebo šablony Azure Resource Manageru.
Prerequisites
- Nainstalujte Azure CLI nebo se připravte na použití Azure Cloud Shellu.
- Přihlaste se do Azure Portalu.
Povolení klíče spravovaného zákazníkem pomocí Azure CLI
Vytvoření skupiny zdrojů
Spuštěním příkazu az group create vytvořte skupinu prostředků, která bude obsahovat váš trezor klíčů, registr kontejneru a další požadované prostředky:
az group create --name <resource-group-name> --location <location>
Vytvořit uživatelsky přiřazenou spravovanou identitu
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 hodnoty
idaprincipalId, abyste mohli konfigurovat přístup k registru pomocí klíčového trezoru.{ "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444", "clientSecretUrl": "https://control-eastus.identity.azure.net/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/myresourcegroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myidentityname/credentials?tid=aaaabbbb-0000-cccc-1111-dddd2222eeee&oid=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb&aid=00001111-aaaa-2222-bbbb-3333cccc4444", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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" }Kvůli pohodlí uložte hodnoty
idaprincipalIddo 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í soft delete. Pokud chcete zabránit ztrátě dat před náhodným odstraněním 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-protectionPro usnadnění: poznamenejte si ID prostředku úložiště 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í koncový bod), musíte povolit nastavení sítě, aby bylo možné povolit přístup důvěryhodnými službami Azure. Další informace najdete v tématu Konfigurace nastavení sítě služby Azure Key Vault.
Povolení spravovaných identit pro přístup k trezoru klíčů
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í klíče pro přístup pomocí spravované identity přiřazené uživatelem:
Spusťte příkaz az keyvault set policy . Předat dříve vytvořenou a uloženou hodnotu proměnné prostředí
principalID.Nastavte oprávnění ke klíči na
get,unwrapKeyawrapKey: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) Azure k přiřazení oprávnění spravované identitě přiřazené uživatelem a přístupu 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í použití uložte formát, který zvolíte pro ID klíče v
$keyIDproměnné prostředí. ID klíče můžete použít s verzí nebo bez verze.
Rotace klíčů
Můžete zvolit ruční nebo automatickou rotaci klíčů.
Šifrování registru pomocí klíče spravovaného zákazníkem, který má verzi klíče, umožní v Azure Container Registry pouze ruční obměnu klíčů. 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 bez uvedení verze klíče umožní automatické obměně klíčů detekovat novou verzi klíče ve službě 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 pomocí klíče spravovaného zákazníkem:
az acr encryption show --name <container-registry-name>
V závislosti na klíči použitém k šifrování registru se výstup podobá:
{
"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í webu Azure Portal
Vytvořit uživatelsky přiřazenou spravovanou identitu
Chcete-li vytvořit spravovanou identitu přiřazenou uživatelem pro prostředky Azure v Azure portálu:
Podle pokynů vytvořte identitu přiřazenou uživatelem.
Uložte název identity, abyste ho mohli použít v dalších krocích.
Vytvořte trezor klíčů.
Postupujte podle kroků v rychlém startu: Vytvoření trezoru klíčů pomocí webu Azure Portal.
Při vytváření trezoru klíčů pro klíč spravovaný zákazníkem povolte na kartě Základy nastavení ochrany před vymazáním . Toto nastavení pomáhá zabránit ztrátě dat způsobené náhodným odstraněním 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ě tak, aby umožňovalo přístup důvěryhodným službám Azure. Další informace najdete v tématu Konfigurace nastavení sítě služby Azure Key Vault.
Povolení spravovaných identit pro přístup k trezoru klíčů
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í klíče pro přístup pomocí spravované identity přiřazené uživatelem:
- Přejděte do trezoru klíčů.
- Vyberte Nastavení>zásad > přístupu + Přidat zásady přístupu.
- Vyberte Oprávnění ke klíči a pak vyberte Získat, Rozbalit klíč a Zalamovat klíč.
- V části Vybrat hlavní objekt vyberte název prostředku uživatelsky přiřazené spravované identity.
- Vyberte Přidat a potom Uložit.
Druhou možností je přiřadit Key Vault Crypto Service Encryption User roli RBAC uživatelsky přiřazené spravované identitě v rámci 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 >.
- Vyberte +Generovat/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 Vytvořit prostředek>Kontejnery>Registr kontejnerů.
- Na kartě Základy vyberte nebo vytvořte skupinu prostředků a zadejte název registru. V SKU vyberte Premium.
- Na kartě Šifrování u klíče spravovaného zákazníkem vyberte Povoleno.
- V části Identita vyberte spravovanou identitu, kterou jste vytvořili.
- Pro šifrování zvolte jednu z následujících možností:
- Zvolte Vybrat ze služby Key Vault a pak vyberte existující trezor klíčů a klíč nebo vyberte Vytvořit nový. Vybraný klíč není verzovaný a umožňuje automatickou obměnu klíčů.
- Vyberte Enter key URI a zadejte identifikátor existujícího klíče. Můžete zadat identifikátor URI klíče s verzí (pro klíč, který se musí otočit ručně) nebo identifikátor URI neversionovaného klíče (který umožňuje automatickou obměnu klíčů). Postup vytvoření klíče najdete v předchozí části.
- Vyberte možnost Zkontrolovat a vytvořit.
- Vyberte Vytvořit a nasaďte instanci registru.
Zobrazení stavu šifrování
Pokud chcete zobrazit stav šifrování vašeho 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 Manageru
Pomocí šablony Resource Manageru 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 Manageru 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')), '2023-07-01').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": "2023-07-01", "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')), '2023-07-01').principalId]", "permissions": { "keys": [ "get", "unwrapKey", "wrapKey" ] } } ] } }, { "type": "Microsoft.ManagedIdentity/userAssignedIdentities", "apiVersion": "2023-07-01", "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ý podle ID klíče
Spuštěním příkazu az deployment group create vytvořte registr pomocí předchozího souboru šablony. Pokud je uvedeno, 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
Přejděte k dalšímu článku, kde se dozvíte, jak rotovat klíče spravované zákazníkem, aktualizovat verze klíčů a jak odvolat klíč spravovaný zákazníkem.