Liberação de Chave Segura com o AKV e a Computação Confidencial do Azure (ACC)

A Liberação de Chave Segura (SKR) é uma funcionalidade do HSM gerenciado do Azure Key Vault (AKV) e uma oferta Premium. A liberação de chave segura 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 chaves de descriptografia/criptografia de dados em que você pode direcionar para um aplicativo + ambiente de runtime TEE com configuração conhecida para 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 do AKV

Fluxo geral de liberação de chave segura com TEE

A SKR só pode liberar chaves com base nas declarações geradas pelo Atestado do Microsoft Azure (MAA). Há uma forte integração entre a definição de política do SKR e as declarações do MAA.

Diagrama do fluxo de liberação de chave segura.

As etapas abaixo são para o AKV Premium.

Etapa 1: criar um Key Vault Premium com suporte de HSM

Siga os detalhes aqui para a criação do AKV baseado na CLI do Azure

Defina 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 em formato json, conforme definido aqui, que especifica um conjunto de declarações necessárias além da autorização para liberar a chave. As declarações aqui são declarações baseadas no MAA, conforme referenciado aqui para SGX e aqui para CVM do AMD SEV-SNP.

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

Antes de definir uma política de SKR, execute 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 de 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 em um TEE fazendo um atestado remoto

Esta etapa pode ser específica para o tipo de TEE no qual você está executando Enclaves Intel SGX do seu aplicativo ou Máquinas Virtuais Confidenciais (CVM) baseadas em AMD SEV-SNP ou Contêineres Confidenciais em execução em Enclaves de CVM com AMD SEV-SNP etc.

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

Perguntas Frequentes (FAQ)

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

Não. A política anexada à SKR só aceita as declarações do MAA associadas a TEEs baseados em hardware.

Posso trazer meu próprio provedor ou serviço de atestado e usar essas declarações que o AKV valide e libere?

Não. Atualmente, o AKV só aceita e se integra ao MAA.

Posso usar SDKs do AKV para executar a liberação de chave?

Sim. O SDK mais recente integrado à API do AKV 7.3 dá suporte à liberação de chaves.

Você pode compartilhar alguns exemplos das políticas de liberação de chave?

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

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

Não. Não no momento.

Referências

Exemplos de políticas de SKR

Instância de Contêiner do Azure com contêineres confidenciais para Liberação de Chave Segura com sidecars de contêineres

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

API REST do AKV com detalhes de SKR

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

SDKs do AKV