Azure Resource Manager 개요Azure Resource Manager overview

응용 프로그램에 대한 인프라는 일반적으로 가상 컴퓨터, 저장소 계정 및 가상 네트워크 또는 웹앱, 데이터베이스, 데이터베이스 서버 및 타사 서비스 등의 많은 구성 요소를 만듭니다.The infrastructure for your application is typically made up of many components – maybe a virtual machine, storage account, and virtual network, or a web app, database, database server, and 3rd party services. 이러한 구성 요소를 별도 엔터티로 표시하지 않으면, 대신 관련된 단일 엔터티의 상호 종속적으로 부분으로 표시됩니다.You do not see these components as separate entities, instead you see them as related and interdependent parts of a single entity. 그룹으로 배포, 관리 및 모니터링하려고 합니다.You want to deploy, manage, and monitor them as a group. Azure 리소스 관리자를 사용하면 솔루션에서 리소스를 그룹으로 사용할 수 있습니다.Azure Resource Manager enables you to work with the resources in your solution as a group. 조정된 단일 작업에서 솔루션에 대한 모든 리소스를 배포, 업데이트 또는 삭제할 수 있습니다.You can deploy, update, or delete all the resources for your solution in a single, coordinated operation. 배포용 템플릿을 사용하고 이 템플릿을 테스트, 스테이징 및 프로덕션과 같은 여러 환경에서 사용할 수 있습니다.You use a template for deployment and that template can work for different environments such as testing, staging, and production. 리소스 관리자는 보안, 감사 및 태그 기능을 제공하여 배포 후에 리소스를 관리할 수 있습니다.Resource Manager provides security, auditing, and tagging features to help you manage your resources after deployment.

용어Terminology

Azure Resource Manager가 처음이라면 익숙하지 않은 용어가 있을 수 있습니다.If you are new to Azure Resource Manager, there are some terms you might not be familiar with.

  • 리소스 - Azure를 통해 사용할 수 있는 관리 가능한 항목입니다.resource - A manageable item that is available through Azure. 몇 가지 일반적인 리소스는 가상 컴퓨터, 저장소 계정, 웹앱, 데이터베이스 및 가상 네트워크이지만 더 많은 종류가 있습니다.Some common resources are a virtual machine, storage account, web app, database, and virtual network, but there are many more.
  • 리소스 그룹 - Azure 솔루션에 관련된 리소스를 보유하는 컨테이너입니다.resource group - A container that holds related resources for an Azure solution. 리소스 그룹에는 솔루션에 대한 모든 리소스 또는 그룹으로 관리하려는 해당 리소스만 포함될 수 있습니다.The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. 사용자의 조직에 가장 적합한 내용에 따라 리소스 그룹에 리소스를 어떻게 할당할지 결정합니다.You decide how you want to allocate resources to resource groups based on what makes the most sense for your organization. 리소스 그룹을 참조하세요.See Resource groups.
  • 리소스 공급자 - Resource Manager를 통해 배포하고 관리할 수 있는 리소스를 제공하는 서비스입니다.resource provider - A service that supplies the resources you can deploy and manage through Resource Manager. 각 리소스 공급자는 배포된 리소스로 작업하기 위한 작업을 제공합니다.Each resource provider offers operations for working with the resources that are deployed. 몇 가지 일반 리소스 공급자는 가상 컴퓨터 리소스를 제공하는 Microsoft.Compute, 저장소 계정 리소스를 제공하는 Microsoft.Storage 및 웹앱에 관련된 리소스를 제공하는 Microsoft.Web입니다.Some common resource providers are Microsoft.Compute, which supplies the virtual machine resource, Microsoft.Storage, which supplies the storage account resource, and Microsoft.Web, which supplies resources related to web apps. 리소스 공급자를 참조하세요.See Resource providers.
  • Resource Manager 템플릿 - 리소스 그룹에 배포한 하나 이상의 리소스를 정의하는 JSON(JavaScript Object Notation) 파일입니다.Resource Manager template - A JavaScript Object Notation (JSON) file that defines one or more resources to deploy to a resource group. 또한 배포된 리소스 간의 종속성을 정의합니다.It also defines the dependencies between the deployed resources. 템플릿은 리소스를 일관되고 반복적으로 배포하는 데 사용할 수 있습니다.The template can be used to deploy the resources consistently and repeatedly. 템플릿 배포를 참조하세요.See Template deployment.
  • 선언적 구문 - 항목을 만드는 프로그래밍 명령의 시퀀스를 작성하지 않고도 "만들려는 대상은 다음과 같습니다"라고 선언하는 구문입니다.declarative syntax - Syntax that lets you state "Here is what I intend to create" without having to write the sequence of programming commands to create it. Resource Manager 템플릿은 선언적 구문의 예입니다.The Resource Manager template is an example of declarative syntax. 파일에서 Azure에 배포하는 인프라에 대한 속성을 정의합니다.In the file, you define the properties for the infrastructure to deploy to Azure.

