Azure Policy サービスの概要Overview of the Azure Policy service

ガバナンスは、組織が IT の効率的かつ効果的な使用によって、その組織のゴールを達成できることを検証します。Governance validates that your organization can achieve its goals through effective and efficient use of IT. それは、ビジネスのゴールと IT プロジェクトの間の関係を明確にすることによってこのニーズを満たします。It meets this need by creating clarity between business goals and IT projects.

解決できそうもないほど多くの IT の問題を企業が抱えている場合は、Does your company experience a significant number of IT issues that never seem to get resolved? 優れた IT ガバナンスには、イニシアチブの計画と、問題の管理と防止に役立つ戦略的レベルの優先順位の設定が含まれます。Good IT governance involves planning your initiatives and setting priorities on a strategic level to help manage and prevent issues. この戦略的なニーズには、Azure Policy を利用できます。This strategic need is where Azure Policy comes in.

Azure Policy は、ポリシーの作成、割り当て、管理に使用する Azure のサービスです。Azure Policy is a service in Azure that you use to create, assign, and manage policies. これらのポリシーは、リソースにさまざまなルールと効果を適用して、それらのリソースが会社の標準とサービス レベル アグリーメントに準拠した状態に保たれるようにします。These policies enforce different rules and effects over your resources, so those resources stay compliant with your corporate standards and service level agreements. Azure Policy では、割り当て済みのポリシーでリソースの非準拠を評価することによって、このニーズが満たされます。Azure Policy meets this need by evaluating your resources for non-compliance with assigned policies. たとえば、環境内で特定の SKU サイズの仮想マシンのみを許可するポリシーを作成できます。For example, you can have a policy to allow only a certain SKU size of virtual machines in your environment. このポリシーが実装された後は、新規および既存のリソースのコンプライアンス評価されます。Once this policy is implemented, new and existing resources are evaluated for compliance. 適切な種類のポリシーにより、既存リソースのコンプライアンスを実現できます。With the right type of policy, existing resources can be brought into compliance. Azure Policy でポリシーを作成して実装する方法については、このドキュメントの後のほうで詳しく説明します。Later in this documentation, we'll go over more details on how to create and implement policies with Azure Policy.

重要

Azure Policy のコンプライアンス評価が、価格レベルに関係なくすべての割り当てに対して提供されるようになりました。Azure Policy's compliance evaluation is now provided for all assignments regardless of pricing tier. 割り当てにコンプライアンス データが表示されない場合は、サブスクリプションが Microsoft.PolicyInsights リソース プロバイダーに登録されていることを確認してください。If your assignments do not show the compliance data, please ensure that the subscription is registered with the Microsoft.PolicyInsights resource provider.

注意

このサービスは、Azure の委任されたリソース管理をサポートしています。これにより、サービス プロバイダーは、サービス プロバイダーのテナント内から顧客が委任したリソースとサブスクリプションを管理できます。This service supports Azure Delegated Resource Management which lets service providers manage resources and subscriptions that customers have delegated from within the service provider's tenant. 詳しくは、Azure Lighthouse に関する記事を参照してください。For more info, see Azure Lighthouse.

RBAC との違いは何か。How is it different from RBAC?

Azure Policy とロールベースのアクセス制御 (RBAC) には、いくつかの主要な違いがあります。There are a few key differences between Azure Policy and role-based access control (RBAC). RBAC は、さまざまなスコープでのユーザーの操作に焦点を当てています。RBAC focuses on user actions at different scopes. リソース グループの共同作成者ロールに追加されると、そのリソース グループを変更できるようになります。You might be added to the contributor role for a resource group, allowing you to make changes to that resource group. Azure Policy は、既存のリソースについて、デプロイ中のプロパティに焦点を当てます。Azure Policy focuses on resource properties during deployment and for already existing resources. Azure Policy では、リソースの種類や場所などのプロパティが制御されます。Azure Policy controls properties such as the types or locations of resources. RBAC とは異なり、Azure Policy は既定で許可し、明示的に否認するシステムです。Unlike RBAC, Azure Policy is a default allow and explicit deny system.

Azure Policy における RBAC アクセス許可RBAC Permissions in Azure Policy

Azure Policy は、次の 2 つのリソース プロバイダーにおいて、いくつかのアクセス許可 (操作) を有しています。Azure Policy has several permissions, known as operations, in two Resource Providers:

