다음을 통해 공유


관리 ID 및 사용자가 제공한 리소스에 대한 Azure 운영자 Nexus 클러스터 지원

운영자 Nexus 플랫폼의 보안을 개선하기 위해 이제 운영자 Nexus 클러스터에 관리 ID가 지원됩니다. 관리 ID는 애플리케이션이 다른 Azure 리소스에 액세스하고 사용자가 자격 증명을 관리할 필요가 없는 안전한 방법을 제공합니다. 또한 운영자 Nexus에는 이제 사용자가 제공한 리소스 모델이 있습니다. 이러한 변화는 향상된 보안 외에도 플랫폼 전체에서 일관된 사용자 환경을 제공합니다.

관리 ID는 운영자 Nexus 클러스터에 제공된 다음 사용자 리소스와 함께 사용됩니다.

  • Bare Metal run-* 명령의 출력에 사용되는 스토리지 계정입니다.
  • 자격 증명 회전에 사용되는 Key Vault입니다.
  • 일부 메트릭을 캡처하는 데 사용되는 Log Analytics 작업 영역입니다.

Azure의 관리 ID에 대한 자세한 내용은 Azure 리소스에 대한 관리 ID를 참조 하세요. 운영자 Nexus 클러스터는 여러 UAMI(사용자 할당 관리 ID) 또는 하나의 시스템 할당 관리 ID(SAMI)를 지원합니다.

사용자는 관리 ID 유형 중 하나를 사용하도록 선택할 수 있지만 UI를 사용하는 것이 좋습니다. 사용자는 운영자 Nexus 클러스터를 만들거나 업데이트하기 전에 UAMI에 대한 적절한 액세스 권한으로 리소스를 미리 구성할 수 있습니다. 모든 리소스에 동일한 UAMI를 사용하거나 사용자가 세분화된 액세스를 원하는 경우 각 리소스에 대한 UI를 정의할 수 있습니다.

추가된 후에는 현재 API 호출을 통해서만 ID를 제거할 수 있습니다. API를 사용하여 클러스터 관리 ID를 업데이트하는 방법에 대한 자세한 내용은 클러스터 ID 업데이트를 참조 하세요. 이 섹션에는 관리 ID 삭제에 대한 정보가 포함되어 있습니다.

필수 조건

참고 항목

Log Analytics 작업 영역 및 Key Vault에 대한 관리 ID 기능은 2024-10-01-preview API와 함께 존재하며 2025-02-01 GA API에서 사용할 수 있습니다.

UAMI(사용자 할당 관리 ID)를 사용하는 운영자 Nexus 클러스터

먼저 모든 사용자 제공 리소스(스토리지 계정, LAW 및 Key Vault)를 정의하고 해당 리소스와 연결된 관리 ID를 정의한 다음 관리 ID에 리소스에 대한 적절한 액세스를 할당하는 것이 가장 좋습니다. 클러스터를 만들기 전에 이러한 단계를 수행하지 않으면 클러스터 배포 전에 단계를 완료해야 합니다.

새 클러스터에 대한 배포 시간별로 이러한 리소스를 구성하지 않을 경우의 영향은 다음과 같습니다.

  • 스토리지 계정: run-* 명령 출력이 Storage 계정에 기록되지 않습니다.
  • LAW: 배포 중에 소프트웨어 확장을 설치하려면 LAW가 필요하기 때문에 클러스터 배포가 실패합니다.
  • Key Vault: 자격 증명 회전을 수행하기 전에 사용자가 제공한 Key Vault에 대한 쓰기 액세스를 확인하는 검사가 있으므로 자격 증명 회전이 실패합니다.

클러스터 업데이트는 언제든지 수행할 수 있습니다. LAW 설정을 변경하면 LAW를 사용하는 확장을 다시 설치해야 할 수 있으므로 메트릭을 LAW에 보내는 데 잠시 중단이 발생할 수 있습니다.

Nexus 클러스터 및 관련 리소스와 함께 UAMIs를 사용하려면 다음 단계를 따라야 합니다.

  1. UAMI 또는 UAMI 만들기
  2. 리소스를 만들고 리소스에 UAMI를 할당합니다.
  3. 사용자 할당 관리 ID 및 사용자가 제공한 리소스를 사용하도록 클러스터를 만들거나 업데이트합니다.

