Azure AKS(Managed Kubernetes)를 관리할 때 AKS Admin VM을 사용하고, Managed Identity를 통해 RBAC(Role-Based Access Control)을 적용하는 방식에 대해 설명하겠습니다.
1. 개요: Azure Managed Identity를 활용한 AKS 관리
Azure에서는 Managed Identity(관리형 ID)를 활용하여 AKS 클러스터와 상호 작용하는 AKS Admin VM을 보다 안전하고 효율적으로 운영할 수 있습니다.
- AKS Admin VM에서 Azure AD(Active Directory) 기반의 인증을 사용하여 AKS에 접근
- Azure RBAC를 통해 권한을 부여하여 보안 강화를 위한 최소 권한 원칙 적용
- Managed Identity를 활용하여 AKS 인증 자동화 (비밀번호 없이 보안 강화를 유지)
✅ 주요 구성 요소
- AKS (Azure Kubernetes Service)
- AKS Admin VM (관리자를 위한 전용 VM)
- Managed Identity (System-assigned 또는 User-assigned)
- Azure Role-Based Access Control (RBAC)
2. Azure Managed Identity란?
Azure Managed Identity는 애플리케이션, VM, 컨테이너 등에서 Azure 리소스에 안전하게 접근할 수 있도록 제공되는 ID 관리 서비스입니다.
비밀번호나 키를 직접 관리할 필요 없이 Azure AD 인증을 통해 자동으로 권한을 부여하고 관리할 수 있습니다.
✅ Managed Identity 유형
1️⃣ System-assigned Managed Identity
- 리소스(AKS Admin VM)에 직접 연결되며, 리소스가 삭제되면 Managed Identity도 함께 삭제됨.
2️⃣ User-assigned Managed Identity - 독립적인 리소스로 생성되며, 여러 리소스(VM, Function 등)에서 공유 가능.
3. AKS Admin VM에서 Managed Identity를 활용한 RBAC 적용 구조
📌 아키텍처 개요
+-----------------------------------------------------+
| Azure Active Directory (Azure AD) |
+-----------------------------------------------------+
▲
│
▼
+-----------------------------------------------+
| Azure Role-Based Access Control (RBAC) |
| - Managed Identity에 적절한 권한 부여 |
| - AKS 클러스터 관리 권한 지정 |
+-----------------------------------------------+
▲
│
▼
+------------------------------------------------------+
| AKS Admin VM (with Managed Identity) |
| - System-assigned 또는 User-assigned Managed Identity |
| - az aks get-credentials 실행 가능 |
| - kubectl 및 az cli 사용 가능 |
+------------------------------------------------------+
▲
│
▼
+-----------------------------------------------+
| Azure Kubernetes Service (AKS) |
| - Kubernetes API Server |
| - Cluster Role 및 RoleBinding 관리 |
+-----------------------------------------------+
4. AKS Admin VM에서 Managed Identity 활용하여 RBAC 적용하는 방법
Step 1: AKS Admin VM에 Managed Identity 활성화
먼저, AKS Admin VM에 System-assigned Managed Identity를 활성화합니다.
az vm identity assign --resource-group <RESOURCE_GROUP> --name <AKS_ADMIN_VM>
✅ 활성화 확인
az vm show --resource-group <RESOURCE_GROUP> --name <AKS_ADMIN_VM> --query "identity" --output table
Step 2: Managed Identity에 AKS 관련 RBAC 권한 부여
AKS Admin VM의 Managed Identity가 AKS에 접근할 수 있도록 권한을 부여해야 합니다.
RBAC(Role-Based Access Control)를 통해 적절한 역할을 부여합니다.
az role assignment create \
--assignee <MANAGED_IDENTITY_CLIENT_ID> \
--role "Azure Kubernetes Service Cluster Admin Role" \
--scope /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerService/managedClusters/<AKS_NAME>
✅ 현재 할당된 역할 확인
az role assignment list --assignee <MANAGED_IDENTITY_CLIENT_ID> --output table
Step 3: AKS 클러스터 자격 증명 가져오기
이제 AKS Admin VM에서 Managed Identity를 사용하여 AKS에 접근할 수 있습니다.
az aks get-credentials --resource-group <RESOURCE_GROUP> --name <AKS_NAME> --identity
✅ kubectl을 통해 정상적으로 연결되는지 확인
kubectl get nodes
5. 추가 보안 설정
✅ AKS RBAC 세분화
보안 강화를 위해 최소 권한 원칙(Least Privilege)을 적용하여 특정 네임스페이스나 역할별 접근 권한을 부여할 수 있습니다.
- 특정 네임스페이스 관리 권한만 부여:
kubectl create rolebinding vm-admin-binding \
--clusterrole=edit \
--user=<MANAGED_IDENTITY_CLIENT_ID> \
--namespace=my-namespace
- 특정 역할(읽기 전용) 부여:
kubectl create rolebinding vm-readonly-binding \
--clusterrole=view \
--user=<MANAGED_IDENTITY_CLIENT_ID>
6. 결론 및 요약
✅ Managed Identity를 활용하면 AKS Admin VM에서 안전한 인증이 가능
✅ RBAC 적용을 통해 불필요한 권한 부여 없이 최소 권한으로 관리 가능
✅ System-assigned 또는 User-assigned Managed Identity 활용 가능
✅ 보안 강화를 위해 AKS RBAC를 세분화하여 접근 권한을 조정하는 것이 권장됨
이 구조를 적용하면 AKS 관리가 더욱 안전하고 편리해집니다. 🚀