Azure Policy のリソースに対するアクセス許可は、さまざまな組み込みロールによって与えられます。Many Built-in roles grant permission to Azure Policy resources. リソース ポリシーの共同作成者 (プレビュー) ロールには、Azure Policy のほとんどの操作が含まれます。The Resource Policy Contributor (Preview) role includes most Azure Policy operations. 所有者は完全な権限を持っています。Owner has full rights. 共同作成者閲覧者 はどちらも、すべての読み取り Azure Policy 操作を使用できますが、共同作成者は修復処理をトリガーすることもできます。Both Contributor and Reader can use all read Azure Policy operations, but Contributor can also trigger remediation.

いずれの組み込みロールにも必要なアクセス許可がない場合は、カスタム ロールを作成してください。If none of the Built-in roles have the permissions required, create a custom role.

ポリシー定義Policy definition

Azure Policy でポリシーを作成して実装する手順は、ポリシー定義の作成から始まります。The journey of creating and implementing a policy in Azure Policy begins with creating a policy definition. すべてのポリシー定義に、ポリシーが適用される条件があります。Every policy definition has conditions under which it's enforced. また、条件が満たされた場合に実現される効果も定義されています。And, it has a defined effect that takes place if the conditions are met.

Azure Policy には、既定で使うことができる組み込みポリシーがいくつかあります。In Azure Policy, we offer several built-in policies that are available by default. 例:For example:

  • 許可されているストレージ アカウントの SKU:展開されているストレージ アカウントが SKU サイズの設定内であるかどうかを判断します。Allowed Storage Account SKUs: Determines if a storage account being deployed is within a set of SKU sizes. その効果として、定義されている SKU サイズの設定に準拠していないすべてのストレージ アカウントが拒否されます。Its effect is to deny all storage accounts that don't adhere to the set of defined SKU sizes.
  • 使用できるリソースの種類:展開できるリソースの種類を定義します。Allowed Resource Type: Defines the resource types that you can deploy. その効果として、この定義済みリストの一部ではないすべてのリソースが拒否されます。Its effect is to deny all resources that aren't part of this defined list.
  • 許可されている場所:新しいリソースに使用できる場所を制限します。Allowed Locations: Restricts the available locations for new resources. その効果は、geo コンプライアンス要件を強制するために使用されます。Its effect is used to enforce your geo-compliance requirements.
  • 許可されている仮想マシン SKU:展開できる仮想マシンの SKU の設定を指定します。Allowed Virtual Machine SKUs: Specifies a set of virtual machine SKUs that you can deploy.
  • リソースへのタグの追加:展開要求によって指定されていない場合に、必要なタグとその既定値を適用します。Add a tag to resources: Applies a required tag and its default value if it's not specified by the deploy request.
  • タグとその値の適用:必要なタグとその値をリソースに適用します。Enforce tag and its value: Enforces a required tag and its value to a resource.
  • 許可されていないリソースの種類:リストのリソースの種類が展開されないようにします。Not allowed resource types: Prevents a list of resource types from being deployed.

これらのポリシー定義 (組み込み定義とカスタム定義の両方) を実装するには、割り当てを行う必要があります。To implement these policy definitions (both built-in and custom definitions), you'll need to assign them. こうしたポリシーを割り当てるには、Azure Portal、PowerShell、または Azure CLI を使用します。You can assign any of these policies through the Azure portal, PowerShell, or Azure CLI.

ポリシーの割り当てやポリシーの更新など、いくつかの異なるアクションでポリシーの評価が行われます。Policy evaluation happens with several different actions, such as policy assignment or policy updates. 完全な一覧については、「Policy evaluation triggers」(ポリシー評価のトリガー) をご覧ください。For a complete list, see Policy evaluation triggers.

ポリシー定義の構造の詳細については、ポリシー定義の構造に関するページを参照してください。To learn more about the structures of policy definitions, review Policy Definition Structure.

ポリシー割り当てPolicy assignment

ポリシー割り当ては、特定のスコープ内で実行するように割り当てられたポリシー定義です。A policy assignment is a policy definition that has been assigned to take place within a specific scope. このスコープの範囲は、管理グループからリソース グループまでです。This scope could range from a management group to a resource group. "スコープ" という用語は、ポリシー定義が割り当てられる、すべてのリソース グループ、サブスクリプション、または管理グループのことを指します。The term scope refers to all the resource groups, subscriptions, or management groups that the policy definition is assigned to. ポリシー割り当ては、すべての子リソースによって継承されます。Policy assignments are inherited by all child resources. この設計は、リソース グループに適用されたポリシーは、そのリソース グループ内のリソースにも適用されることを意味します。This design means that a policy applied to a resource group is also applied to resources in that resource group. ただし、サブスコープを、ポリシーの割り当てから除外できます。However, you can exclude a subscope from the policy assignment.

