Chaos Studio AKS 오류로 Microsoft Entra 인증 사용
개요
Azure Chaos Studio는 Chaos Mesh와 통합되어 Pod 제거, CPU 스트레스, 네트워크 중단 등과 같은 AKS(Azure Kubernetes Service) 클러스터에서 오류를 실행합니다. 로컬 계정 또는 AKS 관리형 Microsoft Entra 인증의 구성 및 기본 설정에 따라 두 가지 유형의 인증을 사용하여 이러한 오류를 실행할 수 있습니다.
- Kubernetes 로컬 계정은 Kubernetes API 서버에 저장되며 클러스터에 대한 요청을 인증하고 권한을 부여하는 데 사용할 수 있습니다. 로컬 계정 관리 페이지에서 로컬 계정에 대해 자세히 알아보세요.
- AKS 관리형 Microsoft Entra 인증을 사용하면 Microsoft Entra 자격 증명 및 Azure RBAC를 사용하여 클러스터에 로그인하고 권한을 관리할 수 있습니다. AKS 관리형 Microsoft Entra 인증을 사용하도록 설정하는 방법을 알아봅니다.
참고 항목
로컬 계정 권한은 자격 증명이 클라이언트 컴퓨터에 있는 한 액세스 권한을 부여하고 AKS 관리형 Microsoft Entra 인증은 더 범위가 지정된 할당 및 권한 관리를 허용합니다. 클러스터 보안 및 업그레이드 모범 사례에 대해 자세히 알아보세요.
이전에는 Chaos Studio에서 로컬 계정으로만 Chaos Mesh를 사용할 수 있었지만 모든 AKS 오류의 버전 2.2는 이제 로컬 계정과 Microsoft Entra 인증을 모두 지원합니다.
대상 업데이트
대상(Microsoft.Chaos/targets
)은 Chaos Studio의 리소스 모델에서 다른 Azure 리소스를 나타내므로 특정 리소스를 오류 주입에 사용할 수 있는지 여부와 이에 대해 실행할 수 있는 오류를 쉽게 제어할 수 있습니다. 이 경우 대상은 영향을 주려는 AKS 클러스터를 나타냅니다.
AKS 클러스터를 Azure Portal 내에서 새 Chaos Studio 대상으로 온보딩하는 경우 새 오류 버전을 자동으로 사용할 수 있습니다.
기존 AKS 대상에서 새 오류 버전을 사용하려면 대상을 업데이트해야 합니다. 이 작업은 다음 두 가지 방법 중 한 가지로 수행할 수 있습니다.
- 대상 리소스를 사용하지 않도록 설정하고 다시 사용하도록 설정합니다.
- Azure Portal에서 이 작업을 수행하려면 Chaos Studio 포털 인터페이스의 대상 창을 방문하여 관련 AKS 클러스터를 선택하고 대상 사용 안 함을 선택합니다. 1~2분 정도 기다리거나 확인 알림을 받고 대상 사용(서비스 직접 대상>사용)을 선택하고 검토 및 만들기 화면을 진행합니다.
- 활성화된 기능을 업데이트합니다.
- Azure Portal에서 이 작업을 수행하려면 Chaos Studio의 대상 창을 방문하여 AKS 클러스터를 찾고, 작업 관리를 선택하고, 모든 기능이 사용하도록 설정되어 있는지 확인합니다. 저장을 선택하여 업데이트를 완료합니다.
API 또는 명령줄을 사용하는 경우 Azure CLI에서 Chaos Mesh 오류를 사용하는 비정상 상황 실험 만들기의 지침에 따라 사용 가능한 최신 기능을 사용하도록 설정합니다.
새로운 실험 만들기
Azure Portal에서 AKS Chaos Mesh 오류를 사용하는 새 실험을 만들 때 "AKS Chaos Mesh DNS Chaos" 및 "AKS Chaos Mesh DNS Chaos(사용되지 않음)"와 같은 두 가지 버전의 각 오류가 표시될 수 있습니다. 사용되지 않는 옵션이 아닌 첫 번째 옵션을 선택합니다.
오류를 선택한 후 AKS 클러스터가 가능한 대상으로 표시되지 않는 경우 클러스터에서 새 오류 버전을 사용하도록 설정해야 할 수 있습니다. 대상 페이지를 방문하여 AKS 클러스터를 찾고 작업 관리를 선택한 다음 저장을 선택하기 전에 모든 기능을 선택했는지 확인합니다.
Azure Portal 자습서에서 Chaos Mesh 오류를 사용하여 AKS Pod를 종료하는 비정상 상황 만들기 실험을 따라 실험을 만듭니다.
기존 실험 업데이트
이러한 두 가지 방법 중 하나를 따라 기존 실험을 업데이트합니다.
- AKS Chaos Mesh 오류가 하나 이상 포함된 실험을 엽니다.
- 오류에서 편집을 선택하고 매개 변수 값을 클립보드에 복사
jsonSpec
합니다. - 오류 선택 드롭다운을 열고 표시 없이
(deprecated)
원하는 오류 버전을 선택합니다. - 클립보드에서
jsonSpec
매개 변수 필드에 붙여넣습니다. - 오류 및 실험을 저장합니다.
사용 권한
Chaos Studio는 리소스에 대한 오류를 실행할 수 있는 권한이 필요합니다.
Azure Portal에서 실험을 만들 때 선택적으로 사용자 지정 역할 만들기 및 할당 사용을 선택하여 Chaos Studio가 실험의 관리 ID에 필요한 권한을 할당하도록 할 수 있습니다.
사용자 지정 역할 만들기를 사용하지 않도록 선택하거나 Azure Portal을 사용하지 않는 경우 실험을 만든 후 다음 중 하나를 수행해야 합니다.
- Azure Kubernetes Service RBAC 관리자 및 Azure Kubernetes Service 클러스터 사용자 역할을 실험 관리 ID(시스템 할당 또는 사용자 할당)에 수동으로 할당합니다.
- RBAC 작업에 필요한 작업의 전체 목록을 허용하는 사용자 지정 역할을 수동으로 만듭니다.
- 필요한 작업의 일부 목록을 허용하는 사용자 지정 역할을 수동으로 만들고 사용자 지정 YAML 파일을 배포합니다. 이 프로세스는 선택적 최소 권한 액세스에 자세히 설명되어 있습니다.
RBAC 작업
AKS Chaos Mesh 오류에는 다음 RBAC 작업이 사용됩니다.
- 작업:
- Microsoft.ContainerService/managedClusters/read
- 데이터 작업:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/delete
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/bind/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterroles/escalate/action
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/read
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/write
- Microsoft.ContainerService/managedClusters/rbac.authorization.k8s.io/clusterrolebindings/delete
선택적 최소 권한 액세스
Chaos Studio 실험 ID에 대한 전체 ClusterRole 및 ClusterRoleBinding 읽기/쓰기 액세스 권한을 부여하지 않으려는 경우 Chaos Mesh에 필요한 역할 및 바인딩을 수동으로 만들 수 있습니다. Chaos Mesh가 실험에 지정된 테넌트 네임스페이스를 대상으로 지정할 수 있는 권한이 있는지 확인하는 데 필요합니다.
이 선택적 구성에는 두 단계가 있습니다.
실험의 관리 ID에 권한을 할당할 때 제한된 권한 집합으로 사용자 지정 역할을 사용합니다. 필요한 권한은 다음과 같습니다.
- 작업:
- Microsoft.ContainerService/managedClusters/read
- 데이터 작업:
- Microsoft.ContainerService/managedClusters/namespaces/read
- Microsoft.ContainerService/managedClusters/pods/read
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/write
- Microsoft.ContainerService/managedClusters/apiextensions.k8s.io/customresourcedefinitions/read
- Microsoft.ContainerService/managedClusters/authorization.k8s.io/subjectaccessreviews/write
- 작업:
다음 YAML 구성을 배포하여 역할 및 바인딩을 만듭니다. AKS 설명서의 배포에 대해 자세히 알아보세요. Azure Portal을 사용하여 AKS(Azure Kubernetes Service) 클러스터 배포
kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: name: role-cluster-manager-pdmas rules: - apiGroups: - chaos-mesh.org resources: [ "*" ] verbs: ["get", "list", "watch", "create", "delete", "patch", "update"] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: cluster-manager-binding namespace: {Namespace targeted by experiment} subjects: - kind: User name: {CHAOS-STUDIO-EXPERIMENT-MSI-OBJECT-ID} roleRef: kind: ClusterRole name: role-cluster-manager-pdmas apiGroup: rbac.authorization.k8s.io