Exemplos de política de versão de chave segura para Computação Confidencial do Azure

O SKR (Liberação Segura de Chave) só pode liberar chaves marcadas como exportáveis com base nas declarações geradas pelo MAA (Atestado do Microsoft Azure). Há uma forte integração entre a definição de política do SKR e as declarações do MAA. As declarações do MAA pelo TEE (ambiente de execução confiável) podem ser encontradas aqui.

Siga a gramática de política para obter mais exemplos sobre como você pode personalizar as políticas de SKR.

Exemplos de políticas SKR para enclaves de aplicação do Intel SGX

Exemplo 1: política de SKR baseada no Intel SGX que valida os detalhes do MR Signer (signatário do enclave SGX) como parte dos claims do MAA


{
  "anyOf": [
    {
      "authority": "https://sharedeus2.eus2.attest.azure.net",
      "allOf": [
        {
          "claim": "x-ms-sgx-mrsigner",
          "equals": "9fa48b1629bd246a1de3d38fb7df97f6554cd65d6b3b72e85b86848ae6b578ba"
        }
      ]
    }
  ],
  "version": "1.0.0"
}

Exemplo 2: a política de SKR baseada em Intel SGX validando os detalhes do MR Signer (signatário do enclave SGX) ou do Enclave do MR como parte das declarações do MAA


{
  "anyOf": [
    {
      "authority": "https://sharedeus2.eus2.attest.azure.net",
      "allOf": [
        {
          "claim": "x-ms-sgx-mrsigner",
          "equals": "9fa48b1629bd246a1de3d38fb7df97f6554cd65d6b3b72e85b86848ae6b578ba"
        },
        {
          "claim": "x-ms-sgx-mrenclave",
          "equals": "9fa48b1629bg677jfsaawed7772e85b86848ae6b578ba"
        }
      ]
    }
  ],
  "version": "1.0.0"
}

Exemplo 3: a política de SKR baseada em SGX da Intel validando o MR Signer (signatário do enclave SGX) e o Enclave do MR com um mínimo de detalhes do número SVN como parte das declarações do MAA

{
  "anyOf": [
    {
      "authority": "https://sharedeus2.eus2.attest.azure.net",
      "allOf": [
        {
          "claim": "x-ms-sgx-mrsigner",
          "equals": "9fa48b1629bd246a1de3d38fb7df97f6554cd65d6b3b72e85b86848ae6b578ba"
        },
        {
          "claim": "x-ms-sgx-mrenclave",
          "equals": "9fa48b1629bg677jfsaawed7772e85b86848ae6b578ba"
        },
        {
          "claim": "x-ms-sgx-svn",
          "greater": 1
        }
      ]
    }
  ],
  "version": "1.0.0"
}

Exemplos confidenciais de política de SKR do TEE da VM com base em VM AMD SEV-SNP

Exemplo 1: uma política de SKR que valida se esta CVM está em conformidade com o Azure e está em execução em um hardware AMD SEV-SNP genuíno, e se a autoridade de URL do MAA está distribuída em várias regiões.

{
    "version": "1.0.0",
    "anyOf": [
        {
            "authority": "https://sharedweu.weu.attest.azure.net",
            "allOf": [
                {
                    "claim": "x-ms-attestation-type",
                    "equals": "sevsnpvm"
                },
                {
                    "claim": "x-ms-compliance-status",
                    "equals": "azure-compliant-cvm"
                }
            ]
        },
        {
            "authority": "https://sharedeus2.weu2.attest.azure.net",
            "allOf": [
                {
                    "claim": "x-ms-attestation-type",
                    "equals": "sevsnpvm"
                },
                {
                    "claim": "x-ms-compliance-status",
                    "equals": "azure-compliant-cvm"
                }
            ]
        }
    ]
}

Exemplo 2: uma política de SKR que valida se a CVM é uma CVM compatível com o Azure, está em execução em um hardware AMD SEV-SNP genuíno e é de uma ID de Máquina Virtual conhecida. (As VMIDs são exclusivas no Azure, editam a parte “equals” da declaração no exemplo abaixo com a VMID exclusiva desejada)