리소스 관리자를 사용할 경우의 이점The benefits of using Resource Manager

리소스 관리자는 다음과 같은 여러 이점이 있습니다.Resource Manager provides several benefits:

  • 이 리소스를 개별적으로 처리하는 것이 아니라 솔루션에 대한 모든 리소스를 그룹으로 배포, 관리 및 모니터링할 수 있습니다.You can deploy, manage, and monitor all the resources for your solution as a group, rather than handling these resources individually.
  • 개발 수명 주기 내내 솔루션을 반복적으로 배포하며 안심하고 일관된 상태로 리소스를 배포할 수 있습니다.You can repeatedly deploy your solution throughout the development lifecycle and have confidence your resources are deployed in a consistent state.
  • 스크립트가 아닌 선언적 템플릿을 통해 인프라를 관리할 수 있습니다.You can manage your infrastructure through declarative templates rather than scripts.
  • 올바른 순서로 배포되므로 리소스 간의 종속성을 정의할 수 있습니다.You can define the dependencies between resources so they are deployed in the correct order.
  • 역할 기반 Access Control(RBAC)가 관리 플랫폼으로 통합되기 때문에 리소스 그룹의 모든 서비스에 대해 Access Control를 적용할 수 있습니다.You can apply access control to all services in your resource group because Role-Based Access Control (RBAC) is natively integrated into the management platform.
  • 리소스에 태그를 적용하여 구독에서 모든 리소스를 논리적으로 구성할 수 있습니다.You can apply tags to resources to logically organize all the resources in your subscription.
  • 같은 태그를 공유하는 리소스 그룹에 대한 비용을 확인하여 조직의 청구를 명확히 할 수 있습니다.You can clarify your organization's billing by viewing costs for a group of resources sharing the same tag.

리소스 관리자는 솔루션을 배포 및 관리하는 새로운 방식을 제공합니다.Resource Manager provides a new way to deploy and manage your solutions. 이전의 배포 모델을 사용한 경우 변경 사항을 알아보려면 리소스 관리자 배포 및 클래식 배포 이해를 참조하세요.If you used the earlier deployment model and want to learn about the changes, see Understanding Resource Manager deployment and classic deployment.

일관적인 관리 계층Consistent management layer

리소스 관리자는 Azure PowerShell, Azure CLI, Azure 포털, REST API 및 개발 도구를 통해 수행하는 작업에 대한 일관적인 관리 계층을 제공합니다.Resource Manager provides a consistent management layer for the tasks you perform through Azure PowerShell, Azure CLI, Azure portal, REST API, and development tools. 모든 도구는 작업의 공통 집합을 사용합니다.All the tools use a common set of operations. 가장 적합한 도구를 사용하며 혼동 없이 서로 교환해서 사용할 수 있습니다.You use the tools that work best for you, and can use them interchangeably without confusion.

다음 그림에서는 모든 도구가 동일한 Azure Resource Manager API와 상호 작용하는 방법을 보여 줍니다.The following image shows how all the tools interact with the same Azure Resource Manager API. API는 요청을 인증하고 권한을 부여하는 리소스 관리자 서비스에 요청을 전달합니다.The API passes requests to the Resource Manager service, which authenticates and authorizes the requests. 그런 다음 리소스 관리자는 적절한 리소스 공급자에게 요청을 라우팅합니다.Resource Manager then routes the requests to the appropriate resource providers.

리소스 관리자 요청 모델

인도Guidance

다음 제안으로 솔루션으로 작업할 때 Resource Manager를 완벽하게 활용할 수 있습니다.The following suggestions help you take full advantage of Resource Manager when working with your solutions.

  1. 명령적 명령을 사용하는 대신 리소스 관리자 템플릿의 선언적 구문을 통해 인프라를 정의하고 배포합니다.Define and deploy your infrastructure through the declarative syntax in Resource Manager templates, rather than through imperative commands.
  2. 템플릿에서 모든 배포 및 구성 단계를 정의합니다.Define all deployment and configuration steps in the template. 솔루션을 설정하기 위해 수동 단계가 없어야 합니다.You should have no manual steps for setting up your solution.
  3. 명령적 명령을 실행하여 앱 또는 컴퓨터를 시작하거나 중지하는 등 리소스를 관리합니다.Run imperative commands to manage your resources, such as to start or stop an app or machine.
  4. 리소스 그룹에서 동일한 수명 주기로 리소스를 정렬합니다.Arrange resources with the same lifecycle in a resource group. 리소스의 모든 다른 구성에 태그를 사용합니다.Use tags for all other organizing of resources.

