次の方法で共有


CustomPrivateDNSZoneMissingPermissionError エラー コードのトラブルシューティング

この記事では、Microsoft Azure Kubernetes Service (AKS) クラスターを作成または更新しようとしたときに発生する "CustomPrivateDNSZoneMissingPermissionError" エラー コードを特定して解決する方法について説明します。

[前提条件]

  • Azure CLI バージョン 2.53.0 以降。 インストールされているバージョンを確認するには、az --version を実行します。

症状

AKS クラスターの作成または更新操作が失敗し、次のエラー メッセージが返されます。

コード: CustomPrivateDNSZoneMissingPermissionError
メッセージ: サービス プリンシパルまたはユーザー割り当て ID には、カスタム プライベート DNS ゾーン <custom-private-dns-zone-resource-id> に対する読み取りと書き込みのアクセス許可が付与されている必要があります。 アクション Microsoft.Network/privateDnsZones/read に対してアクセス結果を確認できません。

原因

AKS は、 カスタム プライベート DNS ゾーンを使用するプライベート クラスターのクラスター作成または更新操作を実行する前に、クラスターのマネージド ID またはサービス プリンシパルがプライベート DNS ゾーンを制御するために必要なアクセス許可を持っているかどうかを確認します。 AKS が必要なアクセス許可を見つけられない場合、クラスターが失敗状態にならないよう操作をブロックします。

解決策

不足しているロールの割り当てを作成するには、次の手順に従います。

  1. az aks show コマンドを実行してクラスターのプライベート DNS ゾーンのリソース ID を取得し、CUSTOM_PRIVATE_DNS_ZONE_ID変数として格納します。

    CUSTOM_PRIVATE_DNS_ZONE_ID=$(az aks show \
        --resource-group <aks-resource-group> \
        --name <aks-cluster-name> \
        --query apiServerAccessProfile.privateDnsZone \
        --output tsv)
    

    カスタム プライベート DNS ゾーンのリソース ID も元のエラー メッセージに表示されたため、 az aks show コマンドを実行する代わりに、そのリソース ID を変数に割り当てることができます。

  2. az role assignment create コマンドを実行して、 プライベート DNS ゾーン共同作成者 ロールをクラスターのマネージド ID またはサービス プリンシパルに 割り当 てます。

    az role assignment create --role "Private DNS Zone Contributor" \
        --scope $CUSTOM_PRIVATE_DNS_ZONE_ID \
        --assignee <control-plane-principal-id>
    

クラスターのマネージド ID またはサービス プリンシパルへのアクセス許可の付与が完了するまでに最大 60 分かかることがあります。

お問い合わせはこちらから

ご質問がある場合は、 Azure コミュニティサポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。