Azure Chaos Studio의 권한 및 보안
Azure Chaos Studio를 사용하면 Azure 리소스에 오류를 체계적으로 주입하여 서비스 복원력을 향상시킬 수 있습니다. 오류 주입은 서비스 복원력을 개선하는 강력한 방법이지만 위험할 수도 있습니다. 애플리케이션에서 오류를 발생시키는 것은 원래 의도한 것보다 더 많은 영향을 미칠 수 있으며 악의적인 행위자가 애플리케이션에 침투할 수 있는 열린 기회일 수 있습니다.
Chaos Studio에는 오류가 의도치 않게 또는 잘못된 행위자가 실행되지 않도록 방지하는 강력한 권한 모델이 있습니다. 이 문서에서는 Chaos Studio를 사용하여 오류 주입을 대상으로 하는 리소스를 보호하는 방법을 알아봅니다.
Chaos Studio를 사용하여 오류를 삽입하는 기능을 제한하려면 어떻게 해야 하나요?
Chaos Studio에는 리소스에 대해 오류 주입이 발생할 수 있는 방법과 시기를 제어하는 데 도움이 되는 세 가지 수준의 보안이 있습니다.
먼저 비정상 상황 실험은 지역, 리소스 그룹 및 구독에 배포되는 Azure 리소스입니다. 사용자는 실험을 생성, 업데이트, 시작, 취소, 삭제 또는 볼 수 있는 적절한 Azure Resource Manager 권한이 있어야 합니다.
각 권한은 ID에 세부적으로 할당되거나 와일드카드 권한이 있는 역할의 일부로 할당할 수 있는 Resource Manager 작업입니다. 예를 들어 Azure의 기여자 역할에는 할당된 범위에서
Microsoft.Chaos/experiments/write
권한을 포함하는*/write
권한이 있습니다.리소스에 오류를 주입하는 기능을 제어하려고 할 때 제한해야 할 가장 중요한 작업은
Microsoft.Chaos/experiments/start/action
입니다. 이 작업은 오류를 주입하는 비정상 상황 실험을 시작합니다.둘째, 비정상 상황 실험에는 리소스에서 오류를 실행하는 시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID가 있습니다. 실험에 시스템 할당 관리 ID를 사용하도록 선택하면 Microsoft Entra 테넌트에서 실험을 만들 때 ID가 만들어집니다. 사용자가 할당한 관리 ID는 여러 실험에서 사용될 수 있습니다.
비정상 상황 실험 내에서 시스템이 할당한 관리 ID 또는 사용자가 할당한 관리 ID 선택 시 사용자 지정 역할 할당을 사용하도록 선택할 수 있습니다. 이 기능을 사용하도록 설정하면 Chaos Studio에서 필요한 실험 작업 기능이 포함된 사용자 지정 역할을 만들어 실험의 ID(ID 선택 영역에 아직 존재하지 않음)에 할당할 수 있습니다. 비정상 상황 실험에서 사용자가 할당한 관리 ID를 사용하는 경우 Chaos Studio에서 실험 ID에 할당된 사용자 지정 역할은 실험 삭제 후에도 유지됩니다.
실험 권한을 수동으로 부여하도록 선택한 경우 해당 ID에 모든 대상 리소스에 대한 적절한 권한을 부여해야 합니다. 실험 ID에 리소스에 대한 적절한 권한이 없는 경우 해당 리소스에 대한 오류를 실행할 수 없습니다.
셋째, 각 리소스는 해당 기능이 활성화된 대상으로 Chaos Studio에 온보딩되어야 합니다. 실행 중인 오류에 대한 대상 또는 기능이 존재하지 않으면 리소스에 영향을 주지 않고 실험이 실패합니다.
사용자가 할당한 관리 ID
비정상 상황 실험은 사용자가 할당한 관리 ID를 활용하여 실험의 대상 리소스에 오류를 주입할 수 있는 충분한 권한을 얻을 수 있습니다. 또한 사용자가 할당한 관리 ID는 Chaos Studio의 여러 실험에서 사용될 수 있습니다. 이 기능을 활용하려면 다음을 수행해야 합니다.
- 먼저, 관리 ID 서비스 내에서 사용자가 할당한 관리 ID를 만듭니다. 이 시점에서 비정상 상황 실험을 실행하는 데 필요한 권한을 사용자 할당 관리 ID에 할당할 수 있습니다.
- 둘째, 비정상 상황 실험을 만들 때 구독에서 사용자가 할당한 관리 ID를 선택합니다. 이 단계에서 사용자 지정 역할 할당을 사용하도록 선택할 수 있습니다. 이 기능을 사용하도록 설정하면 실험에 포함된 오류에 따라 필요한 모든 권한이 ID 선택 영역에 부여됩니다.
- 셋째, 모든 오류를 비정상 상황 실험에 추가한 후 ID 구성에 비정상 상황 실험이 성공적으로 실행되는 데 필요한 모든 작업이 포함되어 있는지 검토합니다. 그렇지 않은 경우 시스템 관리자에게 문의하여 실험의 오류 선택에 액세스하거나 편집합니다.
에이전트 인증
에이전트 기반 오류를 실행하는 경우 VM(가상 머신) 또는 가상 머신 확장 집합에 Chaos Studio 에이전트를 설치해야 합니다. 에이전트는 사용자가 할당한 관리 ID를 사용하여 Chaos Studio에 인증하고 에이전트 프로필을 사용하여 특정 VM 리소스와의 관계를 설정합니다.
에이전트 기반 오류에 대한 VM 또는 가상 머신 확장 집합을 온보딩하는 경우 먼저 에이전트 대상을 만듭니다. 에이전트 대상에는 인증에 사용되는 사용자 할당 관리 ID에 대한 참조가 있어야 합니다. 에이전트 대상에는 에이전트를 설치할 때 구성으로 제공되는 에이전트 프로필 ID가 포함됩니다. 에이전트 프로필은 각 대상에 고유하며 대상은 리소스별로 고유합니다.
Azure Resource Manager 작업 및 역할
Chaos Studio에는 다음과 같은 작업이 있습니다.
연산 | 설명 |
---|---|
Microsoft.Chaos/targets/[Read,Write,Delete] | 대상을 가져오기, 만들기, 업데이트 또는 삭제합니다. |
Microsoft.Chaos/targets/capabilities/[Read,Write,Delete] | 기능을 가져오기, 만들기, 업데이트 또는 삭제합니다. |
Microsoft.Chaos/locations/targetTypes/Read | 모든 대상 형식을 가져옵니다. |
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read | 모든 기능 유형을 가져옵니다. |
Microsoft.Chaos/experiments/[Read,Write,Delete] | 비정상 상황 실험을 가져오기, 만들기, 업데이트 또는 삭제합니다. |
Microsoft.Chaos/experiments/start/action | 카오스 실험을 시작합니다. |
Microsoft.Chaos/experiments/cancel/action | 카오스 실험을 중지합니다. |
Microsoft.Chaos/experiments/executions/Read | 비정상 상황 실험 실행에 대한 실행 상태를 가져옵니다. |
Microsoft.Chaos/experiments/executions/getExecutionDetails/action | 비정상 상황 실험 실행에 대한 실행 세부 정보(각 작업의 상태 및 오류)를 가져옵니다. |
이러한 권한을 세분화하여 할당하려면 사용자 지정 역할을 만들 수 있습니다.
네트워크 보안
Chaos Studio와의 모든 사용자 상호 작용은 Azure Resource Manager 통해 수행됩니다. 사용자가 실험을 시작하는 경우 실험은 오류에 따라 Resource Manager 이외의 엔드포인트와 상호 작용할 수 있습니다.
- 서비스 직접 오류: 대부분의 서비스 직접 오류는 Azure Resource Manager를 통해 실행되며 허용 목록에 있는 네트워크 엔드포인트가 필요하지 않습니다.
- 서비스 직접 AKS Chaos Mesh 오류: Chaos Mesh를 사용하는 Azure Kubernetes Service에 대한 서비스 직접 오류는 AKS 클러스터의 Kubernetes API 서버에 대한 액세스가 필요합니다.
- 여기에서 AKS 네트워크 액세스를 IP 범위 집합으로 제한하는 방법을 알아보세요.
ChaosStudio
서비스 태그 검색 API 또는 다운로드 가능한 JSON 파일을 사용하여 서비스 태그를 쿼리하여 Chaos Studio의 IP 범위를 가져올 수 있습니다. - 현재 AKS 클러스터에 로컬 계정이 사용하지 않도록 설정된 경우 Chaos Studio는 Chaos Mesh 오류를 실행할 수 없습니다.
- 여기에서 AKS 네트워크 액세스를 IP 범위 집합으로 제한하는 방법을 알아보세요.
- 에이전트 기반 오류: 에이전트 기반 오류를 사용하려면 에이전트가 Chaos Studio 에이전트 서비스에 액세스해야 합니다. VM 또는 가상 머신 확장 집합은 에이전트가 성공적으로 연결하려면 에이전트 서비스 엔드포인트에 대한 아웃바운드 액세스 권한이 있어야 합니다. 에이전트 서비스 엔드포인트는
https://acs-prod-<region>.chaosagent.trafficmanager.net
입니다.<region>
자리 표시자를 VM이 배포된 지역으로 바꿔야 합니다. 미국 동부 VM의 예는https://acs-prod-eastus.chaosagent.trafficmanager.net
입니다. - 에이전트 기반 프라이빗 네트워킹: 이제 Chaos Studio 에이전트가 프라이빗 네트워킹을 지원합니다. Chaos 에이전트의 프라이빗 네트워킹을 참조하세요.
서비스 태그
서비스 태그는 네트워크 보안 그룹의 인바운드 및 아웃바운드 규칙에 할당할 수 있는 IP 주소 접두사 그룹입니다. 개입 없이 IP 주소 접두사 그룹에 대한 업데이트를 자동으로 처리합니다. 서비스 태그는 주로 IP 주소 필터링을 사용하도록 설정하므로 서비스 태그만으로는 트래픽을 보호하는 데 충분하지 않습니다.
서비스 태그를 사용하면 플랫폼의 IP 주소를 알 필요 없이 Chaos Studio의 인바운드 트래픽을 명시적으로 허용할 수 있습니다. Chaos Studio의 서비스 태그는 ChaosStudio
입니다.
서비스 태그의 제한 사항은 공용 IP 주소가 있는 애플리케이션에서만 사용할 수 있다는 것입니다. 리소스에 개인 IP 주소만 있는 경우 서비스 태그는 트래픽을 라우팅할 수 없습니다.
사용 사례
Chaos Studio는 여러 사용 사례에 서비스 태그를 사용합니다.
- 에이전트 기반 오류를 사용하려면 고객 가상 머신 내에서 실행되는 Chaos Studio 에이전트가 Chaos Studio 백 엔드 서비스와 통신해야 합니다. 서비스 태그를 사용하면 고객은 가상 머신에서 Chaos Studio 서비스로의 트래픽을 허용 목록에 추가할 수 있습니다.
- Azure Kubernetes Service의 Chaos Mesh 오류와 같이
management.azure.com
네임스페이스 외부 통신이 필요한 특정 오류를 사용하기 위해 Chaos Studio 서비스에서 고객 리소스로 트래픽이 전달됩니다. 서비스 태그를 사용하면 고객은 Chaos Studio 서비스에서 대상 리소스로의 트래픽을 허용 목록에 추가할 수 있습니다. - 고객은 네트워크 보안 그룹 규칙 오류의 일부로 다른 서비스 태그를 사용하여 특정 Azure 서비스와의 트래픽에 영향을 줄 수 있습니다.
보안 규칙에 ChaosStudio
서비스 태그를 지정하면 개별 IP 주소를 지정할 필요 없이 Chaos Studio 서비스에 대한 트래픽을 허용하거나 거부할 수 있습니다.
보안 고려 사항
서비스 태그를 평가하고 사용할 때 개별 IP 주소에 대한 세부적인 제어를 제공하지 않으며 네트워크 보안을 위한 유일한 방법으로 사용해서는 안 된다는 점에 유의해야 합니다. 이는 적절한 네트워크 보안 조치를 바꿀 수 없습니다.
데이터 암호화
Chaos Studio는 기본적으로 모든 데이터를 암호화합니다. Chaos Studio는 관리 ID 개체 ID, 실험/단계/분기 이름 및 오류 매개 변수와 같은 시스템 속성에 대한 입력만 허용합니다. 예를 들어 네트워크 연결 끊김 오류에서 차단할 네트워크 포트 범위가 있습니다.
이러한 속성은 결제 정보 또는 암호와 같은 중요한 데이터를 저장하는 데 사용하면 안 됩니다. Chaos Studio에서 데이터를 보호하는 방법에 대한 자세한 내용은 Azure 고객 데이터 보호를 참조하세요.
고객 Lockbox
Lockbox는 지원 요청 중에 실험 데이터에 액세스하는 Microsoft 엔지니어 요청을 승인하거나 거부할 수 있는 컨트롤을 제공합니다.
Lockbox는 비정상 상황 실험 정보에 대해 사용하도록 설정할 수 있으며, Lockbox를 사용하는 경우 구독 수준에서 고객이 데이터에 액세스할 수 있는 권한을 부여합니다.
Microsoft Azure용 고객 Lockbox에 대해 자세히 알아보세요.
다음 단계
이제 비정상 상황 실험을 보호하는 방법을 이해했으므로 다음을 수행할 준비가 되었습니다.