{
  "version": "1.0.0",
  "allOf": [
    {
      "authority": "https://sharedweu.weu.attest.azure.net",
      "allOf": [
        {
          "claim": "x-ms-isolation-tee.x-ms-attestation-type",
          "equals": "sevsnpvm"
        },
        {
          "claim": "x-ms-isolation-tee.x-ms-compliance-status",
          "equals": "azure-compliant-cvm"
        },
        {
          "claim": "x-ms-azurevm-vmid",
          "equals": "<PLACE YOUR VMID here - for example - B958DC88-E41D-47F1-8D20-E57B6B7E9825>"
        }
      ]
    }
  ]
}

Exemplos de políticas SKR para VM de Lançamento Confiável (vTPM)

A Secure Key Release não se limita a ofertas de computação confidencial. Uma VM de Inicialização Confiável (Geração 2, Secure Boot + vTPM) também produz um token de atestação MAA, e uma política de liberação pode ser condicionada às declarações de inicialização medida do vTPM —secureboot e x-ms-azurevm-attested-pcr-values.pcrN. Essas alegações não exigem hardware AMD SEV-SNP ou Intel TDX. A computação confidencial também protege o material-chave liberado na memória do host. Use quando essa proteção for necessária. Para um passo a passo completo, veja Proteger a propriedade intelectual em VMs do Azure com liberação segura de chaves controlada por atestação.

Exemplo 1: Uma política de Trusted Launch SKR que valida a VM iniciada com o Secure Boot ativado (comprova uma plataforma Trusted Launch genuína e uma citação validada de vTPM).

{
  "version": "1.0.0",
  "anyOf": [
    {
      "authority": "https://sharedweu.weu.attest.azure.net",
      "allOf": [
        {
          "claim": "secureboot",
          "equals": true
        }
      ]
    }
  ]
}

Exemplo 2: Uma política de SKR de Inicialização Confiável que, adicionalmente, vincula a imagem inicializada por meio da correspondência com valores específicos de PCR (comumente pcr4 para o carregador de inicialização/kernel e pcr7 para o estado do Secure Boot). Leia os valores esperados de um token de atestação conhecido e bom e então substitua-os no código a seguir. Uma VM adulterada, recriada a partir de uma imagem ou com o disco substituído apresenta valores de PCR diferentes e tem o acesso negado.

{
  "version": "1.0.0",
  "anyOf": [
    {
      "authority": "https://sharedweu.weu.attest.azure.net",
      "allOf": [
        {
          "claim": "secureboot",
          "equals": true
        },
        {
          "claim": "x-ms-azurevm-attested-pcr-values.pcr4",
          "equals": "<BASE64_PCR4>"
        },
        {
          "claim": "x-ms-azurevm-attested-pcr-values.pcr7",
          "equals": "<BASE64_PCR7>"
        }
      ]
    }
  ]
}

Exemplos de política de SKR para contêineres confidenciais no Instâncias de Contêiner do Azure (ACI)

Exemplo 1: Contêineres confidenciais no ACI validando os contêineres iniciados e os metadados de configuração dos contêineres como parte da inicialização do grupo de contêineres, com validações adicionais para confirmar que se trata de hardware AMD SEV-SNP.

Observação

Os metadados dos contêineres são um hash de política baseado em Rego, conforme mostrado neste exemplo.

{
    "version": "1.0.0",
    "anyOf": [
        {
            "authority": "https://fabrikam1.wus.attest.azure.net",
            "allOf": [
                {
                    "claim": "x-ms-attestation-type",
                    "equals": "sevsnpvm"
                },
                {
                    "claim": "x-ms-compliance-status",
                    "equals": "azure-compliant-uvm"
                },
                {
                    "claim": "x-ms-sevsnpvm-hostdata",
                    "equals": "532eaabd9574880dbf76b9b8cc00832c20a6ec113d682299550d7a6e0f345e25"
                }
            ]
        }
    ]
}

Referências

MAA (Atestado do Microsoft Azure)

Proteja a propriedade intelectual em VMs do Azure com o Secure Key Release controlado por atestação

Conceito de liberação segura de chave e etapas básicas