Azure Private 5G Core에 대한 새 SIM 프로비전 - ARM 템플릿

SIM 리소스는 프라이빗 모바일 네트워크에서 제공하는 UE(사용자 장비)에서 사용하는 물리적 SIM 또는 eSIM을 나타냅니다. 이 방법 가이드에서는 ARM 템플릿(Azure Resource Manager 템플릿)을 사용하여 기존 프라이빗 모바일 네트워크에 새 SIM을 프로비전하는 방법을 알아봅니다.

Azure Resource Manager 템플릿은 프로젝트에 대한 인프라 및 구성을 정의하는 JSON(JavaScript Object Notation) 파일입니다. 이 템플릿은 선언적 구문을 사용합니다. 배포를 만들기 위한 프로그래밍 명령의 시퀀스를 작성하지 않고 의도하는 배포를 설명합니다.

환경이 필수 구성 요소를 충족하고 ARM 템플릿 사용에 익숙한 경우 Azure에 배포 단추를 선택합니다. 그러면 Azure Portal에서 템플릿이 열립니다.

Resource Manager 템플릿을 Azure에 배포하기 위한 단추입니다.

필수 조건

  • 프라이빗 모바일 네트워크 배포를 위한 필수 구성 요소 작업 완료에서 식별한 활성 구독에 대한 액세스 권한이 있는 계정을 사용하여 Azure Portal에 로그인할 수 있는지 확인합니다. 이 계정에는 구독 범위에 기본 제공되는 참가자 역할이 있어야 합니다.
  • 프라이빗 모바일 네트워크에 해당하는 모바일 네트워크 리소스의 이름과 이를 포함하는 리소스 그룹을 식별합니다.
  • 프라이빗 모바일 네트워크를 배포한 Azure 지역을 식별합니다.
  • SIM이 추가될 새 SIM 그룹의 이름을 선택합니다.
  • 프로비전 중인 SIM에 할당하려는 SIM 정책을 식별합니다. SIM 정책 구성 - Azure Portal의 지침을 사용하여 이 SIM 정책을 이미 만들었어야 합니다.

SIM에 필요한 정보 수집

시작하려면 프로비전하려는 각 SIM에 대해 다음 표의 값을 수집합니다.

매개 변수 이름
SIM 이름입니다. SIM 이름에는 영숫자, 대시 및 밑줄만 포함해야 합니다. simName
ICCID(집적 회로 카드 ID 번호)입니다. ICCID는 특정 물리적 SIM 또는 eSIM을 식별하고 SIM의 국가/지역 및 발급자 정보를 포함합니다. ICCID는 선택 사항이며 89부터 시작하는 길이가 19~20자리인 고유한 숫자 값입니다. integratedCircuitCardIdentifier
국제 모바일 구독자 ID(IMSI)입니다. IMSI는 모바일 네트워크에서 디바이스 또는 사용자를 식별하는 고유한 숫자(일반적으로 15자리)입니다. internationalMobileSubscriberIdentity
인증 키(Ki)입니다. Ki는 연산자가 SIM에 할당한 고유한 128비트 값이며 사용자를 인증하기 위해 파생 연산자 코드(OPc)와 함께 사용됩니다. 16진수 문자만 포함하는 32자 문자열이어야 합니다. authenticationKey
파생 연산자 코드(OPc)입니다. OPc는 SIM의 Ki 및 네트워크의 OP(운영자 코드)에서 가져옵니다. 패킷 코어 인스턴스는 이를 사용하여 표준 기반 알고리즘을 통해 사용자를 인증합니다. OPc는 16진수 문자만 포함하는 32자 문자열이어야 합니다. operatorKeyCode
이 SIM을 사용하는 디바이스 유형입니다. 이 값은 선택적 자유 형식 문자열입니다. 필요에 따라 엔터프라이즈의 프라이빗 모바일 네트워크를 사용하는 디바이스 유형을 쉽게 식별할 수 있습니다. deviceType
SIM에 할당할 SIM 정책입니다. 이는 선택 사항이지만 SIM은 할당된 SIM 정책 없이는 프라이빗 모바일 네트워크를 사용할 수 없습니다. simPolicyId

