Konfigurace klíčů spravovaných zákazníkem pro účet služby Azure Cosmos DB pomocí služby Azure Managed HSM Key Vault

PLATÍ PRO: NoSQL MongoDB Cassandra Gremlin Tabulka

Projděte si odkaz Konfigurace klíčů spravovaných zákazníkem pomocí Azure Key Vault

Poznámka

Klíče spravované zákazníkem jsou v současné době dostupné jenom pro nové účty Azure Cosmos DB. Měli byste je nakonfigurovat během vytváření účtu.

Registrace poskytovatele prostředků Azure Cosmos DB pro vaše předplatné Azure

  1. Přihlaste se k Azure Portal, přejděte do svého předplatného Azure a na kartě Nastavení vyberte Poskytovatelé prostředků:

    Snímek obrazovky s možností Poskytovatelé prostředků v navigační nabídce prostředků

  2. Vyhledejte poskytovatele prostředků Microsoft.DocumentDB . Ověřte, jestli je poskytovatel prostředků už označený jako zaregistrovaný. Pokud ne, zvolte poskytovatele prostředků a vyberte Zaregistrovat:

    Snímek obrazovky s možností Zaregistrovat pro poskytovatele prostředků Microsoft.DocumentDB

Konfigurace Key Vault spravovaného HSM Azure

Použití klíčů spravovaných zákazníkem se službou Azure Cosmos DB vyžaduje, abyste v instanci Azure Key Vault, kterou chcete použít k hostování šifrovacích klíčů, nastavili dvě vlastnosti: obnovitelné odstranění a ochranu proti vymazání.

Vzhledem k tomu, že obnovitelné odstranění je ve výchozím nastavení zapnuté, musí být povolená jenom ochrana proti vymazání. Při vytváření spravovaného modulu HSM použijte následující příkaz rozhraní příkazového řádku:

objectId = az ad signed-in-user show --query id -o tsv
az keyvault create --hsm-name $hsmName --resource-group $rgName --location $location --enable-purge-protection true --administrators $objectId --retention-days 7

Pokud používáte existující instanci spravovaného hsm Azure Key Vault, můžete ověřit, že jsou tyto vlastnosti povolené, a to pomocí následujícího příkazu v části Vlastnosti:

az keyvault show $hsmName $rgName

Pokud není povolená ochrana proti vymazání, můžete použít následující příkaz:

az keyvault update-hsm --enable-purge-protection true --hsm-name $hsmName --resource-group $rgName

Další informace o příkazech rozhraní příkazového řádku, které jsou k dispozici pro spravované moduly HSM, najdete v následujících Key Vault Azure.

Vytvoření šifrovacího klíče a přiřazení odpovídajících rolí

Po aktivaci spravovaného HSM je potřeba vytvořit klíč, který se použije pro účet CMK. Za tímto účelem se správci přiřadí role Spravovaný uživatel kryptografických služeb HSM. Další informace o tom, jak RBAC (řízení přístupu na základě role) funguje se spravovaným modulem HSM, najdete v následujících článcích: Předdefinované role spravovaného MÍSTNÍHO HSM RBAC – Azure Key Vault | | řízení přístupu ke službě Microsoft Learn a spravovanému hsm v Azure Microsoft Learn

objectId = az ad signed-in-user show --query id -o tsv
$keyName = "Name of your key"
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto User" --assignee $objectId --scope /keys
az keyvault key create --hsm-name $hsmName --name $keyName --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

Teď, když je klíč vytvořený, je potřeba pro zřízení účtu přiřadit roli korespondenta buď k ID objektu zabezpečení služby Cosmos DB, nebo spravované identitě Azure. Role "Uživatel šifrování spravované kryptografické služby HSM" se používá, protože má pouze tři oprávnění potřebná k práci s účtem CMK: získání, zabalení a rozbalení. Tato oprávnění jsou také vymezena tak, aby byla užitečná pouze pro klíče uložené ve spravovaném modulu HSM Azure.

Bez spravované identity Azure:

$cosmosPrincipal = az ad sp show --id a232010e-820c-4083-83bb-3ace5fc29d0b --query id -o tsv
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
$keyURI = "https://{0}.managedhsm.azure.net/keys/{1}" -f $hsmName, $keyName
az cosmosdb create -n $cosmosName -g $rgName --key-uri $keyURI

Se spravovanou identitou Azure:

$identityResourceID = az identity show -g $rgName -n $identityName --query id -o tsv
$identityPrincipal = az identity show -g $rgName -n $identityName --query principalId -o tsv
$defaultIdentity = "UserAssignedIdentity={0}" -f $identityResourceID
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys
$keyURI = "https://{0}.managedhsm.azure.net/keys/{1}" -f $hsmName, $keyName
az cosmosdb create -n $cosmosName -g $rgName --key-uri $keyURI --assign-identity $identityResourceID --default-identity $defaultIdentity

Tím se zřídí účet CMK služby Cosmos DB s klíčem uloženým ve spravovaném modulu HSM Azure Key Vault.

Přepnutí na spravovanou identitu přiřazenou systémem

Cosmos DB podporuje použití spravované identity přiřazené systémem pro účet CMK Cosmos DB. Další informace o cmk spravované identity přiřazené systémem najdete v tématu Konfigurace klíčů spravovaných zákazníkem pro účet služby Azure Cosmos DB.

Spuštěním následujících příkazů přepněte z výchozí identity na spravovanou identitu přiřazenou systémem:

az cosmosdb identity assign -n $cosmosName -g $rgName
$principalMSIId = az cosmosdb identity show -n $cosmosName -g $rgName --query principalId -o tsv
az keyvault role assignment create --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $principalMSIId --scope /keys
az cosmosdb update --resource-group $rgName --name $cosmosName --default-identity "SystemAssignedIdentity"

Jako volitelnou poznámku je možné odebrat původní přiřazení role k HLAVNÍMu ID služby Cosmos DB nebo spravované identitě Azure.

az keyvault role assignment delete --hsm-name $hsmName --role "Managed HSM Crypto Service Encryption User" --assignee $cosmosPrincipal --scope /keys

Další kroky