Funcionalidade Secure Key Release com AKV e Azure Confidential Computing (ACC)

O Secure Key Release (SKR) é uma funcionalidade do Azure Key Vault (AKV) Managed HSM and Premium offering. A liberação segura de chaves permite a liberação de uma chave protegida por HSM do AKV para um Ambiente de Execução Confiável (TEE) atestado, como um enclave seguro, TEEs baseados em VM, etc. O SKR adiciona outra camada de proteção de acesso às suas chaves de descriptografia/criptografia de dados, onde você pode direcionar um aplicativo + ambiente de tempo de execução TEE com configuração conhecida obter acesso ao material da chave. As políticas de SKR definidas no momento da criação da chave exportável regem o acesso a essas chaves.

Suporte SKR com ofertas AKV

Fluxo geral seguro de liberação de chaves com TEE

A SKR só pode liberar chaves com base nas declarações geradas pelo Microsoft Azure Attestation (MAA). Há uma estreita integração na definição da política SKR para reivindicações MAA.

Diagrama do Fluxo de Liberação de Chave Segura.

Os passos abaixo são para AKV Premium.

Etapa 1: Criar um HSM Premium do Key Vault Backed

Siga os detalhes aqui para a criação de AKV baseada em Az CLI

Certifique-se de definir o valor de [--sku] como "premium".

Etapa 2: Criar uma política de liberação de chave segura

Uma Política de Liberação de Chave Segura é uma política de liberação de formato json, conforme definido aqui , que especifica um conjunto de declarações necessárias, além da autorização para liberar a chave. As reivindicações aqui são reivindicações baseadas em MAA, conforme referenciado aqui para SGX e aqui para AMD SEV-SNP CVM.

Visite a página de exemplos específicos de TEE para obter mais detalhes. Para obter mais informações sobre a gramática da política SKR, consulte Gramática da política de liberação segura de chaves do Azure Key Vault.

Antes de definir uma política SKR, certifique-se de executar seu aplicativo TEE por meio do fluxo de atestado remoto. O atestado remoto não é abordado como parte deste tutorial.

Exemplo

{
    "version": "1.0.0",
    "anyOf": [ // Always starts with "anyOf", meaning you can multiple, even varying rules, per authority.
        {
            "authority": "https://sharedweu.weu.attest.azure.net",
            "allOf": [ // can be replaced by "anyOf", though you cannot nest or combine "anyOf" and "allOf" yet.
                {
                    "claim": "x-ms-isolation-tee.x-ms-attestation-type", // These are the MAA claims.
                    "equals": "sevsnpvm"
                },
                {
                    "claim": "x-ms-isolation-tee.x-ms-compliance-status",
                    "equals": "azure-compliant-cvm"
                }
            ]
        }
    ]
}


Etapa 3: Criar uma chave exportável no AKV com a política SKR anexada

Detalhes exatos do tipo de chave e outros atributos associados podem ser encontrados aqui.

az keyvault key create --exportable true --vault-name "vault name from step 1" --kty RSA-HSM --name "keyname" --policy "jsonpolicyfromstep3 -can be a path to JSON"

Etapa 4: Aplicativo em execução dentro de um TEE fazendo um atestado remoto

Esta etapa pode ser específica para o tipo de TEE que você está executando seu aplicativo Intel SGX Enclaves ou máquinas virtuais confidenciais (CVM) baseadas em AMD SEV-SNP ou contêineres confidenciais executados em enclaves CVM com AMD SEV-SNP etc.

Siga estes exemplos de referências para várias ofertas de tipos de TEE com o Azure:

Perguntas Mais Frequentes (FAQ)

Posso executar SKR com ofertas de computação não confidenciais?

N.º A política anexada à SKR só compreende as declarações MAA associadas a TEEs baseadas em hardware.

Posso trazer meu próprio provedor de atestado ou serviço e usar essas reivindicações para AKV validar e liberar?

N.º AKV só entende e se integra com MAA hoje.

Posso usar SDKs AKV para executar o RELEASE de chave?

Sim. SDK mais recente integrado com a chave de suporte da API AKV 7.3 RELEASE.

Você pode compartilhar alguns exemplos das principais políticas de lançamento?

Sim, exemplos detalhados por tipo de TEE estão listados aqui.

Posso anexar o tipo de política SKR com certificados e segredos?

N.º Neste momento, não.

Referências

Exemplos de políticas SKR

Instância de contêiner do Azure com contêineres confidenciais Liberação de chave segura com carros laterais de contêiner

CVM em aplicativos AMD SEV-SNP com exemplo de liberação de chave segura

AKV REST API com detalhes SKR

Gramática da política de liberação segura de chaves do Azure Key Vault

AKV SDKs