배포 스택 리소스
배포 스택과 이 스택이 수명 주기 관리에 제공하는 이점을 이해하게 되었습니다. 배포에 대한 배포 스택 빌드 프로세스를 시작하기 전에 배포 스택 리소스에 대해 자세히 알아보고자 합니다.
이 단원에서는 배포 스택 리소스 및 배포 스택 리소스가 수행할 수 있는 몇 가지 작업에 대해 알아봅니다.
배포 스택 리소스
ARM(Azure Resource Manager)은 Azure에서 리소스를 배포하고 관리하는 서비스입니다. Resource Manager를 사용하여 Azure 구독에서 리소스를 만들고, 업데이트하고, 삭제할 수 있습니다.
배포 스택은 네이티브 Azure 리소스로, 스택 전체에서 일반적인 ARM 작업을 수행할 수 있게 해 줍니다. 배포 스택은 Azure 정책 할당 및 Azure RBAC(역할 기반 액세스 제어) 할당 또는 클라우드용 Microsoft Defender 보안 권장 사항을 상속할 수 있습니다. 배포 스택 내에는 스택에서 관리하는 모든 리소스, 리소스 그룹 및 관리 그룹에 대한 포인터가 있습니다. 스택에 정의된 관리되는 리소스는 배포 스택 리소스에 대한 단일 작업으로 쉽게 만들거나, 업데이트하거나, 삭제할 수 있습니다.
배포 스택 작업
리소스 공급자는 특정 Azure 서비스에 대한 기능을 사용하도록 설정하는 REST 작업의 컬렉션입니다. 예를 들어 Azure SQL Database 서비스는 Microsoft.Sql
이라는 리소스 공급자로 구성되며 전체 리소스 종류는 Microsoft.Sql/servers/databases
입니다.
배포 스택은 Microsoft.Resources
리소스 공급자의 일부이며 전체 리소스 종류는 Microsoft.Resources/deploymentStacks
입니다. 해당 REST 작업에는 새 스택 만들기, 스택 나열, 기존 스택 업데이트 또는 스택 삭제가 포함됩니다. 해당 리소스의 경우 스택의 리소스를 보고, 리소스를 추가 및 제거하고, 리소스를 삭제로부터 보호할 수 있습니다.
이러한 각 작업에는 스택의 동작을 제어하는 몇 가지 주요 속성이 있습니다.
거부 설정 옵션
거부 설정은 스택 내의 리소스를 변경하지 못하도록 합니다. 배포 스택 및 관리되는 리소스에 할당되는 특정 유형의 권한입니다. 이러한 거부 설정은 적용되어 있을 수 있는 모든 Azure RBAC(역할 기반 액세스 제어) 권한을 대체합니다.
거부 설정을 사용하는 경우 배포 스택에서 관리하는 리소스에서 허용되는 작업을 정의하는 매개 변수를 설정할 수 있습니다. 거부 설정 모드라고 알려진 이 매개 변수는 스택에서 관리할 때 스택 내의 리소스를 수정하거나 삭제할 수 있는지를 결정합니다. 거부 설정 모드에는 동작에 대해 삭제 거부, 쓰기 및 삭제 거부, 없음의 세 가지 가능한 값이 있습니다.
삭제 거부 값을 사용하면 스택에서 관리하는 리소스를 수정할 수 있지만 삭제할 수는 없습니다. 쓰기 및 삭제 거부 값을 사용하면 리소스가 스택에서 읽기 전용으로 효과적으로 관리됩니다. 없음 값을 사용하면 스택에서 관리하는 리소스를 수정 및 삭제할 수 있습니다.
거부 설정을 사용하면 자식 범위 및 중첩된 리소스에도 설정을 적용할 수 있습니다. 예를 들어 거부 설정이 있는 배포 스택이 구독 범위에서 만들어지면 해당 거부 설정도 리소스 그룹 범위에 적용됩니다. 또한 Bicep 파일, ARM JSON 템플릿 또는 템플릿 사양에 정의된 중첩된 리소스는 거부 설정에 정의된 값을 상속합니다.
특정 역할 기반 액세스 제어 역할에 대한 거부 설정을 재정의할 수 있습니다. 쓰기 및 삭제를 거부하도록 설정된 거부 설정 모드를 사용하여 배포 스택을 만든다고 가정해 보겠습니다. 스택의 관리되는 리소스 중 하나는 가상 머신입니다. 가상 머신의 구성이 변경되는 것은 원하지 않지만 관리자가 전원을 켜고 끌 수 있기를 원합니다. 적절한 액세스를 제공하려면 거부 설정 제외 작업 매개 변수를 사용하여 "Microsoft.Compute/virtualMachines/start/action" 및 "Microsoft.Compute/virtualMachines/powerOff/action" 작업을 제외합니다.
존재할 수 있는 또 다른 시나리오는 특정 사용자 또는 서비스 주체에 대한 거부 설정을 재정의하는 것입니다. 예를 들어 인프라를 코드 파이프라인으로 사용하여 배포 스택을 만드는 경우 파이프라인을 실행하는 서비스 주체는 스택에서 관리하는 리소스를 변경할 수 있는 권한이 있어야 합니다. 거부 설정 제외 보안 주체 매개 변수가 이 동작을 제어합니다.
리소스 분리 및 삭제
배포 스택에서 더 이상 관리 또는 추적되지 않는 리소스를 분리된 리소스라고 합니다. 분리된 리소스는 여전히 Azure 내에 있지만 스택은 더 이상 추적하지 않습니다. 관리되지 않는 작업 매개 변수로 알려진 속성을 사용하여 Azure에서 분리된 리소스, 리소스 그룹 및 관리 그룹을 처리하는 방법을 제어할 수 있습니다.
이 매개 변수를 사용하는 경우 분리된 리소스 처리 방법을 결정하는 세 가지 가능한 옵션 중에서 선택합니다.
- 리소스 삭제 - 리소스를 삭제하고 리소스 그룹과 관리 그룹을 분리합니다.
- 모두 삭제 - 리소스, 리소스 그룹 및 관리 그룹을 삭제합니다.
- 모두 분리 - 리소스, 리소스 그룹 및 관리 그룹을 분리합니다.
관리되지 않는 작업 매개 변수는 배포 스택을 만들거나, 수정하거나, 삭제할 때 설정할 수 있습니다. 세 작업에서 모두 관리되지 않는 작업 매개 변수의 동작을 설정할 수 있습니다. Azure CLI를 사용하여 배포 스택을 만들고 관리되지 않는 동작에 대한 작업을 설정하여 모두 분리한다고 가정해 보겠습니다. 스택을 삭제하고 동작을 모두 삭제로 지정하면 해당 값이 우선합니다. 원래 값을 덮어쓴다고 생각하면 됩니다.