UAMI 또는 UAMI 만들기

  1. 해당 리소스에 대한 UAMI 또는 UAMI를 만듭니다. 관리 ID를 만드는 방법에 대한 자세한 내용은 사용자 할당 관리 ID 관리를 참조 하세요.

리소스를 만들고 리소스에 UAMI를 할당합니다.

스토리지 계정 설정

  1. 스토리지 계정을 만들거나 사용하려는 기존 스토리지 계정을 식별합니다. Azure Storage 계정 만들기를 참조 하세요.
  2. 스토리지 계정에 Blob Storage 컨테이너를 만듭니다. 컨테이너 만들기를 참조하세요.
  3. Storage Blob Data Contributor run-* 명령 출력에 액세스해야 하는 사용자 및 UAMI에 역할을 할당합니다. Blob 데이터에 액세스하기 위한 Azure 역할 할당을 참조하세요.
  4. 스토리지 계정에 대한 액세스를 선택한 IP 또는 가상 네트워크 집합으로 제한하려면 Azure Storage 방화벽 및 가상 네트워크 구성을 참조하세요.
    1. run-* 명령을 실행하는 모든 사용자의 IP를 스토리지 계정 Virtual Networks 및/또는 Firewall 목록에 추가해야 합니다.
    2. 아래 Exceptions 가 선택되어 있는지 확인 Allow Azure services on the trusted services list to access this storage account. 합니다.

Log Analytics 작업 영역 설정

  1. Log Analytics 작업 영역(LAW)을 만들거나 사용하려는 기존 LAW를 식별합니다. Log Analytics 작업 영역 만들기를 참조하세요.
  2. Log Analytics Contributor 로그 분석 작업 영역에 대한 역할을 UAMI에 할당합니다. Log Analytics 작업 영역에 대한 액세스 관리를 참조 하세요.

Key Vault 설정

  1. Key Vault를 만들거나 사용하려는 기존 Key Vault를 식별합니다. Key Vault 만들기를 참조하세요.
  2. RBAC(역할 기반 액세스 제어)에 대해 Key Vault를 사용하도록 설정합니다. Key Vault에 대한 Azure RBAC 권한 사용을 참조하세요.
  3. Operator Nexus Key Vault Writer Service Role (Preview) Key Vault에 대한 UAMI에 역할을 할당합니다. 역할 할당을 참조하세요.
    1. 운영자 Nexus Key Vault 기록기 서비스 역할에 대한 역할 정의 ID는 다음과 같습니다 44f0a1a8-6fea-4b35-980a-8ff50c487c97. 이 형식은 Azure 명령줄을 사용하여 역할 할당을 수행하는 경우에 필요합니다.
  4. UAMI를 사용하여 Key Vault에 액세스하는 경우 Nexus 플랫폼에 대해 해당 ID에 대한 액세스를 프로비전해야 합니다. 특히 Microsoft.ManagedIdentity/userAssignedIdentities/assign/action Microsoft Entra ID에 대한 사용자 할당 ID에 AFOI-NC-MGMT-PME-PROD 권한을 추가해야 합니다. 향후 해결될 플랫폼의 알려진 제한 사항입니다.
    1. Azure Portal을 열고 해당 사용자 할당 ID를 찾습니다.
    2. 액세스 제어(IAM)에서 역할 할당 추가를 선택합니다.
    3. 역할 선택: 관리 ID 연산자입니다. (역할에서 관리 ID 연산자를 제공하는 사용 권한을 참조하세요).
    4. 사용자, 그룹 또는 서비스 주체에 대한 액세스 권한을 할당합니다.
    5. 멤버 선택: AFOI-NC-MGMT-PME-PROD 애플리케이션.
    6. 검토하고 할당합니다.
  5. Key Vault에 대한 액세스를 선택한 IP 또는 가상 네트워크 집합으로 제한하려면 Azure Key Vault 방화벽 및 가상 네트워크 구성을 참조 하세요.
    1. Key Vault에 액세스해야 하는 모든 사용자의 IP를 Key Vault Virtual Networks 및/또는 Firewall 목록에 추가해야 합니다.
    2. 아래 ExceptionsAllow trusted Microsoft services to bypass this firewall. 선택되어 있는지 확인합니다.

