セキュリティで保護されたキー リリース (SKR) は、Azure Key Vault (AKV) マネージド HSM および Premium オファリングの機能です。 セキュリティで保護されたキー リリースを使用すると、AKV から、セキュリティで保護されたエンクレーブや VM ベースの TEE などの構成証明済み高信頼実行環境 (TEE) に KSM 保護キーをリリースできるようになります。SKR では、データ暗号化解除/暗号化キーにアクセス保護の別の層を追加します。ここでは、既知の構成のアプリケーション + TEE ランタイム環境をターゲットにして、キー マテリアルにアクセスすることができます。 エクスポート可能なキーの作成時に定義された SKR ポリシーによって、これらのキーへのアクセスが制御されます。
AKV オファリングでの SKR サポート
TEE を使用した全体的なセキュリティで保護されたキー リリース フロー
SKR では、Microsoft Azure Attestation (MAA) によって生成された要求に基づいてのみキーをリリースできます。 SKR ポリシー定義と MAA 要求とは緊密に統合されています。
AKV Premium の手順は次のとおりです。
手順 1: Premium HSM で保護された Key Vault を作成する
Az CLI ベースの AKV の作成については、こちらの詳細に従ってください
必ず [--sku] の値を "premium" に設定してください。
手順 2: セキュリティで保護されたキー リリース ポリシーを作成する
セキュリティで保護されたキー リリース ポリシーは、こちらで定義されている JSON 形式のリリース ポリシーであり、キーをリリースするための認可に加えて必要とされる一連の要求が指定されています。 ここでの要求は、SGX についてはこちらで、AMD SEV-SNP CVM についてはこちらで参照されている MAA ベースの要求です。
詳細については、TEE 固有の例に関するページを参照してください。 SKR ポリシーの文法の詳細については、「Azure Key Vault セキュリティで保護されたキー リリース ポリシーの文法」を参照してください。
SKR ポリシーを設定する前に、必ずリモート構成証明フローに従って TEE アプリケーションを実行してください。 このチュートリアルでは、リモート構成証明については説明しません。
例
{
"version": "1.0.0",
"anyOf": [ // Always starts with "anyOf", meaning you can multiple, even varying rules, per authority.
{
"authority": "https://sharedweu.weu.attest.azure.net",
"allOf": [ // can be replaced by "anyOf", though you cannot nest or combine "anyOf" and "allOf" yet.
{
"claim": "x-ms-isolation-tee.x-ms-attestation-type", // These are the MAA claims.
"equals": "sevsnpvm"
},
{
"claim": "x-ms-isolation-tee.x-ms-compliance-status",
"equals": "azure-compliant-cvm"
}
]
}
]
}
手順 3: アタッチされた SKR ポリシーで、エクスポート可能なキーを AKV に作成する
キーの種類と関連するその他の属性の正確な詳細については、こちらを参照してください。
az keyvault key create --exportable true --vault-name "vault name from step 1" --kty RSA-HSM --name "keyname" --policy "jsonpolicyfromstep3 -can be a path to JSON"
手順 4: リモート構成証明を行う TEE 内で実行されているアプリケーション
この手順は、アプリケーションを実行している TEE の種類に特有の場合があります (Intel SGX エンクレーブや、AMD SEV-SNP を使用した CVM エンクレーブで実行されている AMD SEV-SNP ベースの機密仮想マシン (CVM) または機密コンテナーなど)。
Azure を使用したさまざまな種類の TEE オファリングについては、次の参照例に従ってください。
- セキュリティで保護されたキー リリースを実行する、AMD EV-SNP ベースの CVM 内のアプリケーション
- SKR サイドカー コンテナーを伴う Azure Container Instances (ACI) を使用した機密コンテナー
- セキュリティで保護されたキー リリースを実行する Intel SGX ベースのアプリケーション - オープン ソース ソリューション Mystikos の実装
よくあるご質問 (FAQ)
機密計算以外のプログラムでSKRを行うことはできますか?
はい。 Secure Key ReleaseはAzure Key Vault PremiumおよびManaged HSMの機能です。 リリース操作は、計算タイプに関係なく、署名済みのMicrosoft Azure Attestation(MAA)トークンをキーのリリースポリシーに対して検証します。 機密コンピューティングの提供(機密VM、機密コンテナ)はこれらのトークンの最も一般的な供給源です。なぜなら、ハードウェアベースのTEE主張を含んでいるからですが、必須ではありません。 信頼されたローンチVMは、例えば secureboot 請求やvTPM測定 x-ms-azurevm-attested-pcr-values PCR請求など、MAA認証トークンも生成し、リリースポリシーによってこれらの請求に対するキーリリースを制限できます。 トークン要件およびクレーム構造については、Azure Key Vault Secure Key Release Policy Grammarをご覧ください。 機密コンピューティングは、ホストから解放された鍵資料をメモリから保護します。その保護が必要な場合は、機密コンピューティングの提供を提供します。
独自のl構成証明プロバイダーまたはサービスを持ち込み、それらを使用して、AKV に検証およびリリースを実行させることはできますか?
Microsoft Azure Attestationはネイティブに統合された認証サービスです。 リリースポリシーは、他の認証機関からのトークンも検証できます。ただし、そのトークンが期待される構造に準拠し、OpenID Connectをサポートし、期待されるクレームを搭載し、Key Vaultが信頼する公開CA(現在はDigiCert)にチェーンする証明書によって署名されている必要があります。 詳細については、Azure Key Vault Secure Key release Policy Grammar をご覧ください。
AKV SDK を使用してキー リリースを実行できますか?
はい。 7.3 AKV API と統合された最新の SDK はキー リリースをサポートしています。
キー リリース ポリシーの例はありますか?
はい。TEE の種類別の詳細な例については、こちらに記載されています。
SKR の種類のポリシーを証明書とシークレットにアタッチできますか?
いいえ。 現時点ではありません。
リファレンス
Azure Container Instances の機密コンテナーにおける、コンテナー サイドカーを使用したセキュア キー リリース
セキュリティで保護されたキー リリースを使用した AMD SEV-SNP アプリケーションでの CVM の例
Azure Key Vault セキュリティで保護されたキー リリース ポリシーの文法