Share via


사용자 할당 관리 ID를 사용하여 Service Fabric 애플리케이션 배포

관리 ID를 사용하여 Service Fabric 애플리케이션을 배포하려면 일반적으로 Azure Resource Manager 템플릿을 사용하여 Azure Resource Manager를 통해 애플리케이션을 배포해야 합니다. Azure Resource Manager를 통해 Service Fabric 애플리케이션을 배포하는 방법에 대한 자세한 내용은 Azure Resource Manager 리소스로 애플리케이션 및 서비스 관리를 참조하세요.

참고 항목

Azure 리소스로 배포되지 않은 애플리케이션은 관리 ID를 가질 수 없습니다.

관리 ID를 사용한 Service Fabric 애플리케이션 배포는 API 버전 "2019-06-01-preview"에서 지원됩니다. 애플리케이션 유형, 애플리케이션 유형 버전 및 서비스 리소스에 대해 동일한 API 버전을 사용할 수도 있습니다.

사용자가 할당한 ID

사용자 할당 ID로 애플리케이션을 사용하도록 설정하려면 먼저 userAssigned 형식과 참조된 사용자 할당 ID를 사용하여 애플리케이션 리소스에 identity 속성을 추가합니다. 그런 다음 application 리소스의 properties 섹션 내에 managedIdentities 섹션을 추가합니다. 여기에는 사용자가 할당한 각 ID의 principalID 매핑에 대한 식별 이름 목록이 포함됩니다. 사용자 할당 ID에 대한 자세한 내용은 사용자 할당 관리 ID 만들기, 나열 또는 삭제를 참조하세요.

애플리케이션 템플릿

사용자 할당 ID를 사용하여 애플리케이션을 사용하도록 설정하려면 먼저 애플리케이션 리소스에 userAssigned 형식과 참조된 사용자 할당 ID를 사용하여 identity 속성을 추가하고 properties 섹션 내에 managedIdentities 개체를 추가합니다. 여기에는 사용자가 할당한 각 ID의 principalId 매핑에 대한 식별 이름 목록이 포함되어 있습니다.

{
  "apiVersion": "2019-06-01-preview",
  "type": "Microsoft.ServiceFabric/clusters/applications",
  "name": "[concat(parameters('clusterName'), '/', parameters('applicationName'))]",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.ServiceFabric/clusters/', parameters('clusterName'), '/applicationTypes/', parameters('applicationTypeName'), '/versions/', parameters('applicationTypeVersion'))]",
    "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]"
  ],
  "identity": {
    "type" : "userAssigned",
    "userAssignedIdentities": {
        "[resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName'))]": {}
    }
  },
  "properties": {
    "typeName": "[parameters('applicationTypeName')]",
    "typeVersion": "[parameters('applicationTypeVersion')]",
    "parameters": {
    },
    "managedIdentities": [
      {
        "name" : "[parameters('userAssignedIdentityName')]",
        "principalId" : "[reference(resourceId('Microsoft.ManagedIdentity/userAssignedIdentities/', parameters('userAssignedIdentityName')), '2018-11-30').principalId]"
      }
    ]
  }
}

위의 예에서 사용자 할당 ID의 리소스 이름은 애플리케이션의 관리 ID의 식별 이름으로 사용됩니다. 다음 예에서는 실제 식별 이름이 "AdminUser"라고 가정합니다.

애플리케이션 패키지

  1. Azure Resource Manager 템플릿의 managedIdentities 섹션에 정의된 각 ID에 대해 Principals 섹션 아래의 애플리케이션 매니페스트에 <ManagedIdentity> 태그를 추가합니다. Name 특성은 managedIdentities 섹션에 정의된 name 속성과 일치해야 합니다.

    ApplicationManifest.xml

      <Principals>
        <ManagedIdentities>
          <ManagedIdentity Name="AdminUser" />
        </ManagedIdentities>
      </Principals>
    
  2. ServiceManifestImport 섹션에서 관리 ID를 사용하는 서비스에 대한 IdentityBindingPolicy를 추가합니다. 이 정책은 AdminUser ID를 나중에 서비스 매니페스트에 추가해야 하는 서비스별 ID 이름에 매핑합니다.

    ApplicationManifest.xml

      <ServiceManifestImport>
        <Policies>
          <IdentityBindingPolicy ServiceIdentityRef="WebAdmin" ApplicationIdentityRef="AdminUser" />
        </Policies>
      </ServiceManifestImport>
    
  3. 서비스 매니페스트를 업데이트하여 애플리케이션 매니페스트의 IdentityBindingPolicy에서 ServiceIdentityRef와 일치하는 이름으로 Resources 섹션 내에 ManagedIdentity를 추가합니다.

    ServiceManifest.xml

      <Resources>
        ...
        <ManagedIdentities DefaultIdentity="WebAdmin">
          <ManagedIdentity Name="WebAdmin" />
        </ManagedIdentities>
      </Resources>
    

다음 단계