NSX Cloud는 하나 이상의 구독에 필요한 서비스 사용자 및 역할을 생성할 수 있는 PowerShell 스크립트를 제공합니다.

사전 요구 사항

  • AzureRM 모듈이 설치된 PowerShell 5.0 이상이 필요합니다. 새 Azure Powershell Az 모듈이 있는 경우 Enable-AzureRmAlias 명령을 실행하여 NSX Cloud에 대한 AzureRM cmdlet이 성공적으로 실행되는지 확인해야 합니다 .
  • Microsoft Azure 구독 소유자이거나, Microsoft Azure 구독에 역할을 생성하고 할당할 수 있는 사용 권한이 있어야 합니다.
참고: 스크립트를 처음 실행할 때 Microsoft Azure의 응답 시간으로 인해 스크립트가 실패할 수 있습니다. 스크립트가 실패하면 다시 실행해 보십시오.

프로시저

  1. Windows 데스크톱 또는 서버에서, 이름이 CreateNSXCloudCredentials.zip인 ZIP 파일을 NSX 다운로드 페이지 > 드라이버 및 도구 > NSX Cloud 스크립트 > Microsoft Azure에서 다운로드합니다.

  2. Windows 시스템에서 ZIP 파일의 다음 컨텐츠를 추출합니다.
    스크립트/파일 설명
    CreateNsxRoles.ps1 NSX Cloud 서비스 사용자와 CSMPCG에 대한 관리 ID 역할을 생성하는 PowerShell 스크립트입니다. 이 스크립트에는 다음 매개 변수가 사용됩니다.
    • -subscriptionId <the Transit_VNet's_Azure_subscription_ID>
    • (선택 사항) -servicePrincipalName <Service_Principal_Name>
    • (선택 사항) -useOneServicePrincipal
    AddServicePrincipal.ps1 구독을 여러 개 추가하고 각 구독에 서로 다른 서비스 사용자를 할당하려는 경우에 필요한 선택적 스크립트입니다. 아래의 단계에서 시나리오 3을 참조하십시오. 이 스크립트에는 다음 매개 변수가 사용됩니다.
    • -computeSubscriptionId <the_Compute_VNet's_Azure_subscription_ID>
    • -transitSubscriptionId <the Transit_VNet's_Azure_Subscription_ID>
    • -csmRoleName <CSM_Role_Name>
    • -servicePrincipalName <Service_Principal_Name>
    nsx_csm_role.json CSM 역할 이름 및 사용 권한에 맞는 JSON 템플릿입니다. 이 파일은 PowerShell 스크립트에 대한 입력으로 필요하며, 스크립트와 동일한 폴더에 있어야 합니다.
    nsx_pcg_role.json PCG 역할 이름 및 사용 권한에 맞는 JSON 템플릿입니다. 이 파일은 PowerShell 스크립트에 대한 입력으로 필요하며, 스크립트와 동일한 폴더에 있어야 합니다.
    참고: 기본 PCG(게이트웨이) 역할 이름은 nsx-pcg-role입니다. CSM에서 구독을 추가할 때 이 값을 제공해야 합니다.
  3. 시나리오 1: NSX Cloud에서 하나의 Microsoft Azure 구독 사용
    1. PowerShell 인스턴스에서 Microsoft Azure 스크립트 및 JSON 파일을 다운로드한 디렉토리로 이동합니다.
    2. 다음과 같이 -SubscriptionId 매개 변수를 지정하여 CreateNsxRoles.ps1 스크립트를 실행합니다.
      .\CreateNsxRoles.ps1 -subscriptionId <the_single_Azure_subscription_ID> 
      참고: 기본 서비스 사용자 이름인 nsx-service-admin을 재정의하려면 - servicePrincipalName 매개 변수도 함께 사용할 수 있습니다. 서비스 사용자 이름은 Microsoft Azure Active Directory에서 고유해야 합니다.
  4. 시나리오 2: 동일한 Microsoft Azure Directory에 있는 여러 개의 Microsoft Azure 구독을 NSX Cloud에서 사용하되, 모든 구독에 대해 하나의 NSX Cloud 서비스 사용자 사용
    1. PowerShell 인스턴스에서 Microsoft Azure 스크립트 및 JSON 파일을 다운로드한 디렉토리로 이동합니다.
    2. 각 JSON 파일을 편집하여 다음과 같이 "AssignableScopes"라는 섹션 제목 아래에 기타 구독 ID의 목록을 추가합니다.
      "AssignableScopes": [
      
      "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
      
      "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-ffffffffffff",
      
      "/subscriptions/aaaaaaaa-bbbb-cccc-dddd-000000000000"
      참고: 이 예제에 나와 있는 형식( "/subscriptions/<Subscription_ID>")을 사용하여 구독 ID를 추가해야 합니다.
    3. -subscriptionID -useOneServicePrincipal 매개 변수를 사용하여 이름이 CreateNsxRoles.ps1인 스크립트를 실행합니다.
      .\CreateNsxRoles.ps1 -subscriptionId <the_Transit_VNet's_Azure_subscription_ID> -useOneServicePrincipal 
      참고: 기본 이름인 nsx-service-admin을 사용하려는 경우에는 여기에서 서비스 사용자 이름을 생략합니다. 이 서비스 사용자 이름이 Microsoft Azure Active Directory에 이미 존재하는 경우, 서비스 사용자 이름 없이 이 스크립트를 실행하면 해당 서비스 사용자가 업데이트됩니다.
  5. 시나리오 3: 동일한 Microsoft Azure Directory에 있는 여러 개의 Microsoft Azure 구독을 NSX Cloud에서 사용하되, 구독마다 서로 다른 NSX Cloud 서비스 사용자 사용
    1. PowerShell 인스턴스에서 Microsoft Azure 스크립트 및 JSON 파일을 다운로드한 디렉토리로 이동합니다.
    2. 시나리오 2의 b 단계와 c 단계를 수행하여 각 JSON 파일의 AssignableScopes 섹션에 여러 구독을 추가합니다.
    3. -subscriptionID 매개 변수를 사용하여 이름이 CreateNsxRoles.ps1인 스크립트를 실행합니다.
      .\CreateNsxRoles.ps1 -subscriptionId <One of the subscription_IDs> 
      참고: 기본 이름인 nsx-service-admin을 사용하려는 경우에는 여기에서 서비스 사용자 이름을 생략합니다. 이 서비스 사용자 이름이 Microsoft Azure Active Directory에 존재하는 경우, 서비스 사용자 이름 없이 이 스크립트를 실행하면 해당 서비스 사용자가 업데이트됩니다.
    4. 다음 매개 변수를 사용하여 이름이 AddServicePrincipal.ps1인 스크립트를 실행합니다.
      매개 변수
      -computeSubscriptionId 계산 VNet의 Azure 구독 ID
      -transitSubscriptionId 전송 VNet의 Azure 구독 ID
      -csmRoleName nsx_csm_role.JSON 파일에서 이 값을 가져옵니다.
      -servicePrincipalName 새 서비스 사용자 이름
      ./AddServicePrincipal.ps1 -computeSubscriptionId <the_Compute_VNet's_Azure_subscription_ID>
       -transitSubscriptionId <the_Tranist_VNet's_Azure_Subscription_ID> 
      -csmRoleName <CSM_Role_Name>
      -servicePrincipalName <new_Service_Principal_Name>”
  6. PowerShell 스크립트를 실행한 디렉토리에서 파일을 찾습니다. 이름은 NSXCloud_ServicePrincipal_<your_subscription_ID>_<NSX_Cloud_Service_Principal_name>과 같습니다. 이 파일에는 CSM에서 Microsoft Azure 구독을 추가하는 데 필요한 정보가 포함되어 있습니다.
    • 클라이언트 ID
    • 클라이언트 키
    • 테넌트 ID
    • 구독 ID

결과

다음과 같은 항목이 생성됩니다.

  • NSX Cloud에 대한 Azure AD 애플리케이션

  • NSX Cloud 애플리케이션용 Azure Resource Manager 서비스 사용자

  • 서비스 사용자 계정에 연결된 CSM에 대한 역할

  • PCG가 공용 클라우드 인벤토리에서 작동할 수 있게 해 주는 PCG에 대한 역할.

  • 이름이 NSXCloud_ServicePrincipal_<your_subscription_ID>_<NSX_Cloud_Service_Principal_name>인 파일(PowerShell 스크립트를 실행한 디렉토리에 생성됨). 이 파일에는 CSM에서 Microsoft Azure 구독을 추가하는 데 필요한 정보가 포함되어 있습니다.
참고: 역할을 생성한 후 역할에서 사용할 수 있는 사용 권한의 목록을 보려면 CSMPCG 역할을 생성하는 데 사용된 JSON 파일을 참조하십시오.

다음에 수행할 작업

CSM에서 Microsoft Azure 구독 추가
참고: NSX Cloud에서 여러 구독을 사용하도록 설정할 경우에는 개별 구독 각각을 CSM에 개별적으로 추가해야 합니다. 예를 들어, 구독이 총 5개라면 나머지 값은 모두 동일하고 구독 ID만 다른 Microsoft Azure 계정 5개를 CSM에 추가해야 합니다.