たとえば、サブスクリプション スコープで、ネットワーク リソースの作成を禁止するポリシーを割り当てることができます。For example, at the subscription scope, you can assign a policy that prevents the creation of networking resources. ネットワーク インフラストラクチャを対象としたリソース グループを、そのサブスクリプション内で除外できます。You could exclude a resource group in that subscription that is intended for networking infrastructure. その後、このネットワーク リソース グループへのアクセスは、信頼できるユーザーに許可し、そのユーザーがネットワーク リソースを作成できるようにします。You then grant access to this networking resource group to users that you trust with creating networking resources.

別の例として、リソースの種類の許可リスト ポリシーを管理グループ レベルで割り当てたいとしましょう。In another example, you might want to assign a resource type allow list policy at the management group level. そのうえで、より制限の緩やかな (より多くのリソースの種類を許可する) ポリシーを子の管理グループまたはサブスクリプションに直接割り当てます。And then assign a more permissive policy (allowing more resource types) on a child management group or even directly on subscriptions. しかし、この例はうまくいきません。ポリシーは、明示的拒否のシステムであるためです。However, this example wouldn't work because policy is an explicit deny system. 代わりに、管理グループ レベルのポリシーの割り当てから、子の管理グループまたはサブスクリプションを除外する必要があります。Instead, you need to exclude the child management group or subscription from the management group-level policy assignment. そのうえで、より制限の緩やかなポリシーを子の管理グループまたはサブスクリプション レベルで割り当てます。Then, assign the more permissive policy on the child management group or subscription level. いずれかのポリシーでリソースが拒否される場合、拒否ポリシーに変更を加えることが、そのリソースを許可する唯一の方法となります。If any policy results in a resource getting denied, then the only way to allow the resource is to modify the denying policy.

ポータルを使用したポリシー定義と割り当ての設定の詳細については、「ポリシーの割り当てを作成し、Azure 環境内の非対応リソースを特定する」を参照してください。For more information on setting policy definitions and assignments through the portal, see Create a policy assignment to identify non-compliant resources in your Azure environment. PowerShellAzure CLI の場合の手順も利用することができます。Steps for PowerShell and Azure CLI are also available.

ポリシー パラメーターPolicy parameters

ポリシー パラメーターは、作成する必要があるポリシー定義の数を減らしてポリシーの管理を簡素化するのに役立ちます。Policy parameters help simplify your policy management by reducing the number of policy definitions you must create. ポリシー定義を作成するときにパラメーターを定義して、ポリシー定義を汎用化できます。You can define parameters when creating a policy definition to make it more generic. その後、そのポリシー定義を、さまざまなシナリオで再利用できます。Then you can reuse that policy definition for different scenarios. これを行うには、ポリシー定義を割り当てるときに、さまざまな値を渡します。You do so by passing in different values when assigning the policy definition. たとえば、サブスクリプションに対して一連の場所を指定します。For example, specifying one set of locations for a subscription.

パラメーターは、ポリシー定義を作成するときに定義します。Parameters are defined when creating a policy definition. パラメーターを定義するときは、名前と、必要に応じて値を指定します。When a parameter is defined, it's given a name and optionally given a value. たとえば、"場所" というポリシーのパラメーターを定義できます。For example, you could define a parameter for a policy titled location. その後、ポリシーを割り当てるときに、EastUSWestUS など、さまざまな値を指定できます。Then you can give it different values such as EastUS or WestUS when assigning a policy.

ポリシー パラメーターについて詳しくは、定義の構造でのパラメーターに関する項目をご覧ください。For more information about policy parameters, see Definition structure - Parameters.

イニシアチブ定義Initiative definition

イニシアチブ定義は、単一の包括的なゴールを達成することを目的として調整されたポリシー定義のコレクションです。An initiative definition is a collection of policy definitions that are tailored towards achieving a singular overarching goal. イニシアチブ定義により、ポリシー定義の管理と割り当てが簡素化されます。Initiative definitions simplify managing and assigning policy definitions. 簡素化するには、一連のポリシーを 1 つのアイテムとしてグループ化します。They simplify by grouping a set of policies as one single item. たとえば、Azure Security Center で利用可能なすべてのセキュリティ推奨事項を監視することを目的とする、"Azure Security Center での監視を有効にする" というタイトルのイニシアチブを作成できます。For example, you could create an initiative titled Enable Monitoring in Azure Security Center, with a goal to monitor all the available security recommendations in your Azure Security Center.