템플릿에 대한 권장 사항은 Azure Resource Manager 템플릿 생성 모범 사례를 참조하세요.For recommendations about templates, see Best practices for creating Azure Resource Manager templates.

엔터프라이즈에서 리소스 관리자를 사용하여 구독을 효과적으로 관리할 수 있는 방법에 대한 지침은 Azure 엔터프라이즈 스캐폴드 - 규범적 구독 거버넌스를 참조하세요.For guidance on how enterprises can use Resource Manager to effectively manage subscriptions, see Azure enterprise scaffold - prescriptive subscription governance.

리소스 그룹Resource groups

리소스 그룹을 정의할 때 고려해야 할 몇 가지 중요한 요인이 있습니다.There are some important factors to consider when defining your resource group:

  1. 그룹에서 모든 리소스는 동일한 수명 주기를 공유해야 합니다.All the resources in your group should share the same lifecycle. 리소스를 함께 배포, 업데이트, 삭제합니다.You deploy, update, and delete them together. 데이터베이스 서버와 같은 하나의 리소스에 다양한 배포 주기가 존재하는 경우 다른 리소스 그룹에 있어야 합니다.If one resource, such as a database server, needs to exist on a different deployment cycle it should be in another resource group.
  2. 각 리소스는 하나의 리소스 그룹에만 있을 수 있습니다.Each resource can only exist in one resource group.
  3. 언제든지 리소스 그룹에 리소스를 추가하거나 제거할 수 있습니다.You can add or remove a resource to a resource group at any time.
  4. 특정 리소스 그룹에서 다른 그룹에 리소스를 이동할 수 있습니다.You can move a resource from one resource group to another group. 자세한 내용을 보려면 새 리소스 그룹 또는 구독으로 리소스 이동을 참조하세요.For more information, see Move resources to new resource group or subscription.
  5. 리소스 그룹을 다른 지역에 상주하는 리소스를 포함할 수 있습니다.A resource group can contain resources that reside in different regions.
  6. 관리 작업에 대한 Access Control 범위를 지정하는 데 리소스 그룹을 사용할 수 있습니다.A resource group can be used to scope access control for administrative actions.
  7. 리소스는 다른 리소스 그룹의 리소스와 상호 작용할 수 있습니다.A resource can interact with resources in other resource groups. 이 상호 작용은 두 개의 리소스가 관련되어 있지만 동일한 수명 주기를 공유하지 않는 경우에 일반적입니다(예: 데이터베이스에 연결된 웹앱).This interaction is common when the two resources are related but do not share the same lifecycle (for example, web apps connecting to a database).

리소스 그룹을 만들 때 해당 리소스 그룹의 위치를 제공해야 합니다.When creating a resource group, you need to provide a location for that resource group. 리소스 그룹에 위치가 필요한 이유는 무엇인지 궁금할 수 있습니다.You may be wondering, "Why does a resource group need a location? 리소스의 위치가 리소스 그룹과 다른 경우 리소스 그룹 위치가 중요한 이유는 무엇인가요?And, if the resources can have different locations than the resource group, why does the resource group location matter at all?" 리소스 그룹은 리소스에 대한 메타데이터를 저장합니다.The resource group stores metadata about the resources. 따라서 리소스 그룹의 위치를 지정하면 메타데이터가 저장된 위치를 지정하게 됩니다.Therefore, when you specify a location for the resource group, you are specifying where that metadata is stored. 규정 준수 때문에 특정 지역에 데이터가 저장되는지 확인해야 합니다.For compliance reasons, you may need to ensure that your data is stored in a particular region.

리소스 공급자Resource providers

각 리소스 공급자는 Azure 서비스를 사용하는 일련의 리소스 및 작업을 제공합니다.Each resource provider offers a set of resources and operations for working with an Azure service. 예를 들어 키와 암호를 저장하려는 경우 Microsoft.KeyVault 리소스 공급자로 작업합니다.For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider. 이 리소스 공급자는 키 자격 증명 모음을 만드는 데 자격 증명 모음이라는 리소스 유형을 제공합니다.This resource provider offers a resource type called vaults for creating the key vault.