사용자 할당 관리 ID 및 사용자가 제공한 리소스를 사용하도록 Nexus 클러스터 만들기 또는 업데이트

클러스터에서 UAMI 정의

사용자가 할당한 관리 ID를 사용하여 클러스터를 만들거나 업데이트하는 경우 UAMI의 리소스 ID와 함께 매개 변수를 사용합니다 --mi-user-assigned . 여러 UI를 지정하려면 UI의 리소스 ID에 공백이 있는 ID를 나열합니다. Key Vault, LAW 또는 Storage 계정에 사용되는 각 UAMI는 이 목록에 제공되어야 합니다.

클러스터를 만들 때 UAMI --mi-user-assigned 를 지정하고 리소스 설정을 정의할 수도 있습니다. UAMI를 변경하도록 클러스터를 업데이트하는 경우 먼저 클러스터를 업데이트하여 값을 설정한 --mi-user-assigned 다음 클러스터를 업데이트하여 사용할 리소스 설정을 수정해야 합니다.

스토리지 계정 설정

--command-output-settings 데이터 구문은 실행 명령 출력이 기록되는 Storage 계정을 정의하는 데 사용됩니다. 구성되는 필드는 다음과 같습니다.

  • container-url: 지정된 ID에서 사용할 스토리지 계정 컨테이너의 URL입니다.
  • identity-resource-id: 사용자가 사용할 관리 ID 리소스 ID를 할당했습니다. 시스템 할당 ID 형식과 상호 배타적입니다.
  • identity-type: 선택 중인 관리 ID의 형식입니다. UserAssignedIdentity을 사용합니다.

Log Analytics 작업 영역 설정

--analytics-output-settings 데이터 구문은 메트릭이 전송되는 LAW를 정의하는 데 사용됩니다. 구성되는 필드는 다음과 같습니다.

  • analytics-workspace-id: 지정된 ID에서 사용할 분석 작업 영역의 리소스 ID입니다.
  • identity-resource-id: 사용자가 사용할 관리 ID 리소스 ID를 할당했습니다. 시스템 할당 ID 형식과 상호 배타적
  • identity-type: 선택 중인 관리 ID의 형식입니다. UserAssignedIdentity을 사용합니다.

Key Vault 설정

--secret-archive-settings 데이터 구문은 회전된 자격 증명이 기록되는 Key Vault를 정의하는 데 사용됩니다. 구성되는 필드는 다음과 같습니다.

  • identity-resource-id: 사용자가 사용할 관리 ID 리소스 ID를 할당했습니다.
  • identity-type: 선택 중인 관리 ID의 형식입니다. UserAssignedIdentity을 사용합니다.
  • vault-uri: 비밀 보관으로 사용되는 키 자격 증명 모음의 URI입니다.

클러스터 만들기 명령 예제

예제 1: 이 예제는 스토리지 계정, LAW 및 Key Vault에서 하나의 UAMI를 사용하는 약식 클러스터 만들기 명령입니다.

az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \

    ...

    --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    --command-output-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    --secret-archive-settings vault-uri="https://mykv.vault.azure.net/"
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \

예제 2: 이 예제는 두 개의 UI를 사용하는 축약된 클러스터 만들기 명령입니다. 스토리지 계정 및 LAW는 첫 번째 UAMI를 사용하고 Key Vault는 두 번째 UAMI를 사용합니다.

az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \

    ...

    --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \
    --command-output-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" \
    --secret-archive-settings vault-uri="https://mykv.vault.azure.net/"
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI"

클러스터 업데이트 예제

클러스터 업데이트는 2단계 프로세스입니다. 리소스에 대한 UAMI를 변경해야 하는 경우 먼저 클러스터를 업데이트하여 필드에 포함 --mi-user-assigned 한 다음 스토리지 계정, LAW 또는 Key Vault에 해당하는 --identity-resource-id 항목을 업데이트해야 합니다.