このイニシアチブでは、次のようなポリシー定義を作成します。Under this initiative, you would have policy definitions such as:

  • 暗号化されていない SQL Database を Security Center で監視する – 暗号化されていない SQL データベースとサーバーを監視します。Monitor unencrypted SQL Database in Security Center – For monitoring unencrypted SQL databases and servers.
  • OS の脆弱性を Security Center で監視する – 構成されているベースラインを満たしていないサーバーを監視します。Monitor OS vulnerabilities in Security Center – For monitoring servers that don't satisfy the configured baseline.
  • 不足している Endpoint Protection を Security Center で監視する – Endpoint Protection エージェントがインストールされていないサーバーを監視します。Monitor missing Endpoint Protection in Security Center – For monitoring servers without an installed endpoint protection agent.

イニシアチブ割り当てInitiative assignment

ポリシー割り当てと同様に、イニシアチブ割り当ては特定のスコープに割り当てられたイニシアチブの定義です。Like a policy assignment, an initiative assignment is an initiative definition assigned to a specific scope. イニシアチブを割り当てると、スコープごとに複数のイニシアチブを割り当てる必要性が低下します。Initiative assignments reduce the need to make several initiative definitions for each scope. このスコープは、管理グループからリソース グループの範囲になる可能性があります。This scope could also range from a management group to a resource group.

各イニシアチブは、異なるスコープに割り当てることができます。Each initiative is assignable to different scopes. 1 つのイニシアチブを、subscriptionAsubscriptionB の両方に割り当てることができます。One initiative can be assigned to both subscriptionA and subscriptionB.

イニシアチブ パラメーターInitiative parameters

ポリシー パラメーターと同様に、イニシアチブ パラメーターは冗長性を減らすことでイニシアチブの管理を簡素化できます。Like policy parameters, initiative parameters help simplify initiative management by reducing redundancy. イニシアチブ パラメーターは、イニシアチブ内のポリシー定義によって使われるパラメーターです。Initiative parameters are parameters being used by the policy definitions within the initiative.

たとえば、イニシアチブ定義 initiativeC にポリシー定義 policyApolicyB が含まれており、それぞれのポリシー定義が異なる種類のパラメーターを予期しているというシナリオについて考えてみましょう。For example, take a scenario where you have an initiative definition - initiativeC, with policy definitions policyA and policyB each expecting a different type of parameter:

ポリシーPolicy パラメーターの名前Name of parameter パラメーターの型Type of parameter NoteNote
policyApolicyA allowedLocationsallowedLocations arrayarray このパラメーターは、パラメーターの型が配列として定義されているため、文字列のリストが値として必要です。This parameter expects a list of strings for a value since the parameter type has been defined as an array
policyBpolicyB allowedSingleLocationallowedSingleLocation stringstring このパラメーターは、パラメーターの型が文字列として定義されているため、1 つの単語が値として必要です。This parameter expects one word for a value since the parameter type has been defined as a string

このシナリオで initiativeC のイニシアチブ パラメーターを定義する場合、3 つのオプションがあります。In this scenario, when defining the initiative parameters for initiativeC, you have three options:

  • このイニシアチブ内でポリシー定義のパラメーターを使用します。この例では、allowedLocationsallowedSingleLocationinitiativeC のイニシアチブ パラメーターになります。Use the parameters of the policy definitions within this initiative: In this example, allowedLocations and allowedSingleLocation become initiative parameters for initiativeC.
  • このイニシアチブ定義内でポリシー定義のパラメーターに値を指定します。Provide values to the parameters of the policy definitions within this initiative definition. この例では、policyA のパラメーター – allowedLocations および policyB のパラメーター – allowedSingleLocation に場所のリストを提供できます。In this example, you can provide a list of locations to policyA's parameter – allowedLocations and policyB's parameter – allowedSingleLocation. このイニシアチブを割り当てるときに値を指定することもできます。You can also provide values when assigning this initiative.
  • このイニシアチブを割り当てるときに使うことができる "" オプションのリストを指定します。Provide a list of value options that can be used when assigning this initiative. このイニシアチブを割り当てるときは、イニシアチブ内のポリシー定義から継承したパラメーターは、この指定されたリストの値だけを持つことができます。When you assign this initiative, the inherited parameters from the policy definitions within the initiative, can only have values from this provided list.