리소스 종류의 이름은 {resource-provider}/{resource-type} 양식입니다.The name of a resource type is in the format: {resource-provider}/{resource-type}. 예를 들어 키 자격 증명 모음 형식은 Microsoft.KeyVault/vaults입니다.For example, the key vault type is Microsoft.KeyVault/vaults.

리소스 배포를 시작하기 전에 사용 가능한 리소스 공급자를 이해해야 합니다.Before getting started with deploying your resources, you should gain an understanding of the available resource providers. 리소스 공급자 및 리소스의 이름을 알고 있으면 Azure에 배포하려는 리소스를 정의할 수 있습니다.Knowing the names of resource providers and resources helps you define resources you want to deploy to Azure. 또한 각 리소스 종류에 대한 유효한 위치와 API 버전을 알아야 합니다.Also, you need to know the valid locations and API versions for each resource type. 자세한 내용은 리소스 공급자 및 형식을 참조하세요.For more information, see Resource providers and types.

템플릿 배포Template deployment

Resource Manager로 Azure 솔루션의 인프라 및 구성을 정의하는 템플릿을 JSON 형식으로 만들 수 있습니다.With Resource Manager, you can create a template (in JSON format) that defines the infrastructure and configuration of your Azure solution. 템플릿을 사용하여 수명 주기 내내 솔루션을 반복적으로 배포하고 안심하고 일관된 상태로 리소스를 배포할 수 있습니다.By using a template, you can repeatedly deploy your solution throughout its lifecycle and have confidence your resources are deployed in a consistent state. 포털에서 솔루션을 만들 때 자동으로 솔루션에 배포 템플릿을 포함합니다.When you create a solution from the portal, the solution automatically includes a deployment template. 솔루션용 템플릿으로 시작하고 특정 요구 사항에 맞게 사용자 지정할 수 있기 때문에 서식 파일을 처음부터 새로 만들 필요가 없습니다.You do not have to create your template from scratch because you can start with the template for your solution and customize it to meet your specific needs. 리소스 그룹의 현재 상태를 내보내거나 특정 배포에 사용된 템플릿을 검토하여 기존 리소스 그룹에 대한 템플릿을 검색할 수 있습니다.You can retrieve a template for an existing resource group by either exporting the current state of the resource group, or viewing the template used for a particular deployment. 내보낸 템플릿을 살펴보면 템플릿 구문에 대해 알아보는 데 도움이 됩니다.Viewing the exported template is a helpful way to learn about the template syntax.

템플릿의 형식 및 템플릿을 생성하는 방법에 대해 알아보려면 첫 번째 Azure Resource Manager 템플릿 만들기를 참조하세요.To learn about the format of the template and how you construct it, see Create your first Azure Resource Manager template. 리소스 유형의 JSON 구문을 보려면 Azure Resource Manager 템플릿에서 리소스 정의를 참조하세요.To view the JSON syntax for resources types, see Define resources in Azure Resource Manager templates.

리소스 관리자는 다른 요청과 같이 템플릿을 처리합니다(일관적인 관리 계층에 대한 이미지 참조).Resource Manager processes the template like any other request (see the image for Consistent management layer). 템플릿을 구문 분석하고 해당 구문을 적절한 리소스 공급자에 대한 REST API 작업으로 변환합니다.It parses the template and converts its syntax into REST API operations for the appropriate resource providers. 예를 들어 리소스 관리자가 다음 리소스 정의로 템플릿을 받는 경우:For example, when Resource Manager receives a template with the following resource definition:

"resources": [
  {
    "apiVersion": "2016-01-01",
    "type": "Microsoft.Storage/storageAccounts",
    "name": "mystorageaccount",
    "location": "westus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {
    }
  }
]

Microsoft.Storage 리소스 공급자에게 전송되는 다음 REST API 작업으로 정의를 변환합니다.It converts the definition to the following REST API operation, which is sent to the Microsoft.Storage resource provider:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2016-01-01
REQUEST BODY
{
  "location": "westus",
  "properties": {
  }
  "sku": {
    "name": "Standard_LRS"
  },   
  "kind": "Storage"
}

템플릿 및 리소스 그룹을 정의하는 방법은 사용자 및 솔루션을 관리하려는 방법에 전적으로 달려 있습니다.How you define templates and resource groups is entirely up to you and how you want to manage your solution. 예를 들어 단일 템플릿을 통해 3계층 응용 프로그램을 단일 리소스 그룹에 배포할 수 있습니다.For example, you can deploy your three tier application through a single template to a single resource group.