여러 UI를 사용하는 경우 업데이트할 때 필드에 UI의 전체 목록을 지정 --mi-user-assigned 해야 합니다. 클러스터에서 SAMI를 사용하고 UAMI를 추가하는 경우 업데이트 명령에 포함 --mi-system-assigned 해야 합니다. 기존 관리 ID를 포함하지 않으면 제거됩니다.

LAW 및 Key Vault의 경우 기존 데이터 구문에서 관리 ID를 사용하는 새 구문으로 전환하는 작업은 클러스터 업데이트를 통해 수행할 수 있습니다.

예제 1: 클러스터에 UAMI를 추가합니다. 그런 다음 비밀 보관 설정(Key Vault)에 UAMI를 할당합니다. 이 클러스터에 SAMI가 정의된 경우 SAMI가 제거됩니다.

UAMI myUAMI를 추가하는 클러스터 업데이트입니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
   --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \

비밀 보관 설정에 할당 myUAMI 할 클러스터 업데이트입니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --secret-archive-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    vault-uri="https://keyvaultname.vault.azure.net/"

예제 2: 이미 myFirstUAMI 보존되어 있는 클러스터에 UAMI mySecondUAMI 를 추가합니다. 그런 다음, 클러스터를 업데이트하여 명령 출력 설정(스토리지 계정)에 할당 mySecondUAMI 합니다.

를 유지하면서 myFirstUAMIUAMI mySecondUAMI 를 추가하는 클러스터 업데이트입니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
   --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myFirstUAMI" "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \

명령 출력 설정에 할당 mySecondUAMI 할 클러스터 업데이트입니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --command-output-settings identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/mySecondUAMI" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"

예제 3: SAMI가 이미 있는 클러스터를 업데이트하고 UAMI를 추가합니다. SAMI는 유지됩니다. 그런 다음 로그 분석 출력 설정(LAW)에 UAMI를 할당합니다.

주의

LAW 설정을 변경하면 LAW를 사용하는 확장을 다시 설치해야 할 수 있으므로 메트릭을 LAW에 보내는 데 잠시 중단이 발생할 수 있습니다.

UAMI mUAMI를 추가하는 클러스터 업데이트입니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
   --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
   --mi-system-assigned

로그 분석 출력 설정에 할당 myUAMI 할 클러스터 업데이트입니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="UserAssignedIdentity" \
    identity-resource-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI"

사용자 할당 관리 ID의 보안 주체 ID 보기

ID 리소스 ID는 ID 리소스에서 "JSON 보기"를 선택하여 찾을 수 있습니다. ID가 표시되는 패널의 맨 위에 있습니다. 컨테이너 URL은 컨테이너 리소스의 설정 -> 속성 탭에서 찾을 수 있습니다.

CLI를 사용하여 클러스터 내에서 ID 및 연결된 보안 주체 ID 데이터를 볼 수도 있습니다.

예제:

az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>

출력:

    "identity": {
        "type": "UserAssigned",
        "userAssignedIdentities": {
            "/subscriptions/subscriptionID/resourcegroups/<resourceGroupName>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<userAssignedIdentityName>": {
                "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
                "principalId": "bbbbbbbb-cccc-dddd-2222-333333333333"
            }
        }
    },

시스템 할당 관리 ID를 사용하는 운영자 Nexus 클러스터

SAMI(시스템 할당 관리 ID)를 사용하는 것은 UAMI와 다른 패턴을 따릅니다. 사용자가 제공한 리소스(스토리지 계정, LAW 및 Key Vault)는 클러스터를 만들기 전에 만들 수 있지만 클러스터를 만들 때까지 SAMI가 존재하지 않습니다. 사용자는 클러스터를 쿼리하여 SAMI를 가져와 각 리소스에 대해 SAMI에 올바른 권한을 할당한 다음 시스템 할당 ID를 지정하는 리소스 설정으로 클러스터를 업데이트해야 합니다.

