まとめ
この記事を使用して、Azure Kubernetes Service (AKS) クラスターを作成またはデプロイするときのLinkedAuthorizationFailed エラーのトラブルシューティングを行います。 次の手順に従うことで、操作を正常に完了できます。
症状
AKS クラスターを作成しようとすると、次のエラー メッセージが表示されます。
VNet の調整に失敗しました。
詳細: VNetReconciler の再試行に失敗しました:
カテゴリ: ClientError;SubCode: LinkedAuthorizationFailed;
依存関係: Microsoft.Network/virtualNetworks; OriginalError: Code="LinkedAuthorizationFailed"
Message="オブジェクト ID '123456789-1234-1234-1234-1234567890987' を持つクライアント 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb' には、スコープ '/subscriptions/<subscription-id-guid>/resourceGroups/MC_MyRG_westeurope/providers/Microsoft.Network/virtualNetworks/aks-vnet' でアクション 'Microsoft.Network/virtualNetworks/write' を実行するアクセス許可があります。ただし、リンクされたスコープ '/subscriptions/<subscription-id-guid>/resourcegroups/ddos-protection-plan-rg/providers/microsoft.network/ddosprotectionplans/upmddosprotectionplan' でアクション 'Microsoft.Network/ddosProtectionPlans/join/action' を実行するアクセス許可がないか、またはリンクされたスコープが無効です。"
AKSTeam: ネットワーク、Retriable: false。
原因
サービス プリンシパルには、クラスターの作成に必要なリソースを使用するためのアクセス許可がありません。
解決策
エラー メッセージに記載されているリソースを使用するためのアクセス許可をサービス プリンシパルに付与します。 「現象」セクションの出力例では、次の情報を提供します。
| アイテム | 価値 |
|---|---|
| サービス プリンシパル | aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb |
| リソース | /subscriptions/<subscription-id-guid>/resourcegroups/ddos-protection-plan-rg/providers/microsoft.network/ddosprotectionplans/upmddosprotectionplan |
| 操作 | Microsoft.Network/ddosProtectionPlans/join/action |
サービス プリンシパルにアクセス許可を付与する方法の詳細については、「 Azure portal を使用して Azure ロールを割り当てる」を参照してください。
詳細情報
ロールの割り当てが正しく見えてもクラスターの作成が失敗する場合は、ロールの割り当ての伝達を確認し、リンクされたリソース スコープでアクセス許可を確認し、承認エラーがないかアクティビティ ログを調べて、参照されているリソースがまだ存在し、ターゲット サブスクリプションとリソース グループからアクセス可能であることを確認します。 エラーに示されている正確な操作 (たとえば、 Microsoft.Network/ddosProtectionPlans/join/action) を確認し、リンクされたリソースに対するそのアクセス許可が ID に付与されていることを確認します。
必要なアクセス許可が割り当てられているように見えても、LinkedAuthorizationFailed でデプロイが失敗する場合は、承認チェックに関係する ID とスコープを確認します。 完全なエラー メッセージを確認して、次の内容を特定します。
操作を実行しているクライアントまたはオブジェクト ID。
エラーで参照されているリンクされたリソース スコープ。
拒否された特定のアクション (たとえば、 Microsoft.Network/ddosProtectionPlans/join/action)。
AKS デプロイで使用される ID (サービス プリンシパルまたはマネージド ID) が、プライマリ リソースと、エラー メッセージで参照されているリンクされたリソースの両方に必要なロールの割り当てを持っていることを確認します。 また、ロールの割り当てが正しいスコープに存在し、継承されたアクセス許可が有効であることを確認します。 異なるリソース グループまたはサブスクリプション内のリソースを含む複雑なシナリオの場合は、Azureアクティビティ ログとロールの割り当てを確認して、クラスターの作成を再試行する前に承認が失敗する場所を判断します。