ここがうれしい!Azure Kubernetes Service (AKS) のマネージド名前空間
こちらは Microsoft Azure Tech Advent Calendar 2025 14日目 の記事です。
AKS の マネージド名前空間とは
AKS の 名前空間 を Azure Resource Manager(ARM) 上で作成できる機能が マネージド名前空間 です。ただ名前空間を定義できるだけでなく、さまざまな特徴があります。
本記事ではその特徴と、それがあることのうれしさについて解説していきます。
ここがうれしいポイント1: ネットワークポリシーが設定できる
マネージド名前空間では ネットワークポリシー が簡単に設定できます。
ネットワークポリシー機能を使うためには、クラスターでネットワークポリシーエンジンを利用するように設定 しておく必要があります。推奨は Cilium です。

マネージド名前空間で設定可能なネットワークポリシーは以下のとおりです。
- Ingress
- すべてのネットワーク トラフィックを許可する
- 同じ名前空間内のトラフィックを許可する (デフォルト)
- すべてのネットワーク トラフィックを拒否する
- Egress
- すべてのネットワーク トラフィックを許可する (デフォルト)
- 同じ名前空間内のトラフィックを許可する
- すべてのネットワーク トラフィックを拒否する
簡易的なポリシーのみですが、YAML で複雑な設定を書く必要なく、Azure ポータルで簡単に設定できるのは大きなメリットでしょう。
ここがうれしいポイント2: クォータが設定できる
マネージド名前空間では CPU/メモリのクォータ が設定できます。リソースの利用を制限することにより、マルチテナントな利用においてリソース利用量の管理が図れます。

上記のスクリーンショットのように設定した場合、Kubernetes 上では以下のように確認できます。
kubectl get quota -n quotacheck -o yaml
apiVersion: v1
items:
- apiVersion: v1
kind: ResourceQuota
metadata:
creationTimestamp: "2025-12-14T02:38:37Z"
labels:
kubernetes.azure.com/managedByArm: "true"
name: defaultresourcequota
namespace: quotacheck
resourceVersion: "24264"
uid: 80388190-9b8a-4e5f-9055-181f38c63571
spec:
hard:
limits.cpu: "2"
limits.memory: 4Gi
requests.cpu: "2"
requests.memory: 4Gi
status:
hard:
limits.cpu: "2"
limits.memory: 4Gi
requests.cpu: "2"
requests.memory: 4Gi
used:
limits.cpu: "0"
limits.memory: "0"
requests.cpu: "0"
requests.memory: "0"
kind: List
metadata:
resourceVersion: ""
ここがうれしいポイント3: Azure RBAC が利用できる
マネージド名前空間では Azure RBAC を利用して、名前空間へのアクセス制御が可能です。
Azure をお使いの方であれば、各リソースへのアクセス制御として Azure RBAC に慣れていることでしょう。 マネージド名前空間を利用することで、AKS のアクセス制御を名前空間レベルで Azure RBAC の管理に統一できます。権限管理を Azure 内で一元化できるのは大きなメリットです。
マネージド名前空間の作成時に、以下のようにユーザーやグループに対してロールを割り当てることができます。

作成したマネージド名前空間 リソースの IAM 設定を確認すると、以下の2つのロールが割り当てられていることがわかります。
- Azure Kubernetes Service Namespace User
- Azure Kubernetes Service RBAC ライター

マネージド名前空間 のみに IAM ロールが割り当てられているユーザーは、以下コマンドで kubectl 用のクレデンシャルを取得できます。
az aks namespace get-credentials \
-n <マネージド名前空間名> -g <リソースグループ名> --cluster-name <クラスター名>
取得したクレデンシャルを使って kubectl コマンドを実行すると、マネージド名前空間内のリソースにのみアクセスできることが確認できます。
名前空間の一覧を取得しようとすると、以下のようにエラーになります。
kubectl get ns
Error from server (Forbidden): namespaces is forbidden: User "hogehoge" cannot list resource "namespaces" in API group "" at the cluster scope: User does not have access to the resource in Azure. Update role assignment to allow access.
以下のようなマニフェストを作成します。
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
resources:
limits:
cpu: "1"
memory: "1G"
requests:
cpu: "0.5"
memory: "0.5G"
デフォルトの名前空間にデプロイしようとすると、以下のようにエラーになります。
kubectl apply -f nginx.yaml
Error from server (Forbidden): error when retrieving current configuration of:
Resource: "/v1, Resource=pods", GroupVersionKind: "/v1, Kind=Pod"
Name: "nginx", Namespace: "default"
from server for: "nginx.yaml": pods "nginx" is forbidden: User "hogehoge" cannot get resource "pods" in API group "" in the namespace "default": User does not have access to the resource in Azure. Update role assignment to allow access.
一方、マネージド名前空間に対しては問題なくデプロイできます。
kubectl apply -f nginx.yaml -n <マネージド名前空間名>
pod/nginx created
kubectl get pod -n <マネージド名前空間名>
NAME READY STATUS RESTARTS AGE
nginx 1/1 Running 0 2m23s
ここがうれしいポイント4: 名前空間を Azure リソースとして管理できる
マネージド名前空間は Azure リソースとして管理できるため、Azure ポータル やAzure CLI、Bicep のような IaC ツールで名前空間の作成・管理が可能です。これにより、AKS クラスター自体のリソースや関連する Azure リソースと一緒に名前空間を管理でき、運用の一元化が図れます。
マルチテナントで AKS を利用する場合に、プラットフォームチームが AKS クラスターを管理しつつ、各開発チームに対して名前空間を提供するようなシナリオで特に有効です。
開発チームがアプリケーションの開発を始める際に、AKS の名前空間と データベース の作成をプラットフォームチームに依頼する、というシナリオを考えてみましょう。
従来の場合では、データベースの作成は Bicep などの IaC ツール、名前空間の作成は Kubernetes マニフェストや kubectl コマンドで行う必要がありました。複数のツールを使い分ける必要があり、管理や実行の手間がかかります。
マネージド名前空間を利用することで、データベースと名前空間の作成をどちらも Bicep で行えるようになり、IaC ツールを統一できます。
また、ARM で管理されるもうひとつのメリットとして、AKS の API サーバーに対するアクセス元 IP アドレス制限を設定している場合でも、マネージド名前空間の作成が可能です。ARM で管理されるため、ARM のエンドポイントにアクセスさえできればよいという理屈です。
地味ながら、IaC ツールの実行場所を選ばなくてよいというのは便利なポイントです。
まとめ
AKS のマネージド名前空間は、名前空間の管理を Azure リソースとして行えるだけでなく、便利な機能が備わっています。これらの機能により、特に AKS のマルチテナント利用において、運用の効率化やセキュリティの強化が期待できます。プラットフォームエンジニアリングの観点からも、AKS のマネージド名前空間は非常に有用な機能と言えるでしょう。
みなさまの AKS 利用における一助となれば幸いです。
Discussion