3계층 템플릿

그러나 단일 템플릿에서 전체 인프라를 정의할 필요가 없습니다.But, you do not have to define your entire infrastructure in a single template. 대부분 배포 요구 사항을 대상, 목적에 특정 템플릿 집합으로 나누는 것이 좋습니다.Often, it makes sense to divide your deployment requirements into a set of targeted, purpose-specific templates. 서로 다른 솔루션에 이러한 템플릿을 쉽게 다시 사용할 수 있습니다.You can easily reuse these templates for different solutions. 특정 솔루션을 배포하려면 모든 필수 템플릿에 연결하는 마스터 템플릿을 만듭니다.To deploy a particular solution, you create a master template that links all the required templates. 다음 이미지는 세 개의 중첩된 템플릿을 포함하는 부모 템플릿을 통해 3계층 솔루션을 배포하는 방법을 보여 줍니다.The following image shows how to deploy a three tier solution through a parent template that includes three nested templates.

중첩된 계층 템플릿

계층이 별도 수명 주기를 갖도록 계획하는 경우 3계층을 별도 리소스 그룹에 배포할 수 있습니다.If you envision your tiers having separate lifecycles, you can deploy your three tiers to separate resource groups. 리소스는 다른 리소스 그룹의 리소스에 계속해서 연결될 수 있습니다.Notice the resources can still be linked to resources in other resource groups.

계층 템플릿

템플릿 설계에 대한 더 많은 제안은 Azure Resource Manager 템플릿 설계의 패턴을 참조하세요.For more suggestions about designing your templates, see Patterns for designing Azure Resource Manager templates. 중첩된 템플릿에 대한 자세한 내용은 Azure Resource Manager에서 연결된 템플릿 사용을 참조하세요.For information about nested templates, see Using linked templates with Azure Resource Manager.

리소스가 올바른 순서로 생성되도록 Azure Resource Manager가 종속성을 분석합니다.Azure Resource Manager analyzes dependencies to ensure resources are created in the correct order. 한 리소스가 다른 리소스(예: 디스크에 대한 저장소 계정을 필요로 하는 가상 컴퓨터)의 값에 의존하는 경우 종속성을 설정합니다.If one resource relies on a value from another resource (such as a virtual machine needing a storage account for disks), you set a dependency. 자세한 정보는 Azure 리소스 관리자 템플릿에서 종속성 정의를 참조하세요.For more information, see Defining dependencies in Azure Resource Manager templates.

또한 인프라의 업데이트에 대한 템플릿을 사용할 수 있습니다.You can also use the template for updates to the infrastructure. 예를 들어 솔루션에 리소스를 추가할 수 있으며 이미 배포된 리소스에 대한 구성 규칙을 추가할 수 있습니다.For example, you can add a resource to your solution and add configuration rules for the resources that are already deployed. 템플릿에서 리소스 만들기를 지정하지만 해당 리소스가 이미 존재하는 경우 Azure Resource Manager는 새 자산을 만드는 대신 업데이트를 수행합니다.If the template specifies creating a resource but that resource already exists, Azure Resource Manager performs an update instead of creating a new asset. Azure 리소스 관리자는 새 것과 동일한 상태로 기존 자산을 업데이트합니다.Azure Resource Manager updates the existing asset to the same state as it would be as new.

리소스 관리자는 설치에 포함되지 않은 특정 소프트웨어를 설치하는 등의 추가 작업을 할 때 시나리오에 대한 확장을 제공합니다.Resource Manager provides extensions for scenarios when you need additional operations such as installing particular software that is not included in the setup. DSC, Chef 또는 Puppet와 같은 구성 관리 서비스를 이미 사용 중인 경우 확장을 사용하여 해당 서비스로 작업을 계속할 수 있습니다.If you are already using a configuration management service, like DSC, Chef or Puppet, you can continue working with that service by using extensions. 가상 컴퓨터 확장에 대한 자세한 내용은 가상 컴퓨터 확장 및 기능 정보를 참조하세요.For information about virtual machine extensions, see About virtual machine extensions and features.

마지막으로 템플릿은 앱에 대한 소스 코드의 일부가 됩니다.Finally, the template becomes part of the source code for your app. 소스 코드 리포지토리를 확인하고 앱이 발전하면 업데이트할 수 있습니다.You can check it in to your source code repository and update it as your app evolves. Visual Studio를 통해 템플릿을 편집할 수 있습니다.You can edit the template through Visual Studio.

