다음을 통해 공유


Azure Operator Nexus Kubernetes 클러스터의 역할 기반 액세스 제어

이 문서에서는 Microsoft Entra ID를 사용하여 Nexus Kubernetes 클러스터에 대한 액세스를 관리하는 방법에 대한 포괄적인 가이드를 제공합니다. 특히 조직 내 역할이나 책임에 따라 사용자에게 권한을 부여할 수 있는 역할 기반 액세스 제어에 중점을 두고 있습니다.

시작하기 전에

  1. 시작하려면 클러스터 관리자를 위한 Microsoft Entra 그룹을 만들고 여기에 멤버를 할당합니다. Microsoft Entra ID를 사용하면 각 사용자의 권한을 개별적으로 관리하는 대신 그룹 전체에 액세스 권한을 부여할 수 있습니다.
  2. Nexus Kubernetes 클러스터를 만들 때 만든 그룹 ID를 'adminGroupObjectIds' 값으로 사용하여 그룹 멤버가 클러스터를 관리할 수 있는 권한을 갖도록 합니다. Nexus Kubernetes 클러스터를 만들고 액세스하는 방법에 대한 지침은 빠른 시작 가이드를 참조하세요.

클러스터에 대한 관리자 액세스

Nexus는 기본 Kubernetes 역할 cluster-adminadminGroupObjectIds로 지정한 Microsoft Entra 그룹을 사용하여 Kubernetes 클러스터 역할 바인딩을 만듭니다. 클러스터 관리자는 클러스터에 대한 모든 권한을 가지며 클러스터에서 모든 작업을 수행할 수 있습니다. 클러스터 관리자는 다른 사용자를 적절한 Microsoft Entra 그룹에 할당하여 액세스 권한을 부여할 수도 있습니다.

참고 항목

Nexus Kubernetes 클러스터를 만들면 Nexus는 클러스터 리소스 저장 전용 관리되는 리소스 그룹을 자동으로 만들며, 이 그룹 내에서 Arc 연결 클러스터 리소스가 설정됩니다.

클러스터에 액세스하려면 클러스터 연결 kubeconfig를 설정해야 합니다. 관련 Microsoft Entra 엔터티를 사용하여 Azure CLI에 로그인하면 클러스터를 둘러싸고 있는 방화벽 외부에서도 어디에서나 클러스터와 통신하는 데 필요한 kubeconfig를 가져올 수 있습니다.

  1. CLUSTER_NAME, RESOURCE_GROUPSUBSCRIPTION_ID 변수를 설정합니다.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. 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)
    
  3. 다음 명령은 지정된 Nexus Kubernetes 클러스터에 대한 Kubernetes API 서버에 연결할 수 있게 해주는 connectedk8s 프록시를 시작합니다.

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. kubectl을 사용하여 클러스터로 요청을 보냅니다.

    kubectl get pods -A
    

    이제 모든 노드 목록이 포함된 클러스터의 응답이 표시됩니다.

참고 항목

"클라이언트 프록시에 액세스 토큰을 게시하지 못했습니다. MSI에 연결하지 못함" 오류 메시지가 표시되면 az login을 수행하여 Azure에 다시 인증해야 할 수 있습니다.

역할 기반 액세스 제어

관리자는 Microsoft Entra 그룹 개체 ID로 역할 바인딩을 만들어 클러스터에 역할 기반 액세스 제어를 제공할 수 있습니다. '보기' 권한만 필요한 사용자의 경우 '보기' 역할에 연결된 Microsoft Entra 그룹에 추가하여 작업을 수행할 수 있습니다.

  1. view라는 기본 Kubernetes 역할을 참조하여 '보기' 액세스가 필요한 사용자를 위한 Microsoft Entra 그룹을 만듭니다. 이 역할은 예일 뿐이며, 필요한 경우 사용자 지정 역할을 만들어 사용할 수 있습니다. Kubernetes의 사용자 관련 역할에 대한 자세한 내용은 Kubernetes 롤 기반 액세스 역할의 공식 설명서를 참조하세요.

  2. 만들 때 생성된 Microsoft Entra 그룹 개체 ID를 기록해 두세요.

  3. 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라는 클러스터 역할 바인딩을 만듭니다.

  4. 역할 바인딩이 성공적으로 만들어졌는지 확인합니다.

    kubectl get clusterrolebinding nexus-read-only-users
    
  5. 이제 Microsoft Entra 그룹의 사용자는 클러스터에 대한 '보기' 액세스 권한을 갖습니다. az connectedk8s proxy를 사용하여 클러스터에 액세스하여 리소스를 볼 수 있지만 변경할 수는 없습니다.

다음 단계

특정 권한이 있는 사용자 지정 역할을 만들어 액세스 제어를 더욱 세부적으로 조정할 수 있습니다. 이러한 역할을 만들려면 Kubernetes 네이티브 RoleBinding 또는 ClusterRoleBinding 리소스가 필요합니다. 요구 사항에 따라 더 많은 사용자 지정 역할과 역할 바인딩을 만드는 방법에 대한 자세한 지침은 공식적인 Kubernetes 설명서를 확인합니다.