새 클러스터의 경우 클러스터 배포 전에 이러한 단계를 완료해야 합니다. 새 클러스터에 대한 배포 시간별로 이러한 리소스를 구성하지 않을 경우의 영향은 다음과 같습니다.

  • 스토리지 계정: run-* 명령 출력이 Storage 계정에 기록되지 않습니다.
  • LAW: 배포 중에 소프트웨어 확장을 설치하려면 LAW가 필요하기 때문에 클러스터 배포가 실패합니다.
  • Key Vault: 자격 증명 회전을 수행하기 전에 사용자가 제공한 Key Vault에 대한 쓰기 액세스를 확인하는 검사가 있으므로 자격 증명 회전이 실패합니다.

클러스터 업데이트는 언제든지 수행할 수 있습니다. LAW 설정을 변경하면 LAW를 사용하는 확장을 다시 설치해야 할 수 있으므로 메트릭을 LAW에 보내는 데 잠시 중단이 발생할 수 있습니다.

Nexus 클러스터 및 관련 리소스와 함께 UAMIs를 사용하려면 다음 단계를 따라야 합니다.

  1. SAMI를 사용하여 클러스터 만들기 또는 업데이트
  2. 클러스터를 쿼리하여 SAMI 가져오기
  3. 리소스를 만들고 리소스에 SAMI를 할당합니다.
  4. 사용자가 제공한 리소스 정보로 클러스터 업데이트
  5. 클러스터 배포(새 클러스터인 경우)

SAMI를 사용하여 클러스터 만들기 또는 업데이트

시스템 할당 관리 ID를 사용하여 클러스터를 만들거나 업데이트하는 경우 매개 변수를 --mi-system-assigned 사용합니다. 클러스터 만들기 또는 업데이트 프로세스는 SAMI 정보를 생성합니다.

예제 1: 이 예제는 SAMI를 지정하는 축약된 클러스터 만들기 명령입니다.

az networkcloud cluster create --name "clusterName" -g "resourceGroupName" \

    ...

    --mi-system-assigned

예제 2: 이 예제에서는 클러스터를 업데이트하여 SAMI를 추가합니다. 클러스터에 정의된 모든 UI가 제거됩니다.

az networkcloud cluster update --name "clusterName" -g "resourceGroupName" \
    --mi-system-assigned

예제 3: 이 예제에서는 클러스터를 업데이트하여 SAMI를 추가하고 기존 UAMI myUAMI를 유지합니다.

az networkcloud cluster update --name "clusterName" -g "resourceGroupName" \
    --mi-user-assigned "/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myUAMI" \
    --mi-system-assigned

클러스터를 쿼리하여 SAMI 가져오기

ID 리소스 ID는 Azure Portal의 ID 리소스에서 "JSON 보기"를 선택하여 찾을 수 있습니다.

CLI를 사용하여 클러스터 내에서 ID 및 연결된 보안 주체 ID 데이터를 볼 수도 있습니다.

리소스에 principalId 대한 액세스 권한을 부여할 때 사용되는 ID를 확인합니다.

예제:

az networkcloud cluster show --ids /subscriptions/<Subscription ID>/resourceGroups/<Cluster Resource Group Name>/providers/Microsoft.NetworkCloud/clusters/<Cluster Name>

시스템 할당 ID 예제:

    "identity": {
        "principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
        "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
        "type": "SystemAssigned"
    },

리소스를 만들고 리소스에 SAMI를 할당합니다.

스토리지 계정 설정

  1. 스토리지 계정을 만들거나 사용하려는 기존 스토리지 계정을 식별합니다. Azure Storage 계정 만들기를 참조 하세요.
  2. 스토리지 계정에 Blob Storage 컨테이너를 만듭니다. 컨테이너 만들기를 참조하세요.
  3. Storage Blob Data Contributor run-* 명령 출력에 액세스해야 하는 사용자 및 SAMI에 역할을 할당합니다. Blob 데이터에 액세스하기 위한 Azure 역할 할당을 참조하세요.
    1. 스토리지 계정에 대한 액세스를 선택한 IP 또는 가상 네트워크 집합으로 제한하려면 Azure Storage 방화벽 및 가상 네트워크 구성을 참조하세요.
    2. run-* 명령을 실행하는 모든 사용자의 IP를 스토리지 계정 Virtual Networks 및/또는 Firewall 목록에 추가해야 합니다.
    3. 아래 Exceptions 가 선택되어 있는지 확인 Allow Azure services on the trusted services list to access this storage account. 합니다.

