Azure 機密運算的安全密鑰發行原則範例

安全金鑰釋放 (SKR) 只能根據 Microsoft Azure 證明 (MAA) 產生的宣告,釋出標示為可匯出的金鑰。 MAA 宣告與 SKR 原則定義之間有緊密整合。 可在這裡找到由受信任執行環境 (TEE) 提出的 MAA 宣告。

請遵循原則文法,以取得如何自訂 SKR 原則的更多範例。

Intel SGX 應用程式記憶體保護區 SKR 原則範例

範例 1:INTEL SGX 型 SKR 原則,用於在 MAA 宣告過程中驗證 MR 簽署者 (SGX 記憶體保護區簽署者) 詳細數據


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

範例 2:INTEL SGX 型 SKR 原則,用於在 MAA 宣告過程中驗證 MR 簽署者 (SGX 記憶體保護區簽署者) 或 MR 記憶體保護區詳細資料


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

範例 3:Intel SGX 型 SKR 原則,用於在 MAA 宣告過程中驗證 MR 簽署者 (SGX 記憶體保護區簽署者) 和 MR 記憶體保護區,其中包含最小 SVN 號碼詳細資料

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

以 AMD SEV-SNP 為基礎的機密虛擬機器 VM TEE SKR 政策範例

範例 1:一個 SKR 原則,以驗證是否符合 Azure 規範的 CVM,並在真正的 AMD SEV-SNP 硬體上執行,且 MAA URL 授權單位分散到許多區域。

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

範例 2:一個 SKR 原則,以驗證 CVM 是否為符合 Azure 規範的 CVM,並在真正的 AMD SEV-SNP 硬體上執行,且為已知的虛擬機器識別碼。 (VMID 在 Azure 中是唯一的,請在下例中編輯宣告中的「等於」部分,使用所需且唯一的 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>"
        }
      ]
    }
  ]
}

受信任啟動虛擬機(vTPM)SKR 政策範例

安全金鑰釋放不限於機密運算服務。 受信任啟動虛擬機(第二代,安全啟動 + vTPM)也會產生一個 MAA 認證憑證,且發布政策可對其 vTPM 測量開機聲明進行門檻限制——securebootx-ms-azurevm-attested-pcr-values.pcrN。 這些宣稱不需要 AMD SEV-SNP 或 Intel TDX 硬體。 機密運算同時保護記憶體中釋放的金鑰資料,防止主機取得。 當需要保護時使用。 完整攻略請參閱「保護 Azure VM 智慧財產權,採用認證門檻的安全金鑰釋出」。

範例 1: 一個可信啟動 SKR 政策,用來驗證啟用安全啟動的虛擬機(證明真實的可信啟動平台及驗證的 vTPM 報價)。

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

範例 2: 可信啟動 SKR 政策,另外透過比對特定的 PCR 值來固定已啟動的映像檔(通常 pcr4 用於開機載入程式/核心,pcr7 用於安全開機狀態)。 讀取已知良好證明標記的期望值,然後將它們替換成以下程式碼。 遭到竄改、重新製作映像或更換磁碟的虛擬機,會量測到不同的 PCR 值,因此將遭拒絕。

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

Azure 容器執行個體 (ACI) 上機密容器的 SKR 原則範例

範例 1:ACI 上的機密容器會在容器群組啟動時,驗證已啟動的容器及容器設定中繼資料,並額外驗證其是否為 AMD SEV-SNP 硬體。

注意

容器中繼資料是以 Rego 為基礎的原則雜湊,如本範例所示。

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

參考資料

Microsoft Azure 證明 (MAA)

保護 Azure 虛擬機上的智慧財產權,並採用認證門檻的安全金鑰釋出

安全金鑰發行概念和基本步驟