템플릿을 정의하면 Azure에 리소스를 배포할 준비가 되었습니다.After defining your template, you are ready to deploy the resources to Azure. 리소스를 배포하는 명령은 다음을 참조하세요.For the commands to deploy the resources, see:

태그들Tags

리소스 관리자는 관리 또는 청구에 대한 요구 사항에 따라 리소스를 분류할 수 있는 태그 지정 기능을 제공합니다.Resource Manager provides a tagging feature that enables you to categorize resources according to your requirements for managing or billing. 리소스 그룹 및 리소스의 복잡한 컬렉션이 있고 해당 자산을 사용자에게 가장 적합한 방식으로 시각화할 필요가 있을 때 태그를 사용합니다.Use tags when you have a complex collection of resource groups and resources, and need to visualize those assets in the way that makes the most sense to you. 예를 들어 조직에서 비슷한 역할을 제공하거나 동일한 부서에 속한 리소스를 태그로 지정할 수 있습니다.For example, you could tag resources that serve a similar role in your organization or belong to the same department. 조직의 사용자는 태그 없이 나중에 식별하고 관리하기 어려울 수 있는 여러 리소스를 만들 수 있습니다.Without tags, users in your organization can create multiple resources that may be difficult to later identify and manage. 예를 들어 특정 프로젝트에 대한 모든 리소스를 삭제하려고 할 수 있습니다.For example, you may wish to delete all the resources for a particular project. 해당 리소스가 프로젝트에 대해 태그가 지정되지 않은 경우 수동으로 찾아야 합니다.If those resources are not tagged for the project, you have to manually find them. 태그를 지정하는 작업은 구독에서 불필요한 비용을 줄일 수 있는 좋은 방법입니다.Tagging can be an important way for you to reduce unnecessary costs in your subscription.

리소스는 태그를 공유하는 동일한 리소스 그룹에 있을 필요가 없습니다.Resources do not need to reside in the same resource group to share a tag. 조직의 모든 사용자가 실수로 약간 다른 태그 (예: "dept" 대신 "department")를 적용하지 않고 일반 태그를 사용하는지 확인하려면 사용자 고유의 태그 분류를 만들 수 있습니다.You can create your own tag taxonomy to ensure that all users in your organization use common tags rather than users inadvertently applying slightly different tags (such as "dept" instead of "department").

다음 예제에서는 가상 컴퓨터에 적용된 태그를 보여 줍니다.The following example shows a tag applied to a virtual machine.

"resources": [    
  {
    "type": "Microsoft.Compute/virtualMachines",
    "apiVersion": "2015-06-15",
    "name": "SimpleWindowsVM",
    "location": "[resourceGroup().location]",
    "tags": {
        "costCenter": "Finance"
    },
    ...
  }
]

태그 값을 사용하는 모든 리소스를 검색하려면 다음 PowerShell cmdlet을 사용합니다.To retrieve all the resources with a tag value, use the following PowerShell cmdlet:

Find-AzureRmResource -TagName costCenter -TagValue Finance

또는 다음 Azure CLI 2.0 명령을 사용합니다.Or, the following Azure CLI 2.0 command:

az resource list --tag costCenter=Finance

Azure Portal을 통해 태그가 지정된 리소스를 볼 수도 있습니다.You can also view tagged resources through the Azure portal.

구독에 대한 사용 현황 보고서는 태그 이름 및 값을 포함하며 이를 통해 태그별 비용을 알아낼 수 있습니다.The usage report for your subscription includes tag names and values, which enables you to break out costs by tags. 태그에 대한 자세한 내용은 태그를 사용하여 Azure 리소스 구성을 참조하십시오.For more information about tags, see Using tags to organize your Azure resources.

Access ControlAccess control

리소스 관리자를 사용하면 조직에 대한 특정 작업에 액세스하는 사람을 제어할 수 있습니다.Resource Manager enables you to control who has access to specific actions for your organization. 고유하게 관리 플랫폼으로 RBAC(역할 기반 Access Control)를 통합하고 해당 Access Control를 리소스 그룹에서 모든 서비스에 적용합니다.It natively integrates role-based access control (RBAC) into the management platform and applies that access control to all services in your resource group.