고정 IP 주소를 할당하는 데 필요한 정보 수집

다음이 모두 적용되는 경우에만 이 단계를 완료해야 합니다.

  • 하나 이상의 JSON 배열을 사용하여 SIM을 프로비전합니다.
  • 패킷 코어 인스턴스에 대한 고정 IP 주소 할당을 구성함
  • SIM 프로비전 중에 SIM에 고정 IP 주소를 할당하려고 함

프로비전하려는 각 SIM에 대해 다음 표의 값을 수집합니다. 프라이빗 모바일 네트워크에 여러 데이터 네트워크가 있고 각 데이터 네트워크마다 다른 고정 IP 주소를 이 SIM에 할당하려는 경우 각 IP 주소에 대한 값을 수집합니다.

각 IP 주소는 데이터 네트워크 값 수집에 설명된 대로 관련 데이터 네트워크를 만들 때 고정 IP 주소 할당을 위해 할당한 풀에서 가져와야 합니다. 자세한 내용은 UE(사용자 장비) IP 주소 풀 할당을 참조하세요.

Azure Portal 필드 이름 JSON 매개 변수 이름
SIM에서 사용할 데이터 네트워크입니다. 해당 없음. staticIpConfiguration.attachedDataNetworkId
SIM에서 사용할 네트워크 조각입니다. 해당 없음. staticIpConfiguration.sliceId
SIM에 할당할 고정 IP 주소입니다. 해당 없음. staticIpConfiguration.staticIpAddress

SIM에 대해 하나 이상의 JSON 배열 준비

SIM에 필요한 정보 수집에서 수집한 정보를 사용하여 프로비전하려는 최대 1,000개의 SIM 속성이 포함된 하나 이상의 JSON 배열을 만듭니다. 다음은 두 개의 SIM(SIM1SIM2)에 대한 속성을 포함하는 배열의 예입니다.

지금 SIM 정책이나 고정 IP 주소를 할당하지 않으려면 simPolicy 및/또는 staticIpConfiguration 매개 변수를 삭제할 수 있습니다.

참고 항목

API 요청 본문의 최대 크기는 4MB입니다. 이 한도 미만으로 유지하려면 JSON 배열당 최대 1000개의 SIM을 입력하는 것이 좋습니다. 1000개가 넘는 SIM을 프로비전하려면 여러 배열을 만들고 각각에 대해 프로비전 프로세스를 반복합니다. 또는 Azure Portal을 사용하여 JSON 파일당 최대 10,000개의 SIM을 프로비전할 수 있습니다.

[
 {
  "simName": "SIM1",
  "integratedCircuitCardIdentifier": "8912345678901234566",
  "internationalMobileSubscriberIdentity": "001019990010001",
  "authenticationKey": "00112233445566778899AABBCCDDEEFF",
  "operatorKeyCode": "63bfa50ee6523365ff14c1f45f88737d",
  "deviceType": "Cellphone",
  "simPolicyId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/mobileNetworks/contoso-network/simPolicies/SimPolicy1",
  "staticIpConfiguration" :[
	{
	  "attachedDataNetworkId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/packetCoreControlPlanes/site-1/packetCoreDataPlanes/site-1/attachedDataNetworks/adn1",
	  "sliceId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/mobileNetworks/contoso-network/slices/slice-1",
	  "staticIpAddress": "10.132.124.54"
	},
    {
	  "attachedDataNetworkId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/packetCoreControlPlanes/site-1/packetCoreDataPlanes/site-1/attachedDataNetworks/adn2",
	  "sliceId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/mobileNetworks/contoso-network/slices/slice-1",
	  "staticIpAddress": "10.132.124.55"
	}
   ]
 },
 {
  "simName": "SIM2",
  "integratedCircuitCardIdentifier": "8922345678901234567",
  "internationalMobileSubscriberIdentity": "001019990010002",
  "authenticationKey": "11112233445566778899AABBCCDDEEFF",
  "operatorKeyCode": "63bfa50ee6523365ff14c1f45f88738d",
  "deviceType": "Sensor",
  "simPolicyId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/mobileNetworks/contoso-network/simPolicies/SimPolicy2",
  "staticIpConfiguration" :[
	{
	  "attachedDataNetworkId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/packetCoreControlPlanes/site-1/packetCoreDataPlanes/site-1/attachedDataNetworks/adn1",
	  "sliceId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/mobileNetworks/contoso-network/slices/slice-1",
	  "staticIpAddress": "10.132.124.54"
	},
	{
	  "attachedDataNetworkId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/packetCoreControlPlanes/site-1/packetCoreDataPlanes/site-1/attachedDataNetworks/adn2",
	  "sliceId": "/subscriptions/subid/resourceGroups/contoso-rg/providers/Microsoft.MobileNetwork/mobileNetworks/contoso-network/slices/slice-1",
	  "staticIpAddress": "10.132.124.55"
	}
   ]
 }
]