イニシアチブ定義で値のオプションを作成すると、イニシアチブの割り当てで別の値を入力することは、リストの一部ではないためできません。When creating value options in an initiative definition, you're unable to input a different value during the initiative assignment because it's not part of the list.

Azure Policy オブジェクトの最大数Maximum count of Azure Policy objects

Azure Policy では、オブジェクトの種類ごとに最大数があります。There's a maximum count for each object type for Azure Policy. Scope というエントリは、サブスクリプションまたは管理グループのいずれかを意味します。An entry of Scope means either the subscription or the management group.

WhereWhere 対象What 最大数Maximum count
Scope (スコープ)Scope ポリシーの定義Policy definitions 500500
Scope (スコープ)Scope イニシアチブ定義Initiative definitions 100100
TenantTenant イニシアチブ定義Initiative definitions 1,0001,000
Scope (スコープ)Scope ポリシーとイニシアティブの割り当てPolicy or initiative assignments 100100
ポリシー定義Policy definition parametersParameters 2020
イニシアチブ定義Initiative definition ポリシーPolicies 100100
イニシアチブ定義Initiative definition parametersParameters 100100
ポリシーとイニシアティブの割り当てPolicy or initiative assignments 除外 (notScopes)Exclusions (notScopes) 400400
ポリシー規則Policy rule 入れ子になった条件Nested conditionals 512512

ポリシー管理に関する推奨事項Recommendations for managing policies

留意すべきいくつかの指摘とヒントを次に示します。Here are a few pointers and tips to keep in mind:

  • 最初は拒否効果ではなく監査効果を使用して、環境内のリソースに対するポリシー定義の影響を追跡します。Start with an audit effect instead of a deny effect to track impact of your policy definition on the resources in your environment. アプリケーションを自動スケーリングするスクリプトが既にある場合、拒否効果を設定すると、このような自動化タスクが妨げられる場合があります。If you have scripts already in place to autoscale your applications, setting a deny effect may hinder such automation tasks already in place.

  • 定義と割り当てを作成するときは、組織階層を考慮します。Consider organizational hierarchies when creating definitions and assignments. 管理グループやサブスクリプション レベルのような高いレベルで定義を作成することをお勧めします。We recommend creating definitions at higher levels such as the management group or subscription level. それから、次の子レベルで割り当てを作成します。Then, create the assignment at the next child level. 管理グループで定義を作成した場合、その管理グループ内にあるサブスクリプションまたはリソース グループまで割り当ての対象にできます。If you create a definition at a management group, the assignment can be scoped down to a subscription or resource group within that management group.

  • 1 つのポリシー定義の場合でも、イニシアチブ定義を作成して割り当てることをお勧めします。We recommend creating and assigning initiative definitions even for a single policy definition. たとえば、ポリシー定義 policyDefA をイニシアチブ定義 initiativeDefC の下に作成します。For example, you have policy definition policyDefA and create it under initiative definition initiativeDefC. 後で policyDefA に似た目標の別のポリシー定義 policyDefB を作成する場合、それを initiativeDefC の下に追加して、まとめて追跡できます。If you create another policy definition later for policyDefB with goals similar to policyDefA, you can add it under initiativeDefC and track them together.

  • イニシアチブ割り当てを作成してあると、そのイニシアチブに追加されたポリシー定義もそのイニシアチブ割り当ての一部になります。Once you've created an initiative assignment, policy definitions added to the initiative also become part of that initiatives assignments.

  • イニシアチブ割り当てが評価されたときは、イニシアチブ内のすべてのポリシーも評価されます。When an initiative assignment is evaluated, all policies within the initiative are also evaluated. ポリシーを個別に評価する必要がある場合は、ポリシーをイニシアティブに含めないことをお勧めします。If you need to evaluate a policy individually, it's better to not include it in an initiative.

ビデオの概要Video overview

次の Azure Policy の概要は、ビルド 2018 に基づいています。The following overview of Azure Policy is from Build 2018. スライドまたはビデオのダウンロードについては、チャンネル 9 の「Govern your Azure environment through Azure Policy」(Azure Policy による Azure 環境の管理) を参照してください。For slides or video download, visit Govern your Azure environment through Azure Policy on Channel 9.

次の手順Next steps

これで、Azure Policy の概要といくつかの主要な概念に関する説明は終了です。推奨される次の手順は以下のとおりです。Now that you have an overview of Azure Policy and some of the key concepts, here are the suggested next steps: