Azure Kubernetes Service (AKS)のマネージド ID の概要

この記事では、AKS のシステム割り当てマネージド ID とユーザー割り当てマネージド ID の概要について説明します。これには、そのしくみ、ロールの割り当て、AKS 固有のマネージド ID 機能が含まれます。

Azure のマネージド ID の詳細については、Azure リソースのマネージド ID に関するドキュメントを参照してください

マネージド ID は、AKS での クラスター間 ID シナリオを対象とします。AKS クラスターが Azure で動作して、ユーザーに代わってリソースを管理する方法です。 その他の ID シナリオ (コントロール プレーンの認証と承認、ポッドから Azure へのワークロード ID) については、 AKS のアクセスと ID のオプションに関するページを参照してください。

システム割り当て ID とユーザー割り当て ID の種類は、ポッドで実行されているアプリケーションで使用することを目的とした ワークロード ID とは異なります。

AKS のマネージド ID の認可フロー

AKS クラスターでは、システム割り当てマネージド ID またはユーザー割り当て マネージド ID を 使用して、Microsoft Entra からトークンを要求します。 これらのトークンは、Azure で実行されている他のリソースへのアクセスを承認するのに役立ちます。 Azure ロールベースのアクセス制御 (Azure RBAC) ロールをマネージド ID に割り当てて、特定の Azure リソースにアクセス許可を付与します。 たとえば、クラスターで使用するために Azure Key Vault 内のシークレットにアクセスするためのアクセス許可をマネージド ID に付与できます。

AKS でのマネージド ID の動作

AKS クラスターをデプロイすると、既定でシステム割り当てマネージド ID が自動的に作成されます。 ユーザー割り当てマネージド ID を使用してクラスターを作成したり、既存のクラスターを別の種類のマネージド ID に更新したりすることもできます。

クラスターで既にマネージド ID が使用されていて、ID の種類 (たとえば、システム割り当てからユーザー割り当て) を変更した場合、コントロール プレーン コンポーネントが新しい ID に切り替わる間に遅延が発生します。 コントロール プレーン コンポーネントは、古い ID のトークンの有効期限が切れるまで、引き続き古い ID を使用します。 トークンが更新されると、新しい ID に切り替わります。 この処理には数時間かかることがあります。

マネージド ID ではなく、アプリケーション サービス プリンシパル を使用してクラスターを作成することもできます。 ただし、セキュリティと使いやすさのために、アプリケーション サービス プリンシパルに対してマネージド ID を使用します。 アプリケーション サービス プリンシパルを使用する既存のクラスターがある場合は、マネージド ID を使用するようにクラスターを更新できます。

AKS ID と資格情報の管理

Azure プラットフォームは、システム割り当てマネージド ID とユーザー割り当てマネージド ID とその資格情報の両方を管理するため、シークレットをプロビジョニングまたはローテーションすることなく、アプリケーションからのアクセスを承認できます。

システムによって割り当てられた管理ID

次の表は、AKS のシステム割り当てマネージド ID の主な特性をまとめたものです。

作成方法 ライフサイクルの動作 リソースの共有 AKS の一般的なユース ケース
AKS クラスターなどの Azure リソースの一部として作成される 親リソースのライフサイクルに関連付けられているため、親リソースが削除されると削除されます 1 つのリソースにのみ関連付けることができます • 1 つの Azure リソースに含まれるワークロード
• 独立した ID を必要とするワークロード

ユーザーが割り当てた管理ID

次の表は、AKS のユーザー割り当てマネージド ID の主な特性をまとめたものです。

作成方法 ライフサイクルの動作 リソースの共有 AKS の一般的なユース ケース
スタンドアロンの Azure リソースとして作成され、クラスターを作成する前に存在する必要があります 特定のリソースのライフサイクルに依存しないため、不要になった場合は手動で削除する必要があります 複数のリソース間で共有できる • 複数のリソースで実行され、1 つの ID を共有できるワークロード
• プロビジョニング プロセスの一環としてセキュリティで保護されたリソースへの事前認証を必要とするワークロード
• リソースが頻繁にリサイクルされるが、一貫性のあるアクセス許可が必要なワークロード

事前に作成された kubelet マネージド ID

