Przykłady zasad bezpiecznego wydania klucza na potrzeby przetwarzania poufnego na platformie Azure

Bezpieczne wydanie klucza (SKR) może zwalniać tylko wyeksportowane klucze oznaczone na podstawie oświadczeń wygenerowanych przez usługę Microsoft Azure Attestation (MAA). Istnieje ścisła integracja definicji zasad SKR z oświadczeniami MAA. Oświadczenia MAA według zaufanego środowiska wykonawczego (TEE) można znaleźć tutaj.

Aby uzyskać więcej przykładów dotyczących dostosowywania zasad SKR, postępuj zgodnie z zasadą grammar.

Przykłady zasad SKR dla enklaw aplikacji Intel SGX

Przykład 1: Zasady SKR oparte na intel SGX weryfikacji mr signer (SGX enclave signer) szczegóły w ramach oświadczeń MAA


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

Przykład 2: Zasady SKR oparte na intel SGX weryfikacji mr signer (SGX enclave signer) lub MR enklawy w ramach oświadczeń 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"
}

Przykład 3: Zasady SKR oparte na Intel SGX weryfikowanie podpisywania MR (enclave SGX) i enklawy MR z minimalną liczbą SVN w ramach oświadczeń 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"
}

Przykłady zasad poufności dla TEE SKR w maszynach wirtualnych opartych na AMD SEV-SNP

Przykład 1: Zasady SKR, które sprawdzają, czy jest to kompatybilne z platformą Azure i działa na oryginalnym sprzęcie AMD SEV-SNP, a autorytet URL MAA jest obecny w wielu regionach.

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

Przykład 2: zasada SKR, która sprawdza, czy CVM jest zgodna ze standardami Azure, działa na oryginalnym sprzęcie AMD SEV-SNP i posiada znane ID maszyny wirtualnej. (Identyfikatory VMID są unikatowe na platformie Azure, edytuj część "equals" żądania w poniższym przykładzie, używając żądanego, unikalnego identyfikatora VMID)

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

Przykłady polityk SKR dla Trusted Launch VM (vTPM)

Secure Key Release nie ogranicza się tylko do poufnych rozwiązań obliczeniowych. Trusted Launch VM (2. generacji, Secure Boot + vTPM) również generuje token atestacyjny MAA, a zasady wydania mogą być uzależnione od jego oświadczeń vTPM dotyczących pomiarowego rozruchu — secureboot oraz x-ms-azurevm-attested-pcr-values.pcrN. Te twierdzenia nie wymagają sprzętu AMD SEV-SNP ani Intel TDX. Przetwarzanie poufne dodatkowo chroni ujawniony materiał kluczowy w pamięci przed hostem. Używaj go, gdy jest potrzebna taka ochrona. Pełne omówienie znajdziesz w artykule Ochrona własności intelektualnej na maszynach wirtualnych platformy Azure za pomocą mechanizmu Secure Key Release opartego na zaświadczaniu.

Przykład 1: Polityka Trusted Launch SKR, która waliduje maszynę wirtualną uruchomioną z włączonym Secure Boot (dowodzi, że to prawdziwa platforma Trusted Launch i zweryfikowany cytat vTPM).

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

Przykład 2: Polityka Trusted Launch SKR, która dodatkowo pinuje bootowany obraz poprzez dopasowanie określonych wartości PCR (najczęściej pcr4 dla bootloadera/jądra oraz pcr7 dla stanu Secure Boot). Odczytaj oczekiwane wartości ze sprawdzonego tokena atestacyjnego, a następnie podstaw je do poniższego kodu. Zmodyfikowana maszyna wirtualna, maszyna wirtualna ponownie wdrożona z obrazu lub maszyna wirtualna z podmienionym dyskiem ma inne wartości PCR i zostaje odrzucona.

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

Przykłady zasad SKR dla poufnych kontenerów w usłudze Azure Container Instances (ACI)

Przykład 1: Poufne kontenery na platformie ACI z weryfikacją zainicjowanych kontenerów i metadanych ich konfiguracji w ramach uruchamiania grupy kontenerów, z dodatkowymi walidacjami potwierdzającymi użycie sprzętu AMD SEV-SNP.

Uwaga

Metadane kontenerów to skrót zasad oparty na rego, jak pokazano w tym przykładzie.

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

Źródła

Zaświadczenie platformy Microsoft Azure (MAA)

Chroń własność intelektualną na maszynach wirtualnych Azure za pomocą atestacyjnego Secure Key Release

Koncepcja bezpiecznego uwolnienia klucza i podstawowe kroki