Azure Resource Manager の概要Azure Resource Manager overview

アプリケーションのインフラストラクチャは通常、仮想マシン、ストレージ アカウント、仮想ネットワーク、Web アプリ、データベース、データベース サーバー、サード パーティのサービスなど、複数のコンポーネントで構成されます。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. これらのコンポーネントは別々のエンティティではなく、1 つのエンティティの中で互いに関連付けられ相互依存しています。You do not see these components as separate entities, instead you see them as related and interdependent parts of a single entity. これらのコンポーネントを、1 つのグループとしてデプロイ、管理、および監視するのが好ましいです。You want to deploy, manage, and monitor them as a group. Azure Resource Manager を使用すると、ソリューション内の複数のリソースを 1 つのグループとして作業できます。Azure Resource Manager enables you to work with the resources in your solution as a group. ソリューションのこれらすべてのリソースを、1 回の連携した操作でデプロイ、更新、または削除できます。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 には、デプロイ後のリソースの管理に役立つ、セキュリティ、監査、タグ付けの機能が用意されています。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. 一般的なリソースとしては、仮想マシン、ストレージ アカウント、Web アプリ、データベース、仮想ネットワークなどがありますが、他にもさまざまなリソースが存在します。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、Web アプリに関連したリソースを提供する 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 テンプレート - リソース グループへのデプロイ対象となるリソースを定義する JavaScript Object Notation (JSON) ファイルです。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.

Resource Manager には、いくつかの利点があります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.
  • ロールベースのアクセス制御 (RBAC) が管理プラットフォームにネイティブ統合されるため、リソース グループのすべてのサービスにアクセス制御を適用できます。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. 以前のデプロイメント モデルを使用していて、変更の詳細を確認する場合は、「 Resource Manager デプロイと従来のデプロイの理解 」を参照してください。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

Resource Manager では、Azure PowerShell、Azure CLI、Azure Portal、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 は、要求の認証と承認を行う Resource Manager サービスに要求を渡します。The API passes requests to the Resource Manager service, which authenticates and authorizes the requests. 次に Resource Manager は、適切なリソース プロバイダーに要求をルーティングします。Resource Manager then routes the requests to the appropriate resource providers.

Resource Manager の要求モデル

ガイダンスGuidance

次の推奨事項は、ソリューションを操作する際に Resource Manager を最大限に活用するのに役立ちます。The following suggestions help you take full advantage of Resource Manager when working with your solutions.

  1. インフラストラクチャを定義してデプロイする場合は、命令型コマンドではなく、Resource Manager テンプレートにある宣言型構文を使用します。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.

企業が Resource Manager を使用してサブスクリプションを効果的に管理する方法については、「Azure enterprise scaffold - prescriptive subscription governance (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. データベース サーバーなどの 1 つのリソースが、別のデプロイ サイクル上に存在する必要がある場合は、別のリソース グループに含めなければなりません。If one resource, such as a database server, needs to exist on a different deployment cycle it should be in another resource group.
  2. 各リソースは、1 つのリソース グループにのみ存在できる。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. リソース グループを使用すると、管理操作のアクセス制御のスコープを設定できる。A resource group can be used to scope access control for administrative actions.
  7. リソースは、他のリソース グループ内のリソースとやり取りできる。A resource can interact with resources in other resource groups. このやり取りは、2 つの関連するリソースで同じライフサイクルが共有されていない場合によく見られます (データベースに接続する Web アプリなど)。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. このリソース プロバイダーには、キー コンテナーを作成するための vaults という名前のリソースの種類が用意されています。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 構文を確認するには、「Define resources in Azure Resource Manager templates (Azure Resource Manager テンプレートのリソースの定義)」を参照してください。To view the JSON syntax for resources types, see Define resources in Azure Resource Manager templates.

Resource Manager は他の要求と同様に、テンプレートを処理します (「一貫性のある管理レイヤー」の画像を参照してください)。Resource Manager processes the template like any other request (see the image for Consistent management layer). Resource Manager はテンプレートを解析し、その構文を適切なリソース プロバイダーの REST API 操作に変換します。It parses the template and converts its syntax into REST API operations for the appropriate resource providers. たとえば、Resource Manager が次のリソース定義を含むテンプレートを受け取ったとします。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": {
    }
  }
]

Resource Manager は、この定義を次の REST API 操作に変換し、Microsoft.Storage リソース プロバイダーに送信します。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. たとえば、1 つのリソース グループに 1 つのテンプレートで 3 層のアプリケーションをデプロイできます。For example, you can deploy your three tier application through a single template to a single resource group.

3 層のテンプレート

ただし、インフラストラクチャ全体を 1 つのテンプレートで定義する必要はありません。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 つのテンプレートを含む親テンプレートを利用して 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 Resource Manager のテンプレートでの依存関係の定義 」に関するページを参照してください。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 Resource Manager では、既存の資産が、新しい資産と同じ状態になるよう更新されます。Azure Resource Manager updates the existing asset to the same state as it would be as new.

Resource Manager では、セットアップ時に含まれていなかった特定ソフトウェアのインストールなど、追加の操作が必要なシナリオのための拡張機能を使用できます。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 では、管理や課金の要件に合わせてリソースを分類できる、タグ付け機能を使用できます。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. 組織内のユーザーが類似したタグを誤って適用しないよう (「department」の代わりに「dep」など)、組織内のすべてのユーザーが共通のタグを使用できる独自のタグ分類法を作成することができます。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 コマンドレットを使用します。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 control

Resource Manager を使用すると、組織に対する特定アクションにアクセスできるユーザーを制御できます。Resource Manager enables you to control who has access to specific actions for your organization. Azure Resource Manager では、ロールベースのアクセス制御 (RBAC) が管理プラットフォームにネイティブに統合されているため、そのアクセス制御がリソース グループ内のすべてのサービスに適用されます。It natively integrates role-based access control (RBAC) into the management platform and applies that access control to all services in your resource group.

ロールベースのアクセス制御を使用する場合に理解しておくべき 2 つの主要な概念を次に示します。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 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. Web サイトの共同作業者: Web サイトを管理できますが、接続されている Web プランは管理できません。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. ロールベースのアクセス制御の詳細については、「 Azure のロールベースのアクセス制御」を参照してください。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 Resource Manager によるリソースのロック」を参照してください。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. ポリシーは、リソースの種類に適用されるものであるため、ロールベースのアクセス制御とは異なります。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.

Microsoft のオープン ソース 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: