本文回答使用元數據安全性通訊協定 (MSP) 功能的客戶常見問題。 如果您沒有看到可協助您的問題,請連絡支援小組。
用法
如何檢查功能是否已啟用?
您可以使用 GET VM API 來擷取虛擬機 (VM) 模型,以程式設計方式檢查 MSP 啟用。 屬性 proxyAgentSettings
會報告 MSP 組態。
此外,GuestProxyAgent
VM 執行時狀態中的實例檢視會從 VM 的角度報告 MSP 的狀態。 如果停用 MSP,則值為 "Disabled"
。
如何檢查元件健康情況?
實例 GuestProxyAgent
檢視會報告來賓代理程式(GPA)及其相依性的狀態。 每個元件 status
的值都會在狀況良好時顯示 RUNNING
。
元件 | 領域 |
---|---|
平均績點 (GPA) | keyLatchStatus.status |
eBPF 整合 | ebpfProgramStatus.status |
以下是完整的範例:
{
"version": "1.0.20",
"status": "SUCCESS",
"monitorStatus": {
"status": "RUNNING",
"message": "Monitor thread has not started yet."
},
"keyLatchStatus": {
"status": "RUNNING",
"message": "Found key details from local and ready to use. 122",
"states": {
"imdsRuleId": "/SUBSCRIPTIONS/<guid>/RESOURCEGROUPS/<rg_name>/PROVIDERS/MICROSOFT.COMPUTE/GALLERIES/GALLERYXX/INVMACCESSCONTROLPROFILES/...",
"secureChannelState": "Wireserver Enforce - IMDS Enforce",
"keyGuid": "e3882f98-da8d-4410-8394-06c23462781c",
"WireserverRuleId": "/SUBSCRIPTIONS/<guid>/RESOURCEGROUPS/<rg_name>/PROVIDERS/MICROSOFT.COMPUTE/GALLERIES/GALLERYXX/INVMACCESSCONTROLPROFILES/..."
}
},
"ebpfProgramStatus": {
"status": "RUNNING",
"message": "Started Redirector with eBPF maps - 143"
},
"proxyListenerStatus": {
"status": "RUNNING",
"message": "Started proxy listener 127.0.0.1:3080, ready to accept request - 27"
},
"telemetryLoggerStatus": {
"status": "RUNNING",
"message": "Telemetry event logger thread started."
},
"proxyConnectionsCount": 590
}
是否可以布建已啟用 MSP 的新 Linux VM,而不需在映射中包含 GPA?
否。 Linux 布建沒有一個步驟,平臺可以在客戶收到 VM 之前安裝其他軟體。 此外,大部分的Linux客戶都不希望此模型。 這更符合 Windows 哲學。
基於安全性考慮,如果您未建立安全連線,MSP 不會允許您成功布建 VM。 GPA 負責建立安全連線,因此必須已經存在。
如果您不想使用包含 GPA 的映像,您必須先建立 VM,之後再啟用 MSP。 在預覽期間,我們會監控使用模式,並評估支援此情境的潛在方法,允許將 GPA 安裝為 VM 擴充功能,而不是直接包含。
特徵
是否支援ARM64?
MSP 功能處於預覽狀態時,無法使用 ARM64 支援。
設計
如何建立「閂鎖密鑰」,以及如何綁定至虛擬機器?
Azure 主機會產生閂鎖密鑰,並將其儲存為平台數據。 密鑰對每個 VM 而言都是唯一的。 您只能在該 VM 的私人連線上使用它來連線到WireServer和 Azure 實例元數據服務。
允許清單(原則)如何配置?
allowlist 定義為 VM 模型的一部分。 MSP 功能設定一文說明如何建立允許清單。
來賓代理程序會定期從 WireServer 擷取此政策,就像任何其他 VM 元數據一樣。 allowlist 可讓使用者以管理其他 VM 設定的相同方式集中管理原則。 它還可以防止 VM 內的使用者竄改系統。
允許清單在哪一處被強制執行(GPA 或 WireServer)?
這兩個元件在強制執行中都扮演了角色。 MSP 使用共同責任模型:
WireServer 和 Instance Metadata Service 負責確保只有受信任的委派 (GPA) 和受信任委派背書的用戶端可以存取 VM 的元數據和秘密。
元數據服務無法且不應該執行 VM 內省。 它們本身無法判斷 VM 內哪些軟體提出要求。
受信任的委派(GPA)負責確定客戶的身份並核可請求。
GPA 可以依賴作業系統核心,權威性地識別虛擬機內發出請求的程序。
最重要的元素是 MSP 是 預設關閉 的模型,而其他安全性措施(例如客體防火牆規則中)則 為默認開啟。 如果 GPA 下降或被略過,WireServer 會拒絕任何要求,因為鎖定的密鑰無法驗證這些要求。
為什麼此功能是選擇性開啟,而不是必需或自動啟用?
Azure 中幾乎每個基礎結構即服務 (IaaS) VM 或虛擬機擴展集都會使用實例元數據服務。 工作負載的多樣性需要彈性。 雖然 MSP 的設計會抽象化大部分的重大變更,但如果工作負載最終相依於較不安全的組態,強制執行更強的安全性會中斷工作負載。
為什麼 MSP 需要新的代理程式,而不是使用 Azure 客體代理程式更新?
GPA 的責任與 Azure 客體代理程式不同。 GPA 也有較高的效能需求。