事前に作成された kubelet マネージド ID は、kubelet が Azure 内の他のリソースにアクセスするために使用できるオプションのユーザー割り当て ID です。 この機能により、クラスターの作成時に Azure Container Registry (ACR) への接続などのシナリオが可能になります。 kubelet にユーザー割り当てマネージド ID を指定しない場合、AKS はノード リソース グループにユーザー割り当て kubelet ID を作成します。 既定のワーカー ノード リソース グループ外のユーザー割り当て kubelet ID の場合は、 マネージド ID オペレーター ロールをクラスターのコントロール プレーン ID (システム割り当てまたはユーザー割り当て) に割り当て、ロールの割り当てを kubelet ID にスコープ指定します。

AKS でのマネージド ID のロールの割り当て

マネージド ID に Azure RBAC ロールを割り当てて、別の Azure リソースに対するクラスターのアクセス許可を付与できます。 Azure RBAC では、アクセス許可のレベルを指定する組み込みロール定義とカスタム ロール定義の両方がサポートされています。 ロールを割り当てるには、「 Azure ロールを割り当てる手順」を参照してください。

マネージド ID に Azure RBAC ロールを割り当てるときは、ロールのスコープを定義する必要があります。 一般に、ロールのスコープをマネージド ID に必要な最小限の特権に制限することをお勧めします。 Azure RBAC ロールのスコープの詳細については、「Azure RBAC のスコープについて」を参照してください。

コントロール プレーンのマネージド ID ロールの割り当て

独自の VNet、接続された Azure ディスク、静的 IP アドレス、ルート テーブル、またはリソースがワーカー ノード リソース グループの外部にあるユーザー割り当て kubelet ID を作成して使用すると、Azure CLI によってロールの割り当てが自動的に追加されます。 ARM テンプレートまたは別のメソッドを使用している場合は、マネージド ID のプリンシパル ID を使用してロールの割り当てを実行します。

Azure CLIを使用していないが、独自の VNet、接続された Azure ディスク、静的 IP アドレス、ルート テーブル、またはユーザー割り当て kubelet ID を使用している場合は、それらのリソースがワーカー ノード リソース グループの外部にある場合は、コントロール プレーンにユーザー割り当てマネージド ID を使用し、その ID のプリンシパル ID を使用して必要なロールの割り当てを手動で実行することをお勧めします。

コントロール プレーンでシステム割り当てマネージド ID が使用されている場合は、クラスターと同時に ID を作成するため、クラスターの作成後までロールの割り当てを実行することはできません。 クラスターを作成したら、ID のプリンシパル ID を取得し、 必要なロールの割り当てを追加します。

AKS によって使用されるマネージド ID の概要

AKS では、組み込みのサービスとアドオンに複数のマネージド ID が使用されます。 次の表は、AKS によって使用されるマネージド ID、そのユース ケース、既定のアクセス許可、および独自の ID を持ち込むことができるかどうかをまとめたものです。

アイデンティティ 名前 利用シーン 既定のアクセス許可 独自の ID を持ち込む
コントロール プレーン AKS クラスター名 AKS コントロール プレーン コンポーネントによって、イングレス ロード バランサーや AKS で管理されるパブリック IP、クラスター オートスケーラー、Azure ディスク、ファイル、BLOB CSI ドライバーなどのクラスター リソースを管理するために使用されます。 ノード リソース グループの貢献者ロール サポートされています
Kubelet AKS クラスター名 - agentpool Azure Container Registry (ACR) を使用した認証 なし。レジストリのアクセス許可モードに基づく ACR プル ロールが必要です サポートされています
アドオン AzureNPM ID は必要ありません N/A サポートされていない
アドオン AzureCNI ネットワーク監視 ID は必要ありません N/A サポートされていない
アドオン azure-policy (ゲートキーパー) ID は必要ありません N/A サポートされていない
アドオン キャリコ ID は必要ありません N/A サポートされていない
アドオン application-routing (NGINX) Azure DNS 証明書と Azure Key Vault 証明書を管理します Key Vault Key Vaultの証明書ユーザー ロール、DNS ゾーンの DNS ゾーン共同作成者ロール サポートされていない
アドオン ingressapplicationgateway-AKS クラスター名 Application Gateway イングレス コントローラー (AGIC) に必要なネットワーク リソースを管理します 展開トポロジによって異なります サポートされていない
アドオン コンテナ インサイト コンテナー ログとインベントリ データを収集し、Log Analytics ワークスペースに送信します クラスターのマネージド ID を使用します。Monitoring Metrics Publisher ロールは必要ありません クラスター ID を使用する
アドオン Virtual-Node (ACIConnector) Azure Container Instances (ACI) に必要なネットワーク リソースを管理します ノード リソース グループの貢献者ロール サポートされていない
アドオン コスト-分析-ID コスト割り当て用の Azure Resource Manager 識別子を収集します ノード リソース グループへの読み取りアクセス サポートされていない
ワークロード識別子 ユーザー構成のMicrosoft Entra ID アプリケーションが Microsoft Entra ワークロード ID を使用してクラウド リソースに安全にアクセスできるようにします ワークロードがアクセスするリソースによって異なります 必須