역할 기반 Access Control로 작업하는 경우를 이해하기 위한 두 가지 주요 개념이 있습니다.There are two main concepts to understand when working with role-based access control:

  • 역할 정의 - 사용 권한 집합을 설명하고 여러 할당에 사용할 수 있습니다.Role definitions - describe a set of permissions and can be used in many assignments.
  • 역할 할당 - 특정 범위(구독, 리소스 그룹 또는 리소스)에 대한 ID(사용자 또는 그룹)로 정의를 연결합니다.Role assignments - associate a definition with an identity (user or group) for a particular scope (subscription, resource group, or resource). 할당은 더 낮은 범위로 상속됩니다.The assignment is inherited by lower scopes.

미리 정의된 플랫폼 및 리소스 특정 역할에 사용자를 추가할 수 있습니다.You can add users to pre-defined platform and resource-specific roles. 예를 들어 사용자가 리소스를 변경하지 않고 보도록 허용하는 읽기 권한자를 호출하는 미리 정의된 역할의 장점을 활용할 수 있습니다.For example, you can take advantage of the pre-defined role called Reader that permits users to view resources but not change them. 이 유형의 액세스를 필요로 하는 조직의 사용자를 읽기 권한자 역할에 추가하고 구독, 리소스 그룹 또는 리소스에 역할을 적용합니다.You add users in your organization that need this type of access to the Reader role and apply the role to the subscription, resource group, or resource.

Azure는 다음 4개의 플랫폼 역할을 제공합니다.Azure provides the following four platform roles:

  1. 소유자는 액세스를 제외한 모든 것을 관리할 수 있음Owner - can manage everything, including access
  2. 참여자는 액세스를 제외한 모든 것을 관리할 수 있음Contributor - can manage everything except access
  3. 읽기 권한자는 모든 항목을 볼 수 있지만 변경할 수 없음Reader - can view everything, but can't make changes
  4. 사용자 액세스 관리자는 Azure 리소스에 대한 사용자 액세스를 관리할 수 있음User Access Administrator - can manage user access to Azure resources

Azure는 몇 가지 리소스 특정 역할도 제공합니다.Azure also provides several resource-specific roles. 몇 가지 일반적인 경우는 다음과 같습니다.Some common ones are:

  1. 가상 컴퓨터 참여자는 가상 컴퓨터를 관리할 수 있지만 그에 대한 액세스 권한을 부여할 수 없고 연결된 가상 네트워크 또는 저장소 계정을 관리할 수 없음Virtual Machine Contributor - can manage virtual machines but not grant access to them, and cannot manage the virtual network or storage account to which they are connected
  2. 네트워크 참여자는 모든 네트워크 리소스를 관리할 수 있지만 그에 대한 액세스 권한을 부여할 수 없음Network Contributor - can manage all network resources, but not grant access to them
  3. Storage 계정 참여자는 Storage 계정을 관리할 수 있지만 그에 대한 액세스 권한을 부여할 수 없음Storage Account Contributor - Can manage storage accounts, but not grant access to them
  4. SQL Server 참여자는 해당 보안 관련 정책을 제외한 SQL 서버 및 데이터베이스를 관리할 수 있음SQL Server Contributor - Can manage SQL servers and databases, but not their security-related policies
  5. 웹 사이트 참여자는 웹 사이트를 관리할 수 있으나 여기에 연결된 웹 계획은 관리할 수 없음Website Contributor - Can manage websites, but not the web plans to which they are connected

역할 및 허용되는 작업의 전체 목록은 RBAC: 기본 제공 역할을 참조하세요.For the full list of roles and permitted actions, see RBAC: Built in Roles. 역할 기반 Access Control에 대한 자세한 내용은 Azure 역할 기반 Access Control를 참조하세요.For more information about role-based access control, see Azure Role-based Access Control.

경우에 따라 리소스에 액세스하는 코드 또는 스크립트를 실행하려고 하지만 사용자의 자격 증명으로 실행하지 않으려 할 수 있습니다.In some cases, you want to run code or script that accesses resources, but you do not want to run it under a user’s credentials. 대신, 응용 프로그램에 대한 서비스 주체를 호출하는 ID를 만들고 서비스 주체에 대한 적절한 역할을 할당하려고 합니다.Instead, you want to create an identity called a service principal for the application and assign the appropriate role for the service principal. Resource Manager를 사용하면 응용 프로그램에 대한 자격 증명을 만들고 프로그래밍 방식으로 응용 프로그램을 인증할 수 있습니다.Resource Manager enables you to create credentials for the application and programmatically authenticate the application. 서비스 주체를 만드는 방법에 대해 알아보려면 다음 항목 중 하나를 참조하세요.To learn about creating service principals, see one of following topics:

