Exemplos de política de Lançamento de Chave Segura para Computação Confidencial do Azure

O Secure Key Release (SKR) só pode liberar chaves marcadas exportáveis com base nas declarações geradas pelo Microsoft Azure Attestation (MAA). Há uma integração estreita na definição da política SKR com reivindicações MAA. As declarações MAA por ambiente de execução confiável (TEE) podem ser encontradas aqui.

Siga a gramática da política para obter mais exemplos sobre como personalizar as políticas SKR.

Exemplos de políticas SKR das Enclaves de Aplicação do Intel SGX

Exemplo 1: Política SKR baseada no Intel SGX validando os detalhes do MR Signer (signatário do enclave SGX) como parte das reivindicações da MAA


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

Exemplo 2: Política SKR baseada em Intel SGX validando o MR Signer (SGX enclave signer) ou detalhes do MR Enclave como parte das declarações 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: Política SKR baseada em Intel SGX validando o MR Signer (signatário do enclave SGX) e o MR Enclave com um mínimo de detalhes do número SVN como parte das reivindicações 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íticas VM AMD SEV-SNP baseadas em VM TEE SKR

Exemplo 1: Uma política SKR que valida se este é compatível com o Azure CVM e está sendo executado em um hardware AMD SEV-SNP genuíno e a autoridade de URL MAA está espalhada por muitas 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 SKR que valida se o CVM é um CVM compatível com o Azure e está sendo executado em um hardware AMD SEV-SNP genuíno e é de uma ID de máquina virtual conhecida. (As VMIDs são únicas no Azure, altere a parte 'equals' da declaração no exemplo abaixo com a VMID única 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 Trusted Launch VM (vTPM)

A Secure Key Release não se limita a ofertas de computação confidenciais. Uma VM de Lançamento Confiável (Geração 2, Secure Boot + vTPM) também produz um token de atestação MAA, e uma política de lançamento pode bloquear as suas reivindicações de arranque medido vTPM —secureboot e x-ms-azurevm-attested-pcr-values.pcrN. Estas afirmações não exigem AMD SEV-SNP nem hardware Intel TDX. A computação confidencial também protege o material-chave libertado na memória do host. Use-o quando essa proteção for necessária. Para uma explicação completa, consulte Proteger a propriedade intelectual em VMs do Azure com o Secure Key Release condicionado por atestação.

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

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

Exemplo 2: Uma política de Trusted Launch SKR que adicionalmente fixa a imagem arrancada ao corresponder valores específicos de PCR (normalmente pcr4 para o boot loader/kernel e pcr7 para o estado Secure Boot). Leia os valores esperados de um token de atestação de qualidade conhecida e depois substitua-os no código seguinte. Uma VM manipulada, recriada a partir de uma imagem ou com o disco substituído apresenta valores de PCR diferentes e é rejeitada.

{
  "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>"
        }
      ]
    }
  ]
}

Contêineres confidenciais em instâncias de contêiner do Azure (ACI) Exemplos de política SKR

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

Nota

Os metadados dos contêineres são um hash de política baseado em Rego refletido 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

Atestado do Microsoft Azure (MAA)

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

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