Azure RBAC(Azure 역할 기반 액세스 제어)는 Azure 리소스의 세밀한 액세스를 관리하는 Azure Resource Manager 기반의 권한 부여 시스템입니다.
이 문서에서는 Kubernetes Fleet(Azure Kubernetes Fleet Manager) 리소스에 액세스하는 데 사용할 수 있는 다양한 기본 제공 Azure RBAC 역할에 대해 간략하게 설명합니다.
제어 평면
이 역할은 ARM(Azure Resource Manager) Fleet 리소스 및 하위 리소스에 대한 액세스 권한을 부여하며, 허브 클러스터 유무에 관계없이 Kubernetes Fleet 리소스에 모두 적용 가능합니다.
| 역할 이름 | 설명 | 사용 |
|---|---|---|
| Azure Kubernetes Fleet Manager 기여자 | 이 역할은 집합, 집합 멤버, 집합 업데이트 전략, 집합 업데이트 실행 등을 포함하여 Azure Kubernetes Fleet Manager에서 제공하는 Azure 리소스에 대한 읽기 및 쓰기 권한을 부여합니다. | 이 역할을 사용하여 Kubernetes Fleet 리소스 및 하위 리소스에만 적용되는 기여자 권한을 부여할 수 있습니다. 예를 들어, Fleet 리소스를 정의하고 유지 관리하는 작업을 맡은 Azure 관리자에게 이 역할을 부여할 수 있습니다. |
| Azure Kubernetes Fleet Manager 허브 클러스터 사용자 역할 | 이 역할은 Fleet Manager 허브 클러스터 및 Kubernetes 구성 파일에 대한 읽기 전용 액세스 권한을 부여하여 플릿 관리형 허브 클러스터에 연결합니다. | Fleet Manager 리소스를 보고 허브 클러스터의 kubeconfig를 다운로드하여 변경하지 않고 구성 및 워크로드를 검사할 수 있습니다. |
데이터 평면
이러한 역할은 Fleet 허브 Kubernetes 개체에 대한 액세스 권한을 부여하므로 허브 클러스터가 있는 Kubernetes Fleet 리소스에만 적용 가능합니다.
Fleet 허브 클러스터 범위 또는 역할 할당 범위에 /namespace/<namespace>를 추가하여 개별 Kubernetes 네임스페이스 범위에서 데이터 평면 역할을 할당할 수 있습니다.
| 역할 이름 | 설명 | 사용 |
|---|---|---|
| Azure Kubernetes Fleet Manager RBAC 읽기 권한자 | 집합 관리 허브 클러스터의 네임스페이스 내 대부분의 Kubernetes 리소스에 대한 읽기 전용 액세스 권한을 부여합니다. 역할 또는 역할 바인딩 조회는 할 수 없습니다. 이 역할은 비밀을 볼 수 없고, 비밀의 콘텐츠를 읽을 수 있으면 네임스페이스의 ServiceAccount ServiceAccount 자격 증명에 액세스할 수 있으므로 네임스페이스에서 ServiceAccount로 ServiceAccount와 같은 API 액세스가 허용될 수 있기 때문입니다(일종의 권한 상승). 클러스터 범위에서 이 역할을 적용하면 모든 네임스페이스에 대한 액세스가 제공됩니다. |
이 역할을 사용하여 네임스페이스 또는 클러스터 범위에서 선택된 중요하지 않은 Kubernetes 개체를 읽을 수 있는 기능을 부여할 수 있습니다. 예를 들어, 검토 목적으로 이 역할을 부여할 수 있습니다. |
| Azure Kubernetes Fleet Manager RBAC 작성자 | 집합 관리 허브 클러스터의 네임스페이스 내 대부분의 Kubernetes 리소스에 대한 읽기 및 쓰기 권한을 부여합니다. 이 역할은 보기 또는 수정 역할 또는 역할 바인딩을 허용하지 않습니다. 그러나 이 역할을 사용하면 네임스페이스에서 ServiceAccount로 비밀에 액세스할 수 있으므로 네임스페이스에서 ServiceAccount의 API 액세스 수준을 얻는 데 사용할 수 있습니다. 클러스터 범위에서 이 역할을 적용하면 모든 네임스페이스에 대한 액세스가 제공됩니다. |
이 역할을 사용하여 네임스페이스 또는 클러스터 범위에서 선택한 Kubernetes 개체를 쓸 수 있는 기능을 부여할 수 있습니다. 예를 들어, 특정 네임스페이스의 개체를 담당하는 프로젝트 팀에서 사용하는 경우입니다. |
| Azure Kubernetes Fleet Manager RBAC 관리자 | 집합 관리 허브 클러스터의 네임스페이스 내의 Kubernetes 리소스에 대한 읽기 및 쓰기 권한을 부여합니다.
ResourceQuota 개체 및 네임스페이스 개체 자체를 제외하고 네임스페이스 내의 대부분의 개체에 대한 쓰기 권한을 제공합니다. 클러스터 범위에서 이 역할을 적용하면 모든 네임스페이스에 대한 액세스가 제공됩니다. |
이 역할을 사용하여 네임스페이스 또는 클러스터 범위에서 선택한 Kubernetes 개체(역할 및 역할 바인딩 포함)를 관리하는 기능을 부여할 수 있습니다. 예를 들어, 특정 네임스페이스의 개체를 담당하는 프로젝트 팀에서 사용하는 경우입니다. |
| Azure Kubernetes Fleet Manager RBAC 클러스터 관리자 | 집합 관리 허브 클러스터의 모든 Kubernetes 리소스에 대한 읽기/쓰기 권한을 부여합니다. | 이 역할을 사용하여 네임스페이스 또는 클러스터 범위에서 모든 Kubernetes 개체(CRD 포함)에 대한 액세스 권한을 부여할 수 있습니다. |
| 멤버 클러스터에 대한 Azure Kubernetes Fleet Manager RBAC 판독기 | 멤버 클러스터의 네임스페이스에 있는 대부분의 개체에 대한 읽기 전용 액세스입니다. 역할 또는 역할 바인딩을 볼 수 없습니다. 비밀을 볼 수 없습니다(ServiceAccount 자격 증명을 통한 권한 상승 방지). | 이 역할을 사용하여 플릿 멤버의 네임스페이스 범위에서 선택한 무의미한 Kubernetes 개체를 읽을 수 있는 기능을 부여할 수 있습니다. |
| 멤버 클러스터용 Azure Kubernetes Fleet Manager RBAC 작성자 | 네임스페이스의 대부분의 Kubernetes 리소스에 대한 읽기 및 쓰기 권한입니다. 역할 또는 역할 바인딩을 보거나 수정할 수 없습니다. 비밀을 읽을 수 있습니다(따라서 네임스페이스의 모든 ServiceAccount를 가정할 수 있습니다). | 이 역할을 사용하여 플릿 멤버의 네임스페이스에 선택한 Kubernetes 개체를 쓰는 기능을 부여할 수 있습니다. 예를 들어, 특정 네임스페이스의 개체를 담당하는 프로젝트 팀에서 사용하는 경우입니다. |
| 멤버 클러스터를 위한 Azure Kubernetes Fleet Manager RBAC 관리자 | 멤버 클러스터의 네임스페이스에 있는 Kubernetes 리소스에 대한 읽기 및 쓰기 권한입니다. | 이 역할을 사용하여 플릿 멤버의 네임스페이스 범위에서 선택한 Kubernetes 개체(역할 및 역할 바인딩 포함)를 관리하는 기능을 부여할 수 있습니다. 예를 들어, 특정 네임스페이스의 개체를 담당하는 프로젝트 팀에서 사용하는 경우입니다. |
| 멤버 클러스터에 대한 Azure Kubernetes Fleet Manager RBAC 클러스터 관리자 | 플릿의 멤버 클러스터에 있는 모든 Kubernetes 리소스에 대한 전체 읽기/쓰기 권한입니다. | 이 역할을 사용하여 멤버 클러스터의 모든 리소스에 대한 모든 액세스 권한을 부여합니다. 예를 들어 멤버 클러스터의 여러 네임스페이스에 액세스해야 하는 플랫폼 관리자입니다. |
역할 할당 예
Azure CLI를 사용하여 Azure RBAC 역할을 부여할 수 있습니다. 예를 들어, Kubernetes Fleet 허브 클러스터 범위에서 역할 할당을 만들려면 다음을 수행합니다.
IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID"
개별 Kubernetes 네임스페이스에 역할 할당 범위를 할당할 수도 있습니다. 예를 들어, Kubernetes Fleet 허브의 기본 Kubernetes 네임스페이스에 대한 역할 할당을 만들려면 다음을 수행합니다.
IDENTITY=$(az ad signed-in-user show --output tsv --query id)
FLEET_ID=$(az fleet show --resource-group $GROUP --name $FLEET --output tsv --query id)
az role assignment create --role 'Azure Kubernetes Fleet Manager RBAC Reader' --assignee "$IDENTITY" --scope "$FLEET_ID/namespaces/default"
Azure Kubernetes Service