또한 사용자가 삭제 및 수정하는 것을 방지하기 위해 명시적으로 중요한 리소스를 잠글 수 있습니다.You can also explicitly lock critical resources to prevent users from deleting or modifying them. 자세한 내용은 Azure 리소스 관리자를 사용하여 리소스 잠그기를 참조하세요.For more information, see Lock resources with Azure Resource Manager.

활동 로그Activity logs

Resource Manager는 리소스를 만들거나 수정 또는 삭제하는 모든 작업을 기록합니다.Resource Manager logs all operations that create, modify, or delete a resource. 활동 로그를 사용하여 문제를 해결할 때 오류를 찾거나 조직의 사용자가 리소스를 수정한 방법을 모니터링할 수 있습니다.You can use the activity logs to find an error when troubleshooting or to monitor how a user in your organization modified a resource. 로그를 보려면 리소스 그룹에 대한 설정 블레이드에서 활동 로그를 선택합니다.To see the logs, select Activity logs in the Settings blade for a resource group. 작업을 시작한 사용자를 포함하여 여러 다른 값으로 로그를 필터링할 수 있습니다.You can filter the logs by many different values including which user initiated the operation. 활동 로그 작업에 대한 내용은 Azure 리소스 관리를 위한 활동 로그 보기를 참조하세요.For information about working with the activity logs, see View activity logs to manage Azure resources.

사용자 지정된 정책Customized policies

리소스 관리자를 사용하면 리소스를 관리하기 위해 사용자 지정된 정책을 만들 수 있습니다.Resource Manager enables you to create customized policies for managing your resources. 만든 정책의 유형에는 다양한 시나리오가 포함될 수 있습니다.The types of policies you create can include diverse scenarios. 리소스에 대한 명명 규칙을 적용하거나 배포할 수 있는 리소스의 형식 및 인스턴스를 제한하거나 리소스 종류를 호스트할 수 있는 지역을 제한할 수 있습니다.You can enforce a naming convention on resources, limit which types and instances of resources can be deployed, or limit which regions can host a type of resource. 부서별로 청구를 구성하기 위해 리소스에 대한 태그 값이 필요할 수 있습니다.You can require a tag value on resources to organize billing by departments. 구독에서 비용을 절감하고 일관성을 유지하는 데 도움이 되는 정책을 만들 수 있습니다.You create policies to help reduce costs and maintain consistency in your subscription.

JSON을 사용하여 정책을 정의하고 구독 전체 또는 리소스 그룹 내에서 해당 정책을 적용합니다.You define policies with JSON and then apply those policies either across your subscription or within a resource group. 정책은 리소스 유형에 적용되기 때문에 역할 기반 Access Control와 다릅니다.Policies are different than role-based access control because they are applied to resource types.

다음 예제에서는 모든 리소스에 costCenter 태그가 포함되는지를 지정하여 태그 일관성을 보장하는 정책을 보여 줍니다.The following example shows a policy that ensures tag consistency by specifying that all resources include a costCenter tag.

{
  "if": {
    "not" : {
      "field" : "tags",
      "containsKey" : "costCenter"
    }
  },
  "then" : {
    "effect" : "deny"
  }
}

더 다양한 유형의 정책을 만들 수 있습니다.There are many more types of policies you can create. 자세한 내용은 Azure Policy란?을 참조하세요.For more information, see What is Azure Policy?.

SDKSDKs

Azure SDK는 여러 언어 및 플랫폼에 사용할 수 있습니다.Azure SDKs are available for multiple languages and platforms. 이러한 언어 구현은 각각 해당 에코 시스템 패키지 관리자 및 GitHub를 통해 사용할 수 있습니다.Each of these language implementations is available through its ecosystem package manager and GitHub.

다음은 오픈 소스 SDK 리포지토리입니다.Here are our Open Source SDK repositories. 피드백, 문제 및 끌어오기 요청을 환영합니다.We welcome feedback, issues, and pull requests.

사용자 리소스에서 이러한 언어를 사용하는 방법에 대한 정보는 다음을 확인합니다.For information about using these languages with your resources, see:

참고

SDK가 필요한 기능을 제공하지 않는 경우 Azure REST API에 직접 요청할 수 있습니다.If the SDK doesn't provide the required functionality, you can also call to the Azure REST API directly.

다음 단계Next steps

이 개요에 대한 비디오 데모는 다음과 같습니다.Here's a video demonstration of this overview: