카테고리 없음

🔹 AKS에서 Admin VM에 RBAC 권한을 할당하는 방법

idea9329 2025. 3. 5. 15:03
반응형

 

사용자가 아니라 Admin VM 자체에 AKS 권한을 부여하려면 Azure RBAC를 통해 Managed Identity 또는 Service Principal을 활용해야 합니다.
즉, Admin VM이 AKS에 직접 접근할 수 있도록 RBAC를 설정하는 방법을 설명하겠습니다.


✅ 1. Admin VM의 Managed Identity 확인

Admin VM이 Managed Identity (시스템 할당 또는 사용자 할당)을 사용하고 있는지 확인해야 합니다.

🔹 1-1. Managed Identity가 설정되었는지 확인 (Azure CLI)

az vm identity show --resource-group <resource_group> --name <admin_vm_name>

 출력 예시 (Managed Identity 활성화됨)

{
  "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "type": "SystemAssigned"
}

 "principalId" 값이 Admin VM의 Identity ID입니다.

 출력 결과가 비어 있다면, Managed Identity가 활성화되지 않은 상태입니다.
➡ 아래 명령어로 활성화해야 합니다.


✅ 2. Admin VM에 Managed Identity 활성화

Admin VM이 Managed Identity를 사용하지 않는 경우, 아래 명령어를 실행하여 활성화합니다.

🔹 2-1. 시스템 할당 ID(System Assigned Identity) 활성화

az vm identity assign --resource-group <resource_group> --name <admin_vm_name>

➡ 이 작업을 수행하면 VM에 자동으로 ID가 할당됨.

🔹 2-2. 사용자 할당 ID(User Assigned Identity) 추가 (선택)

사용자 지정 ID를 사용할 경우:

az vm identity assign --resource-group <resource_group> --name <admin_vm_name> --identities <user_assigned_identity_id>

 <user_assigned_identity_id> 부분에 미리 생성된 사용자 ID를 입력.


✅ 3. Admin VM에 AKS 접근 권한 할당 (Azure RBAC)

Admin VM이 AKS에 접근하려면 적절한 Azure RBAC 권한을 부여해야 합니다.

🔹 3-1. Kubernetes Cluster - Admin Role 할당

AKS에 Admin VM의 Managed Identity를 Kubernetes 관리자로 추가합니다.

az role assignment create --assignee <vm_principal_id> --role "Kubernetes Cluster - Admin Role" --scope /subscriptions/<subscription_id>/resourceGroups/<resource_group>/providers/Microsoft.ContainerService/managedClusters/<aks_name>

 vm_principal_id는 Admin VM의 Managed Identity (Principal ID) 값입니다.
 "Kubernetes Cluster - Admin Role"은 AKS 관리 권한을 의미합니다.

➡ 이 명령어를 실행하면 Admin VM이 AKS 클러스터를 제어할 수 있도록 권한이 부여됨.


✅ 4. Kubernetes RBAC 설정 (ClusterRoleBinding)

Azure RBAC을 설정했어도, Kubernetes 내부에서도 RBAC 권한을 부여해야 합니다.

🔹 4-1. Admin VM의 Managed Identity를 cluster-admin으로 지정

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-vm-cluster-admin
subjects:
- kind: User
  name: "<vm_principal_id>"  # Admin VM의 Managed Identity ID
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io

➡ 이 설정을 적용하면 Admin VM이 클러스터 관리자 역할을 갖게 됨.

 Kubernetes에 적용

kubectl apply -f admin-vm-rbac.yaml

✅ 5. Admin VM에서 AKS 접근 테스트

권한이 제대로 부여되었는지 확인하려면 Admin VM에서 직접 AKS에 접근해 봅니다.

🔹 5-1. Admin VM에서 AKS 인증 정보 가져오기

az aks get-credentials --resource-group <resource_group> --name <aks_name> --admin

 Admin VM이 AKS 클러스터에 접근할 수 있도록 인증 정보를 다운로드함.

🔹 5-2. Kubernetes API 접근 테스트

kubectl get nodes

 출력 예시 (정상)

NAME                       STATUS   ROLES    AGE   VERSION
aks-nodepool1-12345678-1   Ready    agent    10d   v1.24.6
aks-nodepool1-12345678-2   Ready    agent    10d   v1.24.6

 정상적으로 노드 목록이 보이면 성공! 🎯


📌 결론 – Admin VM이 AKS에 접근할 수 있도록 RBAC 권한 부여하기

 1. Admin VM이 Managed Identity를 사용하는지 확인
 2. Managed Identity가 없으면 추가 (az vm identity assign)
 3. Azure RBAC에서 Kubernetes Cluster - Admin Role을 Admin VM에 부여
 4. Kubernetes RBAC에서 cluster-admin 권한 추가 (ClusterRoleBinding)
 5. Admin VM에서 kubectl get nodes로 테스트

이 설정을 적용하면 Admin VM이 직접 AKS 클러스터를 관리할 수 있습니다! 🚀😊

반응형