본문 바로가기
CLOUD/AZURE

Azure subnet Delegation 에 대해

by Rainbound-IT 2025. 2. 4.
반응형

Azure에서 서브넷의 "Delegation은 특정 Azure 리소스나 서비스가 서브넷을 관리하고 그 안에서 리소스를 배포할 수 있도록 권한을 부여하는 기능입니다. Delegation을 사용하면 서브넷에 대한 관리 권한을 특정 서비스에 위임할 수 있습니다. 이를 통해 Azure 서비스가 서브넷 내에서 자동으로 리소스를 배치하고 구성할 수 있게 됩니다.

Delegation 개념

Delegation은 서브넷을 특정 Azure 서비스위임하여, 해당 서비스가 서브넷 내에서 특정 리소스를 배포하고 관리할 수 있도록 합니다. 예를 들어, **Azure Kubernetes Service (AKS)**와 같은 서비스는 특정 서브넷에서만 작동하도록 설정할 수 있습니다. Delegation을 통해 AKS는 서브넷 내의 네트워크 리소스에 대한 권한을 받아서 해당 서브넷에 대한 리소스 배포 및 관리 작업을 수행할 수 있습니다.

서브넷 Delegation 설정의 주요 사용 사례

  1. Azure Kubernetes Service (AKS): AKS 클러스터를 배포할 때, AKS 전용 서브넷을 생성하고 해당 서브넷에 대한 Delegation을 설정하여 AKS가 이 서브넷을 관리하고, 필요한 네트워크 리소스를 배포할 수 있도록 합니다.
  2. Azure App Service Environments (ASE): Azure App Service Environment를 배포할 때, 특정 서브넷에 대한 Delegation을 설정하여 ASE가 이 서브넷을 관리하고 고유한 네트워크 리소스를 배포할 수 있게 할 수 있습니다.
  3. Azure SQL Managed Instance: Azure SQL Managed Instance가 동작하려면 서브넷에 Delegation이 필요합니다. Delegation을 통해 SQL Managed Instance가 해당 서브넷 내에서 필요한 리소스를 자동으로 설정하고 관리할 수 있습니다.

Delegation이 필요한 이유

  • 자동 리소스 관리: Azure 서비스는 서브넷 내에서 필요한 리소스를 자동으로 배포하고 관리할 수 있어, 사용자 개입을 최소화할 수 있습니다.
  • 보안: 특정 서브넷을 특정 서비스에만 위임함으로써 네트워크 보안과 격리를 강화할 수 있습니다. 예를 들어, 서브넷이 AKS나 SQL Managed Instance와 같은 서비스에 의해 관리될 때 해당 서비스에 필요한 리소스만을 배포할 수 있도록 제한됩니다.
  • 간소화된 운영: Delegation을 통해 서브넷에서 발생할 수 있는 리소스 충돌이나 관리 오버헤드를 줄일 수 있습니다.

Delegation을 설정하는 방법

Azure Portal, Azure CLI, 또는 ARM 템플릿을 사용하여 서브넷에 Delegation을 설정할 수 있습니다. 각 방법에 대해 간단히 설명드리겠습니다.


1. Azure Portal에서 Subnet Delegation 설정

  1. VNet으로 이동: Azure Portal에서 Virtual Network로 이동합니다.
  2. 서브넷 선택: 서브넷 탭을 클릭하여 Delegation을 설정할 서브넷을 선택합니다.
  3. Delegation 설정:
    • 서브넷의 Delegation 항목을 찾고, "Add delegation" 버튼을 클릭합니다.
    • 드롭다운 목록에서 서비스를 선택합니다. 예를 들어, Azure Kubernetes Service, Azure SQL Managed Instance 등의 옵션이 제공됩니다.
  4. 저장: 원하는 서비스와 연관된 Delegation을 선택한 후 저장합니다.

2. Azure CLI를 사용한 Subnet Delegation 설정

Azure CLI를 사용하여 서브넷에 Delegation을 추가하는 방법은 다음과 같습니다.

명령어 예시

 
az network vnet subnet update \
  --resource-group myResourceGroup \
  --vnet-name myVNet \
  --name mySubnet \
  --delegations Microsoft.ContainerService/managedClusters

설명:

  • --resource-group myResourceGroup: 리소스 그룹 이름
  • --vnet-name myVNet: VNet 이름
  • --name mySubnet: 서브넷 이름
  • --delegations Microsoft.ContainerService/managedClusters: 서브넷에 대한 Delegation 서비스 설정. 여기서는 AKS 클러스터에 대한 Delegation을 설정합니다.

3. ARM 템플릿을 사용한 Subnet Delegation 설정

ARM 템플릿을 사용하여 서브넷에 Delegation을 설정하려면 delegations 속성을 사용해야 합니다. 예를 들어, AKS에 대한 Delegation을 추가하는 ARM 템플릿은 다음과 같습니다:

ARM 템플릿 예시

{
  "$schema": "https://schema.management.azure.com/schemas/2019-08-01/subnet.json#",
  "type": "Microsoft.Network/virtualNetworks/subnets",
  "apiVersion": "2021-02-01",
  "properties": {
    "delegations": [
      {
        "name": "aksDelegation",
        "serviceName": "Microsoft.ContainerService/managedClusters"
      }
    ]
  }
}

설명:

  • serviceName: 서비스의 이름을 지정합니다. 여기서는 Microsoft.ContainerService/managedClusters를 사용하여 AKS를 지정합니다.

4. 지원되는 Delegation 서비스

Azure에서 서브넷 Delegation을 설정할 수 있는 서비스는 다음과 같습니다:

  • Azure Kubernetes Service (AKS): Microsoft.ContainerService/managedClusters
  • Azure SQL Managed Instance: Microsoft.Sql/managedInstances
  • Azure App Service Environment (ASE): Microsoft.Web/hostingEnvironments
  • Azure Firewall: Microsoft.Network/azureFirewalls
  • Azure Virtual WAN: Microsoft.Network/virtualWans

결론

Azure 서브넷의 Delegation은 특정 서비스가 해당 서브넷을 관리하고 리소스를 배포할 수 있도록 권한을 부여하는 중요한 기능입니다. Delegation을 사용하면 네트워크 리소스를 보다 효율적으로 관리하고 보안을 강화할 수 있으며, 특히 **Azure Kubernetes Service (AKS)**나 Azure SQL Managed Instance와 같은 서비스에서 유용하게 사용됩니다.\

 

AWS에서는 서브넷에 대해 특정 리소스를 배치하는 방식이며, 서브넷에 대한 Delegation 개념은 없습니다. AWS에서는 서비스가 자유롭게 서브넷을 사용할 수 있습니다.

반응형

'CLOUD > AZURE' 카테고리의 다른 글

Azure 가상머신의 유형  (0) 2024.12.09
Azure PowerShell 모듈 설치 방법 및 로그인  (1) 2024.12.07
Azure Load Balancer  (0) 2021.07.28
azure ssh 접속 permission denied(publickey) 에러(Mac OS)  (0) 2021.07.27
Wordpress: 이중화  (0) 2021.07.26

댓글