템플릿 검토

이 빠른 시작에서 사용되는 템플릿은 Azure 빠른 시작 템플릿에서 나온 것입니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "9173523895323587869"
    }
  },
  "parameters": {
    "location": {
      "type": "string",
      "metadata": {
        "description": "Region where the SIM group will be deployed (must match the resource group region)."
      }
    },
    "existingMobileNetworkName": {
      "type": "string",
      "metadata": {
        "description": "The name of the mobile network to which you are adding the SIM group."
      }
    },
    "existingSimPolicyName": {
      "type": "string",
      "metadata": {
        "description": "The name of the SIM policy to be assigned to the SIM(s)."
      }
    },
    "simGroupName": {
      "type": "string",
      "metadata": {
        "description": "The name for the SIM group."
      }
    },
    "existingEncryptionKeyUrl": {
      "type": "string",
      "defaultValue": "",
      "metadata": {
        "description": "A unversioned key vault key to encrypt the SIM data that belongs to this SIM group. For example: https://contosovault.vault.azure.net/keys/azureKey."
      }
    },
    "existingUserAssignedIdentityResourceId": {
      "type": "string",
      "defaultValue": "",
      "metadata": {
        "description": "User-assigned identity is an identity in Azure Active Directory that can be used to give access to other Azure resource such as Azure Key Vault. This identity should have Get, Wrap key, and Unwrap key permissions on the key vault."
      }
    },
    "simResources": {
      "type": "array",
      "metadata": {
        "description": "An array containing properties of the SIM(s) you wish to create. See [Provision proxy SIM(s)](https://docs.microsoft.com/en-gb/azure/private-5g-core/provision-sims-azure-portal) for a full description of the required properties and their format."
      }
    }
  },
  "resources": [
    {
      "copy": {
        "name": "exampleSimResources",
        "count": "[length(parameters('simResources'))]"
      },
      "type": "Microsoft.MobileNetwork/simGroups/sims",
      "apiVersion": "2024-02-01",
      "name": "[format('{0}/{1}', parameters('simGroupName'), parameters('simResources')[copyIndex()].simName)]",
      "properties": {
        "integratedCircuitCardIdentifier": "[parameters('simResources')[copyIndex()].integratedCircuitCardIdentifier]",
        "internationalMobileSubscriberIdentity": "[parameters('simResources')[copyIndex()].internationalMobileSubscriberIdentity]",
        "authenticationKey": "[parameters('simResources')[copyIndex()].authenticationKey]",
        "operatorKeyCode": "[parameters('simResources')[copyIndex()].operatorKeyCode]",
        "deviceType": "[parameters('simResources')[copyIndex()].deviceType]",
        "simPolicy": {
          "id": "[resourceId('Microsoft.MobileNetwork/mobileNetworks/simPolicies', parameters('existingMobileNetworkName'), parameters('existingSimPolicyName'))]"
        }
      },
      "dependsOn": [
        "[resourceId('Microsoft.MobileNetwork/simGroups', parameters('simGroupName'))]"
      ]
    },
    {
      "type": "Microsoft.MobileNetwork/simGroups",
      "apiVersion": "2024-02-01",
      "name": "[parameters('simGroupName')]",
      "location": "[parameters('location')]",
      "properties": {
        "mobileNetwork": {
          "id": "[resourceId('Microsoft.MobileNetwork/mobileNetworks', parameters('existingMobileNetworkName'))]"
        },
        "encryptionKey": {
          "keyUrl": "[parameters('existingEncryptionKeyUrl')]"
        }
      },
      "identity": "[if(not(empty(parameters('existingUserAssignedIdentityResourceId'))), createObject('type', 'UserAssigned', 'userAssignedIdentities', createObject(format('{0}', parameters('existingUserAssignedIdentityResourceId')), createObject())), createObject('type', 'None'))]"
    }
  ]
}

