Azure Arc 対応 Kubernetes でのワークロード ID フェデレーション (プレビュー)
Kubernetes クラスターで実行されているソフトウェア ワークロードでは、リソースの認証とアクセス、または他のサービスとの通信のために ID が必要です。 Azure の外部で実行されているソフトウェア ワークロードの場合、Microsoft Entra によって保護されているリソース (Azure Key Vault や Azure Blob Storage など) にアクセスするには、シークレットや証明書などのアプリケーション資格情報を使う必要があります。 これらの資格情報はセキュリティ上のリスクをもたらすため、安全に保管し、定期的にローテーションする必要があります。 また、資格情報の有効期限が切れると、サービスのダウンタイムのリスクも発生します。
ワークロード ID フェデレーションを使うと、Kubernetes などの外部 ID プロバイダー (IdP) からのトークンを信頼するように、Microsoft Entra ID のユーザー割り当てマネージド ID またはアプリ登録を構成できます。 Microsoft Entra ID のユーザー割り当てマネージド ID またはアプリ登録は、Arc 対応 Kubernetes クラスターで実行されているソフトウェア ワークロードの ID になります。 その信頼関係が形成されると、ワークロードは、Arc 対応 Kubernetes クラスターからの信頼されたトークンを、Microsoft ID プラットフォームからのアクセス トークンと交換できます。 ソフトウェア ワークロードは、そのアクセス トークンを使って、Microsoft Entra によって保護されているリソースにアクセスします。 ワークロード ID フェデレーションを使うと、資格情報を手動で管理するメンテナンスの負担がなくなり、シークレットが漏洩するリスクや、証明書の有効期限が切れるリスクを排除できます。
重要
Azure Arc ワークロード ID フェデレーション機能は現在プレビュー段階です。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用される法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。
Azure Arc 対応 Kubernetes クラスターでのワークロード ID のしくみ
Azure Arc 対応 Kubernetes のワークロード ID サポートでは、ワークロード ポッドが Kubernetes ID を使用できるように、サービス アカウント トークン ボリューム プロジェクション (つまり、サービス アカウント) が使われます。 Kubernetes トークンが発行され、OpenID Connect (OIDC) フェデレーションにより、Kubernetes アプリケーションは注釈付きのサービス アカウントに基づいて Microsoft Entra ID を使って Azure リソースに安全にアクセスできます。
Arc 対応 Kubernetes クラスターはトークン発行者として機能します。 Microsoft Entra ID は、OIDC を使って公開署名キーを検出し、サービス アカウント トークンの信頼性を検証してから、それと Microsoft Entra トークンを交換します。 ワークロードでは、Azure ID クライアント ライブラリまたは Microsoft Authentication Library (MSAL) を使って、Microsoft Entra トークンのボリュームに投影されたサービス アカウント トークンを交換できます。
次の表では、Microsoft Entra ワークロード ID に必要な OIDC 発行者のエンドポイントを示します。
エンドポイント | 説明 |
---|---|
{IssuerURL}/.well-known/openid-configuration |
OIDC 探索ドキュメントとも呼ばれます。 発行者の構成に関するメタデータが含まれています。 |
{IssuerURL}/openid/v1/jwks |
サービス アカウント トークンの信頼性を検証するために Microsoft Entra ID が使う公開署名キーが含まれています。 |
サービス アカウントのラベルと注釈
Microsoft Entra ワークロード ID では、サービス アカウントに関連する次のマッピングがサポートされています。
- 一対一: 1 つのサービス アカウントが、1 つの Microsoft Entra オブジェクトを参照します。
- 多対一: 複数のサービス アカウントが、同じ Microsoft Entra オブジェクトを参照します。
- 一対多: クライアント ID の注釈を変更することで、1 つのサービス アカウントが複数の Microsoft Entra オブジェクトを参照します。 詳しくは、「Kubernetes サービス アカウントを使用して複数の ID をフェデレートする方法」をご覧ください。
要件
Azure Arc 対応 Kubernetes クラスターでは、エージェント バージョン 1.21 以降で Microsoft Entra ワークロード ID がサポートされています。
ワークロード ID 機能を使うには、Azure CLI バージョン 2.64 以降と az connectedk8s
バージョン 1.10.0 以降が必要です。 必ず、az connectedk8s
のバージョンを更新する前に Azure CLI のバージョンを更新してください。 Azure Cloud Shell をお使いの場合は、最新バージョンの Azure CLI がインストールされます。
Microsoft Entra ワークロード ID は、アプリケーションの登録と共に、Azure ID クライアント ライブラリまたは Microsoft 認証ライブラリ (MSAL) コレクションを使うと特に適切に機能します。 ワークロードでは、これらのライブラリのいずれかを使用して、Azure クラウド リソースのシームレスな認証とアクセスを行うことができます。
一般的なライブラリとの統合について詳しくは、AKS での Microsoft Entra ワークロード ID の使用に関する記事をご覧ください。
現在の制限
次の現在の制限事項に注意してください。
- マネージド ID ごとに最大 20 個のフェデレーション ID 資格情報を構成できます。
- フェデレーション ID 資格情報が最初に追加された後、それが反映されるまでに数秒かかります。
- 一部のリージョンのユーザー割り当てマネージド ID では、フェデレーション ID 資格情報の作成がサポートされていません。