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ítica de SKR de enclaves de aplicativo do Intel SGX

Exemplo 1: a política de SKR baseada em SGX da Intel validando os detalhes do MR Signer (signatário do enclave SGX) como parte das declarações 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)

{
  "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": "B958DC88-E41D-47F1-8D20-E57B6B7E9825"
        }
      ]
    }
  ]
}

Exemplos de políticas de SKR de contêineres confidenciais nas ACIs (Instâncias de Contêiner do Azure)

Exemplo 1: contêineres confidenciais na ACI validando os contêineres iniciados e metadados de configuração de contêiner como parte do início do grupo de contêineres com validações adicionadas de que este é um hardware AMD SEV-SNP.

Observação

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

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