次の方法で共有


機密 VM を使用した、セキュリティで保護されたキー リリースのハウツー ガイド

以下の記事では、AMD SEV-SNP ベースの機密仮想マシンでアプリケーションが実行されている場合に、Azure Key Vault からセキュリティで保護されたキー リリースを実行する方法について説明します。 セキュリティで保護されたキー リリースと Azure Confidential Computing の詳細については、こちらを参照してください

ここで説明するように、SKR では、SKR を実行するアプリケーションは、Microsoft Azure Attestation (MAA) を使用してリモート ゲスト構成証明フローを通過する必要があります。

全体的なフローとアーキテクチャ

Azure Key Vault から構成証明済みの機密仮想マシンにキーをリリースできるようにするには、次の手順に従う必要があります。

  1. 機密仮想マシンにマネージド ID を割り当てます。 システム割り当てマネージド ID またはユーザー割り当てマネージド ID がサポートされています。
  2. マネージド ID に "リリース" キー アクセス許可を付与する Key Vault アクセス ポリシーを設定します。 ポリシーを使用すると、機密仮想マシンから Key Vault にアクセスし、リリース操作を実行できます。 Key Vault Managed HSM を使用している場合は、"Managed HSM 暗号化サービス リリース ユーザー" ロールのメンバーシップを割り当てます。
  3. エクスポート可能としてマークされ、関連付けられているリリース ポリシーを持つ Key Vault キーを作成します。 キー リリース ポリシーにより、キーは構成証明済みの機密仮想マシンに関連付けられ、望みの目的にのみキーを使用することができます。
  4. リリースを実行するには、機密仮想マシンから Key Vault に HTTP 要求を送信します。 HTTP 要求では、要求本文に機密 VM 構成証明済みプラットフォーム レポートを含める必要があります。 構成証明済みプラットフォーム レポートは、機密 VM など、高信頼実行環境対応プラットフォームの状態の信頼性を検証するために使用されます。 Microsoft Azure Attestation サービスを使用して、構成証明済みプラットフォーム レポートを作成し、要求に含めることができます。

これから実行する上記の操作の図。

Azure Key Vault のデプロイ

エクスポート可能なキーを使用して AKV Premium または AKV mHSM を設定します。 こちらの詳細な手順に従って、SKR エクスポート可能キーを設定します

Bicep

@description('Required. Specifies the Azure location where the key vault should be created.')
param location string = resourceGroup().location

@description('Specifies the Azure Active Directory tenant ID that should be used for authenticating requests to the key vault. Get it by using Get-AzSubscription cmdlet.')
param tenantId string = subscription().tenantId

resource keyVault 'Microsoft.KeyVault/vaults@2021-11-01-preview' = {
  name: 'mykeyvault'
  location: location
  properties: {
    tenantId: tenantId
    sku: {
      name: 'premium'
      family: 'A'
    }
  }
}

ARM テンプレート

    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2021-11-01-preview",
      "name": "mykeyvault",
      "location": "[parameters('location')]",
      "properties": {
        "tenantId": "[parameters('tenantId')]",
        "sku": {
          "name": "premium",
          "family": "A"
        }
      }
    }

機密仮想マシンをデプロイする

ARM テンプレートを使用して機密 VM をデプロイする」方法に関するクイック スタート手順に従います

システム割り当てマネージド ID を有効化する

Azure リソースのマネージド ID は、Microsoft Entra ID で自動的に管理される ID を Azure サービスに提供します。 この ID を使用すると、コード内に資格情報を記述することなく、Microsoft Entra の認証をサポートする任意のサービスに対して認証を行うことができます。

CVM でシステム割り当てマネージド ID を有効にするには、お使いのアカウントに仮想マシン共同作成者ロールの割り当てが必要です。 その他の Microsoft Entra ディレクトリ ロールを割り当てる必要はありません。

  1. Azure にローカルでサインインする場合も、Azure Portal を使用してサインインする場合も、VM が含まれる Azure サブスクリプションに関連付けられているアカウントを使用します。

  2. システム割り当てマネージド ID を有効にするには、テンプレートをエディターに読み込み、対象の Microsoft.Compute/virtualMachines リソースを探し、name: vmName プロパティと同じレベルに "identity" プロパティを追加します。 次の構文を使用します。

       identity:{
         type: 'SystemAssigned'
       }
    
  3. テンプレートに resource の詳細を追加します。

     resource confidentialVm 'Microsoft.Compute/virtualMachines@2021-11-01' = {
       name: vmName
       location: location
       identity:{
         type: 'SystemAssigned'
       }
       // other resource provider properties
     }