Azure Operator Nexus Kubernetes 클러스터의 역할 기반 액세스 제어
이 문서에서는 Microsoft Entra ID를 사용하여 Nexus Kubernetes 클러스터에 대한 액세스를 관리하는 방법에 대한 포괄적인 가이드를 제공합니다. 특히 조직 내 역할이나 책임에 따라 사용자에게 권한을 부여할 수 있는 역할 기반 액세스 제어에 중점을 두고 있습니다.
시작하기 전에
- 시작하려면 클러스터 관리자를 위한 Microsoft Entra 그룹을 만들고 여기에 멤버를 할당합니다. Microsoft Entra ID를 사용하면 각 사용자의 권한을 개별적으로 관리하는 대신 그룹 전체에 액세스 권한을 부여할 수 있습니다.
- Nexus Kubernetes 클러스터를 만들 때 만든 그룹 ID를 'adminGroupObjectIds' 값으로 사용하여 그룹 멤버가 클러스터를 관리할 수 있는 권한을 갖도록 합니다. Nexus Kubernetes 클러스터를 만들고 액세스하는 방법에 대한 지침은 빠른 시작 가이드를 참조하세요.
클러스터에 대한 관리자 액세스
Nexus는 기본 Kubernetes 역할 cluster-admin
및 adminGroupObjectIds
로 지정한 Microsoft Entra 그룹을 사용하여 Kubernetes 클러스터 역할 바인딩을 만듭니다. 클러스터 관리자는 클러스터에 대한 모든 권한을 가지며 클러스터에서 모든 작업을 수행할 수 있습니다. 클러스터 관리자는 다른 사용자를 적절한 Microsoft Entra 그룹에 할당하여 액세스 권한을 부여할 수도 있습니다.
참고 항목
Nexus Kubernetes 클러스터를 만들면 Nexus는 클러스터 리소스 저장 전용 관리되는 리소스 그룹을 자동으로 만들며, 이 그룹 내에서 Arc 연결 클러스터 리소스가 설정됩니다.
클러스터에 액세스하려면 클러스터 연결 kubeconfig
를 설정해야 합니다. 관련 Microsoft Entra 엔터티를 사용하여 Azure CLI에 로그인하면 클러스터를 둘러싸고 있는 방화벽 외부에서도 어디에서나 클러스터와 통신하는 데 필요한 kubeconfig
를 가져올 수 있습니다.
CLUSTER_NAME
,RESOURCE_GROUP
및SUBSCRIPTION_ID
변수를 설정합니다.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
az
를 사용하여 관리되는 리소스 그룹을 쿼리하고MANAGED_RESOURCE_GROUP
에 저장합니다.az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
다음 명령은 지정된 Nexus Kubernetes 클러스터에 대한 Kubernetes API 서버에 연결할 수 있게 해주는 connectedk8s 프록시를 시작합니다.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
kubectl
을 사용하여 클러스터로 요청을 보냅니다.kubectl get pods -A
이제 모든 노드 목록이 포함된 클러스터의 응답이 표시됩니다.
참고 항목
"클라이언트 프록시에 액세스 토큰을 게시하지 못했습니다. MSI에 연결하지 못함" 오류 메시지가 표시되면 az login
을 수행하여 Azure에 다시 인증해야 할 수 있습니다.
역할 기반 액세스 제어
관리자는 Microsoft Entra 그룹 개체 ID로 역할 바인딩을 만들어 클러스터에 역할 기반 액세스 제어를 제공할 수 있습니다. '보기' 권한만 필요한 사용자의 경우 '보기' 역할에 연결된 Microsoft Entra 그룹에 추가하여 작업을 수행할 수 있습니다.
view
라는 기본 Kubernetes 역할을 참조하여 '보기' 액세스가 필요한 사용자를 위한 Microsoft Entra 그룹을 만듭니다. 이 역할은 예일 뿐이며, 필요한 경우 사용자 지정 역할을 만들어 사용할 수 있습니다. Kubernetes의 사용자 관련 역할에 대한 자세한 내용은 Kubernetes 롤 기반 액세스 역할의 공식 설명서를 참조하세요.만들 때 생성된 Microsoft Entra 그룹 개체 ID를 기록해 두세요.
kubectl 명령을 사용하여 'view' 역할로 클러스터 역할 바인딩을 만들고 이를 Microsoft Entra 그룹과 연결합니다.
AZURE_AD_GROUP_OBJECT_ID
를 Microsoft Entra 그룹의 개체 ID로 바꿉니다.kubectl create clusterrolebinding nexus-read-only-users --clusterrole view --group=AZURE_AD_GROUP_OBJECT_ID
이 명령은 할당된 Microsoft Entra 그룹의 멤버에게
view
역할을 할당하는nexus-read-only-users
라는 클러스터 역할 바인딩을 만듭니다.역할 바인딩이 성공적으로 만들어졌는지 확인합니다.
kubectl get clusterrolebinding nexus-read-only-users
이제 Microsoft Entra 그룹의 사용자는 클러스터에 대한 '보기' 액세스 권한을 갖습니다.
az connectedk8s proxy
를 사용하여 클러스터에 액세스하여 리소스를 볼 수 있지만 변경할 수는 없습니다.
다음 단계
특정 권한이 있는 사용자 지정 역할을 만들어 액세스 제어를 더욱 세부적으로 조정할 수 있습니다. 이러한 역할을 만들려면 Kubernetes 네이티브 RoleBinding 또는 ClusterRoleBinding 리소스가 필요합니다. 요구 사항에 따라 더 많은 사용자 지정 역할과 역할 바인딩을 만드는 방법에 대한 자세한 지침은 공식적인 Kubernetes 설명서를 확인합니다.