다음 Azure 리소스는 템플릿에 정의되어 있습니다.

템플릿 배포

  1. 다음 링크를 선택하여 Azure에 로그인하고 템플릿을 엽니다.

    Resource Manager 템플릿을 Azure에 배포하는 단추.

  2. 필수 조건에서 검색한 정보를 사용하여 다음 값을 선택하거나 입력합니다.

    • 구독: 프라이빗 모바일 네트워크를 만드는 데 사용한 Azure 구독을 선택합니다.
    • 리소스 그룹: 프라이빗 모바일 네트워크를 나타내는 모바일 네트워크 리소스가 포함된 리소스 그룹을 선택합니다.
    • 지역: 프라이빗 모바일 네트워크를 배포한 지역을 선택합니다.
    • 위치: 프라이빗 모바일 네트워크를 배포한 지역의 코드 이름을 입력합니다.
    • 기존 모바일 네트워크 이름: 프라이빗 모바일 네트워크를 나타내는 모바일 네트워크 리소스의 이름을 입력합니다.
    • 기존 Sim 정책 이름: SIM에 할당할 SIM 정책의 이름을 입력합니다.
    • Sim 그룹 이름: 새 SIM 그룹의 이름을 입력합니다.
    • Sim 리소스:SIM에 대해 하나 이상의 JSON 배열 준비에서 준비한 JSON 배열 중 하나에 붙여 넣습니다.

    SIM ARM 템플릿의 구성 필드를 보여 주는 Azure Portal의 스크린샷.

  3. 검토 + 만들기를 선택합니다.

  4. Azure는 이제 입력한 구성 값의 유효성을 검사합니다. 값이 유효성 검사를 통과했음을 나타내는 메시지가 표시되어야 합니다.

    유효성 검사에 실패하면 오류 메시지가 표시되고 잘못된 구성이 포함된 구성 탭에 플래그가 지정됩니다. 검토 + 만들기 탭으로 돌아가기 전에 신고된 탭을 선택하고 오류 메시지를 사용하여 잘못된 구성을 수정합니다.

  5. 구성의 유효성이 검사되면 만들기를 선택하여 SIM을 프로비전할 수 있습니다. SIM이 프로비전되면 Azure Portal에 확인 화면이 표시됩니다.

  6. 1,000개 이상의 SIM을 프로비전하는 경우 각 JSON 배열에 대해 이 프로세스를 반복합니다.

배포된 리소스 검토

  1. 리소스 그룹으로 이동을 선택합니다.

    ARM 템플릿의 배포 확인을 보여 주는 Azure Portal의 스크린샷.

  2. 리소스 그룹에 SIM 그룹 리소스가 만들어졌는지 확인합니다.

    새로 생성된 SIM 그룹이 포함된 리소스 그룹을 보여 주는 Azure Portal의 스크린샷.

  3. SIM 그룹 리소스를 선택하고 모든 SIM이 올바르게 프로비전되었는지 확인합니다.

    SIM이 포함된 SIM 그룹 리소스를 보여 주는 Azure Portal의 스크린샷.

다음 단계