Log Analytics 작업 영역 설정

  1. Log Analytics 작업 영역(LAW)을 만들거나 사용하려는 기존 LAW를 식별합니다. Log Analytics 작업 영역 만들기를 참조하세요.
  2. Log Analytics Contributor 로그 분석 작업 영역에 대한 역할을 SAMI에 할당합니다. Log Analytics 작업 영역에 대한 액세스 관리를 참조 하세요.

Key Vault 설정

  1. Key Vault를 만들거나 사용하려는 기존 Key Vault를 식별합니다. Key Vault 만들기를 참조하세요.
  2. RBAC(역할 기반 액세스 제어)에 대해 Key Vault를 사용하도록 설정합니다. Key Vault에 대한 Azure RBAC 권한 사용을 참조하세요.
  3. Operator Nexus Key Vault Writer Service Role (Preview) Key Vault에 대한 SAMI에 역할을 할당합니다. 역할 할당을 참조하세요.
    1. 운영자 Nexus Key Vault 기록기 서비스 역할에 대한 역할 정의 ID는 다음과 같습니다 44f0a1a8-6fea-4b35-980a-8ff50c487c97. 이 형식은 Azure 명령줄을 사용하여 역할 할당을 수행하는 경우에 필요합니다.
  4. Key Vault에 대한 액세스를 선택한 IP 또는 가상 네트워크 집합으로 제한하려면 Azure Key Vault 방화벽 및 가상 네트워크 구성을 참조 하세요.
    1. Key Vault에 액세스해야 하는 모든 사용자의 IP를 Key Vault Virtual Networks 및/또는 Firewall 목록에 추가해야 합니다.
    2. 아래 ExceptionsAllow trusted Microsoft services to bypass this firewall. 선택되어 있는지 확인합니다.

사용자가 제공한 리소스 정보로 클러스터 업데이트

스토리지 계정 설정

--command-output-settings 데이터 구문은 실행 명령 출력이 기록되는 Storage 계정을 정의하는 데 사용됩니다. 구성되는 필드는 다음과 같습니다.

  • container-url: 지정된 ID에서 사용할 스토리지 계정 컨테이너의 URL입니다.
  • identity-resource-id: SAMI를 사용할 때는 필요하지 않습니다.
  • identity-type: 선택 중인 관리 ID의 형식입니다. SystemAssignedIdentity을 사용합니다.

Log Analytics 작업 영역 설정

--analytics-output-settings 데이터 구문은 메트릭이 전송되는 LAW를 정의하는 데 사용됩니다. 구성되는 필드는 다음과 같습니다.

  • analytics-workspace-id: 지정된 ID에서 사용할 분석 작업 영역의 리소스 ID입니다.
  • identity-resource-id: SAMI를 사용할 때는 필요하지 않습니다.
  • identity-type: 선택 중인 관리 ID의 형식입니다. SystemAssignedIdentity을 사용합니다.

Key Vault 설정

--secret-archive-settings 데이터 구문은 회전된 자격 증명이 기록되는 Key Vault를 정의하는 데 사용됩니다. 구성되는 필드는 다음과 같습니다.

  • identity-resource-id: SAMI를 사용할 때는 필요하지 않습니다.
  • identity-type: 선택 중인 관리 ID의 형식입니다. SystemAssignedIdentity을 사용합니다.
  • vault-uri: 비밀 보관으로 사용되는 키 자격 증명 모음의 URI입니다.

클러스터 업데이트 예제

클러스터 업데이트는 create와 동일한 패턴을 따릅니다. 리소스에 대한 UAMI를 변경해야 하는 경우 스토리지 계정, LAW 또는 Key Vault에 해당하는 필드와 해당 --identity-resource-id 리소스를 모두 --mi-user-assigned 포함해야 합니다. 여러 UI를 사용하는 경우 업데이트할 때 필드에 UI의 전체 목록을 지정 --mi-user-assigned 해야 합니다.

