トラステッド起動 では、高度で永続的な攻撃手法から保護することで、第 2 世代仮想マシン (VM) のセキュリティが向上します。 これにより、管理者は、検証済みおよび署名済みのブートローダー、OS カーネル、ドライバーを使用して、基になる仮想マシンを含む AKS ノードを配置できます。 セキュリティで保護された測定済みブートを使用することで、管理者はブート チェーン全体の整合性に関する分析情報と信頼度を得ることができます。
この記事は、この新機能とその実装方法を理解するのに役立ちます。
Important
2025 年 11 月 30 日の時点で、Azure Kubernetes Service (AKS) は Azure Linux 2.0 のセキュリティ更新プログラムをサポートまたは提供しなくなりました。 Azure Linux 2.0 ノード イメージは、 202512.06.0 リリースでフリーズします。 2026 年 3 月 31 日以降、ノード イメージは削除され、ノード プールをスケーリングできなくなります。 ノード プールをサポートされている Kubernetes バージョンにアップグレードするか、osSku AzureLinux3 に移行して、サポートされている Azure Linux バージョンに移行します。 詳細については、「 [廃止] AKS 上の Azure Linux 2.0 ノード プール」を参照してください。
概要
Trusted Launch は、個別に有効にできる複数の連携インフラストラクチャ テクノロジで構成されています。 テクノロジごとに、高度な脅威に対する防御の別のレイヤーが提供されます。
vTPM - トラステッド起動では、TPM 2.0 仕様に準拠しているハードウェア トラステッド プラットフォーム モジュール (TPM) の仮想化バージョンが導入されています。 キーと測定のためのセキュリティで保護された専用のコンテナーとして機能します。 Trusted Launch では、VM に独自の専用 TPM インスタンスが提供され、任意の VM の範囲外のセキュリティで保護された環境で実行されます。 vTPM により、VM のブート チェーン全体 (UEFI、OS、システム、ドライバー) を測定することで、構成証明が有効になります。 トラステッド起動では、vTPMを使用してクラウドがリモートアテステーションを実行します。 これは、プラットフォームの正常性チェックや、信頼ベースの意思決定に使用されます。 正常性チェックとして、トラステッド起動により、VM が正常に起動したことを暗号によって認定できます。 プロセスが失敗した場合、承認されていないコンポーネントが VM で実行されていることが原因の可能性があり、Microsoft Defender for Cloud によって整合性アラートが発行されます。 そのアラートには、整合性チェックに合格しなかったコンポーネントの詳細が含まれます。
セキュア ブート - 信頼された起動のルートには、VM のセキュア ブートがあります。 プラットフォームのファームウェアに実装されているこのモードにより、マルウェアベースのルートキットやブート キットがインストールされるのを防ぎます。 セキュア ブートの動作により、署名されたオペレーティング システムとドライバーだけでが起動できることが保証されます。 それにより、VM 上のソフトウェア スタックに対する "信頼のルート" が確立されます。 セキュア ブートが有効になっていると、すべての OS ブート コンポーネント (ブート ローダー、カーネル、カーネル ドライバー) は、信頼された発行元によって署名されている必要があります。 セキュア ブートは、Windows と一部の Linux ディストリビューションの両方でサポートされています。 セキュア ブートで、信頼された発行元によって署名されたイメージの認証が失敗した場合、VM の起動は許可されません。 詳細については、「セキュア ブート」を参照してください。
開始する前に
- Azure CLI、バージョン 2.66.0 以降。
az --versionを実行してバージョンを見つけ、az upgradeを実行してバージョンをアップグレードします。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
- セキュア ブートには、署名されたブート ローダー、OS カーネル、ドライバーが必要です。
制限事項
- AKS では、kubernetes バージョン 1.25.2 以降でのトラステッド起動がサポートされています。
- トラステッド起動では、Azure 第 2 世代 VM のみがサポートされます。
- Windows Server オペレーティング システムを使用するノード プールはサポートされていません。
- FIPS、Arm64、ポッド サンドボックス、または機密 VM と同じノード プールで、信頼された起動を有効にすることはできません。 詳細については、 ノード イメージのドキュメントを参照してください。
- トラステッド起動で仮想ノードはサポートされていません。
- 可用性セットはサポートされず、仮想マシン スケール セットのみがサポートされます。
- GPU ノード プールでセキュア ブートを有効にするには、GPU ドライバーのインストールをスキップする必要があります。 詳細については、「GPU ドライバーのインストールのスキップ」を参照してください。
- エフェメラル OS ディスクは、信頼できる起動を使用して作成でき、すべてのリージョンがサポートされています。 ただし、すべての仮想マシン のサイズがサポートされているわけではありません。 詳細については、「トラステッド起動エフェメラル OS サイズ」を参照してください。
- AKS 用 Flatcar Container Linux では、AKS での信頼された起動はサポートされていません。
信頼された起動が有効になっている AKS クラスターを作成する
クラスターを作成するときに、vTPM またはセキュア ブートを有効にすると、カスタマイズされた信頼された起動イメージを使用するようにノード プールが自動的に設定されます。 このイメージは、Trusted Launch で有効になっているセキュリティ機能をサポートするように特別に構成されています。
az aks create コマンドを使用して、AKS クラスターを作成します。 コマンドを実行する前に、次のパラメータを確認します。
- --name: myAKSCluster など、AKS クラスターの一意の名前を入力します。
- --resource-group: AKS クラスター リソースをホストする既存のリソース グループの名前を入力します。
- --enable-secure-boot: セキュア ブートで、信頼された発行元によって署名されたイメージを認証できるようにします。
- --enable-utcm: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
注
セキュア ブートには、署名されたブート ローダー、OS カーネル、ドライバーが必要です。 セキュア ブートを有効にした後でノードが起動しない場合は、Azure Linux 仮想マシン内でセキュア ブートエラーの原因となっているブート コンポーネントを確認できます。 「セキュア ブートエラーの確認を参照してください」。
次の例では、myResourceGroup 内の 1 つのノードを持つ myAKSCluster という名前のクラスターを作成し、セキュア ブートと vTPM を有効にします。
az aks create \ --name myAKSCluster \ --resource-group myResourceGroup \ --node-count 1 \ --enable-secure-boot \ --enable-vtpm \ --generate-ssh-keys次のコマンドを実行して、Kubernetes クラスターのアクセス資格情報を取得します。 az aks バージョン変更資格情報 コマンドを使用してクラスター名とリソース グループ名の既定値を置き換えます。
az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
信頼できる起動パラメーターを使用してテンプレートを作成します。 テンプレートを作成する前に、次のパラメーターを確認します。
- enableSecureBoot: セキュア ブートで、信頼された発行元によって署名されたイメージを認証できるようにします。
- enableVTPM: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
テンプレートで、
enableVTPMとenableSecureBootの値を指定します。 次の例に示すように、CLI デプロイに使用されるのと同じスキーマが、Microsoft.ContainerService/managedClusters/agentPoolsの"properties"定義に存在します。"properties": { ..., "securityProfile": { "enableVTPM": "true", "enableSecureBoot": "true", } }クラスターで vTPM とセキュア ブートを有効にしてテンプレートをデプロイします。 詳細な手順については、 ARM テンプレートを使用した AKS クラスターのデプロイ に関するページを参照してください。
トラステッド起動が有効になっているノード プールを追加する
ノード プールを作成すると、vTPM またはセキュア ブートを有効にすると、カスタマイズされた信頼された起動イメージを使用するようにノード プールが自動的に設定されます。 このイメージは、Trusted Launch で有効になっているセキュリティ機能をサポートするように特別に構成されています。
az aks nodepool addコマンドを使用して、トラステッド起動が有効になっているノード プールを追加します。 コマンドを実行する前に、次のパラメータを確認します。- --cluster-name: AKS クラスターの名前を入力します。
- --resource-group: AKS クラスター リソースをホストする既存のリソース グループの名前を入力します。
- --name: ノード プールの一意の名前を入力します。 ノード プールの名前には小文字の英数字のみを使用でき、小文字で始まる必要があります。 Linux のノード プールの長さは、1 から 11 文字の範囲内である必要があります。
- --node-count: Kubernetes エージェント プール内のノードの数。 既定値は 3 です。
- --enable-secure-boot: セキュア ブートで、信頼された発行元によって署名されたイメージを認証できるようにします。
- --enable-utcm: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
注
セキュア ブートには、署名されたブート ローダー、OS カーネル、ドライバーが必要です。 セキュア ブートを有効にした後でノードが起動しない場合は、Azure Linux 仮想マシン内でセキュア ブートエラーの原因となっているブート コンポーネントを確認できます。 「セキュア ブートエラーの確認を参照してください」。
次の例では、3 つのノードを持つ myAKSCluster という名前のクラスターで、vTPM とセキュア ブートが有効になっているノード プールを配置します。
az aks nodepool add --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-count 3 --enable-vtpm --enable-secure-bootノード プールが信頼された起動イメージを使用していることを確認します。
信頼された起動ノードには、次の出力があります。
-
"TL"など、"AKSUbuntu-2204-gen2TLcontainerd"を含むノード イメージのバージョン。 -
"Security-type"は"Trusted Launch"になるはずです。
kubectl get nodes kubectl describe node {node-name} | grep -e node-image-version -e security-type-
信頼できる起動パラメーターを使用してテンプレートを作成します。 テンプレートを作成する前に、次のパラメーターを確認します。
- enableSecureBoot: セキュア ブートで、信頼された発行元によって署名されたイメージを認証できるようにします。
- enableVTPM: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
テンプレートで、
enableVTPMとenableSecureBootの値を指定します。 次の例に示すように、CLI デプロイに使用されるのと同じスキーマが、Microsoft.ContainerService/managedClusters/agentPoolsの"properties"定義に存在します。"properties": { ..., "securityProfile": { "enableVTPM": "true", "enableSecureBoot": "true", } }クラスターで vTPM とセキュア ブートを有効にしてテンプレートをデプロイします。 詳細な手順については、 ARM テンプレートを使用した AKS クラスターのデプロイ に関するページを参照してください。
既存のトラステッド起動ノード プールで vTPM またはセキュア ブートを有効にする
既存のトラステッド起動ノード プールを更新して、vTPM またはセキュア ブートを有効にすることができます。 次のシナリオがサポートされています。
- ノード プールを作成するときは
--enable-secure-bootのみを指定し、--enable-vtpmを実行するために更新コマンドを実行できます - ノード プールを作成するときは
--enable-vtpmのみを指定し、--enable-secure-bootを実行するために更新コマンドを実行できます
ノード プールに現在信頼された起動イメージがない場合は、セキュア ブートまたは vTPM を有効にするためにノード プールを更新することはできません。
ノード プールが信頼された起動イメージを使用していることを確認します。
信頼された起動ノードには、次の出力があります。
-
"TL"など、"AKSUbuntu-2204-gen2TLcontainerd"を含むノード イメージのバージョン。 -
"Security-type"は"Trusted Launch"になるはずです。
kubectl get nodes kubectl describe node {node-name} | grep -e node-image-version -e security-typeノード プールに現在信頼された起動イメージがない場合は、セキュア ブートまたは vTPM を有効にするためにノード プールを更新することはできません。
-
az aks nodepool updateコマンドを使用して、トラステッド起動が有効になっているノード プールを更新します。 コマンドを実行する前に、次のパラメータを確認します。- --resource-group: 既存の AKS クラスターをホストしている既存のリソース グループの名前を入力します。
- クラスター名: AKS クラスターの一意の名前 ("myAKSCluster" など) を入力します。
- --name: mynodepoolなど、ノード プールの名前を入力します。
- --enable-secure-boot: セキュア ブートで、イメージが信頼された発行元によって署名されていることを認証できるようにします。
- --enable-utcm: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
注
セキュア ブートには、署名されたブート ローダー、OS カーネル、ドライバーが必要です。 セキュア ブートを有効にした後でノードが起動しない場合は、Azure Linux 仮想マシン内でセキュア ブートエラーの原因となっているブート コンポーネントを確認できます。 「セキュア ブートエラーの確認を参照してください」。
次の例では、myResourceGroup の myAKSCluster 上のノード プール mynodepool を更新し、vTPM を有効にします。 このシナリオでは、ノード プールの作成時にセキュア ブートが有効になりました。
az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-vtpm次の例では、myResourceGroup の myAKSCluster 上のノード プール mynodepool を更新し、セキュア ブートを有効にします。 このシナリオでは、ノード プールの作成時に vTPM が有効になりました。
az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --enable-secure-boot
ノード プールが信頼された起動イメージを使用していることを確認します。
信頼された起動ノードには、次の出力があります。
-
"TL"など、"AKSUbuntu-2204-gen2TLcontainerd"を含むノード イメージのバージョン。 -
"Security-type"は"Trusted Launch"になるはずです。
kubectl get nodes kubectl describe node {node-name} | grep -e node-image-version -e security-typeノード プールに現在信頼された起動イメージがない場合は、セキュア ブートまたは vTPM を有効にするためにノード プールを更新することはできません。
-
信頼できる起動パラメーターを使用してテンプレートを作成します。 テンプレートを作成する前に、次のパラメーターを確認します。
- enableSecureBoot: セキュア ブートで、信頼された発行元によって署名されたイメージを認証できるようにします。
- enableVTPM: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
テンプレートで、
enableVTPMとenableSecureBootの値を指定します。 次の例に示すように、CLI デプロイに使用されるのと同じスキーマが、Microsoft.ContainerService/managedClusters/agentPoolsの"properties"定義に存在します。"properties": { ..., "securityProfile": { "enableVTPM": "true", "enableSecureBoot": "true", } }クラスターで vTPM とセキュア ブートを有効にしてテンプレートをデプロイします。 詳細な手順については、 ARM テンプレートを使用した AKS クラスターのデプロイ に関するページを参照してください。
トラステッド起動が有効になっているノードにポッドを割り当てる
ポッドを制限し、特定のノードまたはノードで実行するように制限したり、信頼された起動が有効になっているノードに対する優先設定を制限したりできます。 これは、ポッド マニフェストで次のノード プール セレクターを使用して制御できます。
spec:
nodeSelector:
kubernetes.azure.com/security-type = "TrustedLaunch"
既存のトラステッド起動ノード プールで vTPM またはセキュア ブートを無効にする
既存のノード プールを更新して、vTPM またはセキュア ブートを無効にすることができます。 この状況が発生しても、信頼された起動イメージは引き続き残ります。 ノード プールを更新することで、いつでも vTPM またはセキュア ブートを再度有効にすることができます。
az aks nodepool update コマンドを使用して、セキュア ブートまたは vTPM を無効にするようにノード プールを更新します。 コマンドを実行する前に、次のパラメータを確認します。
- --resource-group: 既存の AKS クラスターをホストしている既存のリソース グループの名前を入力します。
- クラスター名: AKS クラスターの一意の名前 ("myAKSCluster" など) を入力します。
- --name: mynodepoolなど、ノード プールの名前を入力します。
- --enable-secure-boot: セキュア ブートで、イメージが信頼された発行元によって署名されていることを認証できるようにします。
- --enable-utcm: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
既存のノード プールで vTPM を無効にするには:
az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-vtpm
既存のノード プールでセキュア ブートを無効にするには:
az aks nodepool update --cluster-name myCluster --resource-group myResourceGroup --name mynodepool --disable-secure-boot
信頼できる起動パラメーターを使用してテンプレートを作成します。 テンプレートを作成する前に、次のパラメーターを確認します。
- enableSecureBoot: セキュア ブートで、信頼された発行元によって署名されたイメージを認証できるようにします。
- enableVTPM: vTPM を有効にし、VM のブート チェーン全体を測定して構成証明を実行します。
テンプレートで、
enableVTPMとenableSecureBootの値を指定します。 次の例に示すように、CLI デプロイに使用されるのと同じスキーマが、Microsoft.ContainerService/managedClusters/agentPoolsの"properties"定義に存在します。"properties": { ..., "securityProfile": { "enableVTPM": "false", "enableSecureBoot": "false", } }クラスターで vTPM とセキュア ブートが無効になっているテンプレートをデプロイします。 詳細な手順については、 ARM テンプレートを使用した AKS クラスターのデプロイ に関するページを参照してください。
次のステップ
この記事では、信頼できる起動を有効にする方法について説明しました。 信頼できる起動の詳細を確認します。