kubelet ID には ACR プル ロールが必要です。 RBAC レジストリのアクセス許可モードのレジストリの場合は、 AcrPull ロールを使用します。 RBAC レジストリ + ABAC リポジトリのアクセス許可モードのレジストリの場合は、 Container Registry Repository Reader ロールを使用します。 ID でリポジトリを一覧表示する必要がある場合にのみ、 Container Registry Repository Catalog Lister ロールを追加します。 詳細については、「 AKS ノード マップ ID」を参照してください。

アプリケーション ルーティング行には、NGINX ベースのエクスペリエンスが記述されています。 Microsoftでは、2026 年 11 月までのアプリケーション ルーティング アドオン NGINX イングレス リソースの重要なセキュリティ パッチがサポートされます。 2026 年 11 月までに、 Application Routing Gateway API またはサポートされている別の実装に移行します。 ゲートウェイ API の DNS と TLS の統合では、アドオンのマネージド ID の代わりにMicrosoft Entra ワークロード ID が使用されます。 Gateway API の場合は、ユーザー割り当てマネージド ID を作成し、必要なAzure DNSとAzure Key Vaultロールを付与し、Kubernetes サービス アカウントのフェデレーション ID 資格情報を作成します。

AGIC のアクセス許可は、Application Gateway のデプロイ方法によって異なります。 アドオンが新しい Application Gateway を作成すると、通常、必要なアクセス許可が自動的に割り当てられます。 アクセス許可を手動で割り当てる必要がある場合は、Application Gateway サブネットにアドオン ID ネットワーク共同作成者を付与します。 AKS クラスターとは異なるリソース グループ内の既存の Application Gateway の場合は、Application Gateway リソース グループにアドオン ID のネットワーク共同作成者と閲覧者を付与します。 詳細については、「 新しい Application Gateway で AGIC を有効に し、既存の Application Gateway で AGIC を有効にする」を参照してください。

Container Insights は既定でマネージド ID 認証に設定され、クラスター マネージド ID を使用してデータをAzure Monitorに送信します。 Monitoring Metrics Publisher ロールを必要としたレガシー認証は、2026 年 9 月 30 日に廃止されます。 Container Insights は Log Analytics ワークスペースでログとインベントリ データを収集し、Prometheus 用 Azure Monitor マネージド サービス は Azure Monitor ワークスペースで Prometheus メトリックを個別に収集します。 詳細については、「 Container Insights 認証」を参照してください。

コスト分析を有効にすると、AKS はノード リソース グループへの読み取りアクセス権を持つ cost-analysis-identity を作成し、クラスターのノード プールに割り当てます。 アドオンに別の ID を指定することはできません。 詳細については、「 AKS コスト分析を有効にする」を参照してください。

Microsoft Entra ワークロード ID は、クラスターまたはアドオンのマネージド ID ではなく、ポッド間Azure ID モデルです。 各ワークロードで使用されるMicrosoft Entra ID を構成し、その ID のクライアント ID を使用して Kubernetes サービス アカウントに注釈を付け、フェデレーション ID 資格情報を作成します。 詳細については、「Microsoft Entra ワークロード ID のデプロイと構成」を参照してください。

次のステップ

次のガイドを使用して、新規または既存の AKS クラスターで目的のマネージド ID の種類を有効にします。