LAW 및 Key Vault의 경우 클러스터 업데이트를 통해 기존 데이터 구문에서 UAMI를 사용하는 새 구문으로 전환할 수 있습니다.

Important

사용 중인 UAMI 또는 UAMI를 사용하여 클러스터를 업데이트하는 경우 SAMI를 추가하거나 업데이트할 때 ID 목록에 기존 --mi-user-assigned UI를 포함해야 합니다. 클러스터에서 SAMI를 사용하고 UAMI를 추가하는 경우 업데이트 명령에 포함 --mi-system-assigned 해야 합니다. 이렇게 하지 않으면 해당 관리 ID가 제거됩니다.

예제 1: 클러스터에 대한 명령 출력 설정(스토리지 계정)을 추가하거나 업데이트합니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --command-output-settings identity-type="SystemAssignedIdentity" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"

예제 2: 클러스터에 대한 LAW(Log Analytics 출력 설정)를 추가하거나 업데이트합니다.

주의

LAW 설정을 변경하면 LAW를 사용하는 확장을 다시 설치해야 할 수 있으므로 메트릭을 LAW에 보내는 데 잠시 중단이 발생할 수 있습니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="SystemAssignedIdentity" \

예제 3: 클러스터에 대한 비밀 보관 설정(Key Vault)을 추가하거나 업데이트합니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --secret-archive-settings identity-type="SystemAssignedIdentity" \
    vault-uri="https://keyvaultname.vault.azure.net/"

예제 4: 이 예제에서는 SAMI를 사용하여 세 개의 리소스를 모두 하나의 업데이트로 결합합니다.

az networkcloud cluster update --name "clusterName" --resource-group "resourceGroupName" \
    --command-output-settings identity-type="SystemAssignedIdentity" \
    container-url="https://myaccount.blob.core.windows.net/mycontainer?restype=container"
    --analytics-output-settings analytics-workspace-id="/subscriptions/subscriptionId/resourceGroups/resourceGroupName/providers/microsoft.operationalInsights/workspaces/logAnalyticsWorkspaceName" \
    identity-type="SystemAssignedIdentity" \
    --secret-archive-settings identity-type="SystemAssignedIdentity" \
    vault-uri="https://keyvaultname.vault.azure.net/"

API를 통해 클러스터 ID 업데이트

CLI를 통해 클러스터 관리 ID를 할당할 수 있습니다. ID의 할당 해제는 API 호출을 통해 수행할 수 있습니다. <APIVersion> API 버전 2024-07-01 이상입니다.

  • 모든 관리 ID를 제거하려면 다음을 실행합니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body "{\"identity\":{\"type\":\"None\"}}"
    
  • 사용자 할당 및 시스템 할당 관리 ID가 모두 추가된 경우 다음을 업데이트하여 사용자 할당을 typeSystemAssigned제거할 수 있습니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    요청 본문(uai-body.json) 예제:

    {
    "identity": {
          "type": "SystemAssigned"
    }
    }
    
  • 사용자 할당 및 시스템 할당 관리 ID가 모두 추가된 경우 다음을 업데이트 typeUserAssigned하여 시스템 할당을 제거할 수 있습니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    요청 본문(uai-body.json) 예제:

    {
    "identity": {
          "type": "UserAssigned",
      "userAssignedIdentities": {
      	"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": {}
      }
    }
    }
    
  • 여러 사용자 할당 관리 ID가 추가된 경우 다음을 실행하여 해당 ID 중 하나를 제거할 수 있습니다.

    az rest --method PATCH --url /subscriptions/$SUB_ID/resourceGroups/$CLUSTER_RG/providers/Microsoft.NetworkCloud/clusters/$CLUSTER_NAME?api-version=<APIVersion> --body @~/uai-body.json
    

    요청 본문(uai-body.json) 예제:

    {
    "identity": {
          "type": "UserAssigned",
      "userAssignedIdentities": {
      	"/subscriptions/$SUB_ID/resourceGroups/$UAI_RESOURCE_GROUP/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$UAI_NAME": null
      }
    }
    }