AKS 클러스터의 Kubernetes RBAC 설정 점검

AKS 클러스터의 Kubernetes RBAC를 활성화하고 필요한 작업만 역할과 바인딩으로 허용하세요.

설명

Kubernetes RBAC는 역할과 바인딩으로 사용자와 서비스 계정의 작업 권한을 제어합니다. AKS에서 이 기능이 비활성화되어 있으면 역할 기반 권한 제한을 적용할 수 없습니다. 템플릿에 설정이 없는 경우에는 실제 클러스터의 상태를 확인하세요.

잠재적 영향

사용자나 서비스 계정이 필요한 범위를 넘는 작업을 수행하면 클러스터 리소스의 변경이나 데이터 접근으로 영향이 확대될 수 있습니다.

해결 방법

클러스터 구성에 properties.enableRBAC: true를 명시하고 필요한 Role, ClusterRole과 바인딩만 부여하세요. 기존 클러스터의 실제 설정과 관리자 권한을 확인하고, 일반 사용자와 서비스 계정으로 허용·거부할 작업을 시험하세요. 이 설정은 aadProfile.enableAzureRBAC로 선택하는 Azure RBAC 인가 방식과 구분됩니다.

예시

지원되는 API와 관리 ID를 사용하는 클러스터 생성 예시입니다. adminUserName과 sshPublicKey에 실제 계정명과 공개 키를 제공하고 대상 지역에서 사용할 수 있는 VM 크기를 선택하세요. Kubernetes 버전은 서비스의 지원되는 기본값을 사용합니다.

변경 전

bicep
param adminUserName string
param sshPublicKey string
param nodeVmSize string = 'Standard_D2s_v3'

resource aksCluster1 'Microsoft.ContainerService/managedClusters@2024-10-01' = {
  name: 'aksCluster1'
  location: resourceGroup().location
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    dnsPrefix: 'dnsprefix'
    agentPoolProfiles: [
      {
        name: 'agentpool'
        count: 2
        vmSize: nodeVmSize
        osType: 'Linux'
        mode: 'System'
      }
    ]
    linuxProfile: {
      adminUsername: adminUserName
      ssh: {
        publicKeys: [
          {
            keyData: sshPublicKey
          }
        ]
      }
    }
  }
}

RBAC 사용 여부를 명시하지 않은 설정입니다. 생략만으로 실제 비활성화 상태라고 단정하지 마세요.

변경 후

bicep
param adminUserName string
param sshPublicKey string
param nodeVmSize string = 'Standard_D2s_v3'

resource aksCluster1 'Microsoft.ContainerService/managedClusters@2024-10-01' = {
  name: 'aksCluster1'
  location: resourceGroup().location
  identity: {
    type: 'SystemAssigned'
  }
  properties: {
    enableRBAC: true
    dnsPrefix: 'dnsprefix'
    agentPoolProfiles: [
      {
        name: 'agentpool'
        count: 2
        vmSize: nodeVmSize
        osType: 'Linux'
        mode: 'System'
      }
    ]
    linuxProfile: {
      adminUsername: adminUserName
      ssh: {
        publicKeys: [
          {
            keyData: sshPublicKey
          }
        ]
      }
    }
  }
}

RBAC를 명시적으로 활성화합니다. 실제 권한 범위는 부여한 역할과 바인딩에 따라 결정됩니다.

참조