コンプライアンス違反の原因の特定Determine causes of non-compliance

Azure リソースにポリシー ルールへのコンプライアンス違反が確認された場合は、リソースがルールのどの部分に準拠していないのかを理解することをお勧めします。When an Azure resource is determined to be non-compliant to a policy rule, it's helpful to understand which portion of the rule the resource isn't compliant with. また、どのような変更によって、以前は準拠していたリソースがコンプライアンス違反となったのかを把握することも有用です。It's also useful to understand what change altered a previously compliant resource to make it non-compliant. この情報を検索するには 2 つの方法があります。There are two ways to find this information:

コンプライアンスの詳細Compliance details

リソースがコンプライアンス違反となった場合は、そのリソースのコンプライアンスの詳細を [Policy compliance] (ポリシー コンプライアンス) ページで確認できます。When a resource is non-compliant, the compliance details for that resource are available from the Policy compliance page. [ポリシー準拠情報の詳細] ウィンドウには、次の情報が含まれています。The compliance details pane includes the following information:

  • 名前、種類、場所、リソース ID などのリソースの詳細Resource details such as name, type, location, and resource ID
  • コンプライアンス対応状態と、現在のポリシー割り当ての最後の評価のタイムスタンプCompliance state and timestamp of the last evaluation for the current policy assignment
  • リソースのコンプライアンス違反の 理由 の一覧A list of reasons for the resource non-compliance

重要

コンプライアンス違反 コンプライアンス違反のリソースのコンプライアンスの詳細に、該当のリソースでのプロパティの現在の値が表示されるときには、ユーザーにその 種類 のリソースに対する 読み取り 操作が必要です。As the compliance details for a Non-compliant resource shows the current value of properties on that resource, the user must have read operation to the type of resource. たとえば、コンプライアンス違反 のリソースが Microsoft.Compute/virtualMachines の場合、ユーザーには、Microsoft.Compute/virtualMachines/read 操作が必要です。For example, if the Non-compliant resource is Microsoft.Compute/virtualMachines then the user must have the Microsoft.Compute/virtualMachines/read operation. ユーザーに必要な操作がない場合は、アクセス エラーが表示されます。If the user doesn't have the needed operation, an access error is displayed.

コンプライアンスの詳細を表示するには、次の手順に従います。To view the compliance details, follow these steps:

  1. Azure portal で [すべてのサービス] を選択し、 [Policy] を検索して選択することで、Azure Policy サービスを起動します。Launch the Azure Policy service in the Azure portal by selecting All services, then searching for and selecting Policy.

  2. [概要] ページまたは [コンプライアンス] ページで、 [コンプライアンスの状態][非対応] になっているポリシーを選択します。On the Overview or Compliance page, select a policy in a compliance state that is Non-compliant.

  3. [Policy compliance] (ポリシー コンプライアンス) ページの [リソースのコンプライアンス] タブで、 [コンプライアンスの状態][非対応] になっているリソースを右クリックするか、リソースの省略記号を選択します。Under the Resource compliance tab of the Policy compliance page, right-click or select the ellipsis of a resource in a compliance state that is Non-compliant. 次に、 [ポリシー準拠状況の詳細] を選択します。Then select View compliance details.

    [リソース コンプライアンス] タブの 'ポリシー準拠状況の詳細' リンクのスクリーンショット。

  4. [ポリシー準拠状況の詳細] ウィンドウに、現在のポリシー割り当てに対するリソースの最新の評価からの情報が表示されます。The Compliance details pane displays information from the latest evaluation of the resource to the current policy assignment. この例では、フィールド Microsoft.Sql/servers/version12.0 であることが検出されていますが、ポリシー定義では 14.0 を必要としています。In this example, the field Microsoft.Sql/servers/version is found to be 12.0 while the policy definition expected 14.0. リソースのコンプライアンス違反の理由が複数ある場合は、このウィンドウにそれぞれの理由が表示されます。If the resource is non-compliant for multiple reasons, each is listed on this pane.

    [コンプライアンスの詳細] ウィンドウと、現在の値が 12 で対象の値が 14 であるというコンプライアンス違反の理由を示したスクリーンショット。

    AuditIfNotExists または deployIfNotExists ポリシー定義について、詳細に details.type プロパティと省略可能なプロパティが含まれます。For an auditIfNotExists or deployIfNotExists policy definition, the details include the details.type property and any optional properties. 一覧については、「auditIfNotExists プロパティ」と「deployIfNotExists プロパティ」を参照してください。For a list, see auditIfNotExists properties and deployIfNotExists properties. 最後に評価されたリソース は、定義の details セクションからの関連リソースです。Last evaluated resource is a related resource from the details section of the definition.

    部分的な deployIfNotExists 定義の例:Example partial deployIfNotExists definition:

    {
        "if": {
            "field": "type",
            "equals": "[parameters('resourceType')]"
        },
        "then": {
            "effect": "DeployIfNotExists",
            "details": {
                "type": "Microsoft.Insights/metricAlerts",
                "existenceCondition": {
                    "field": "name",
                    "equals": "[concat(parameters('alertNamePrefix'), '-', resourcegroup().name, '-', field('name'))]"
                },
                "existenceScope": "subscription",
                "deployment": {
                    ...
                }
            }
        }
    }
    

    評価されたリソース数を含む ifNotExists の [コンプライアンスの詳細] ウィンドウのスクリーンショット。

注意

データを保護するために、プロパティ値が secret の場合は現在の値にアスタリスクが表示されます。To protect data, when a property value is a secret the current value displays asterisks.

これらの詳細は、リソースが現在コンプライアンス違反であることの理由を説明するものですが、コンプライアンス違反の原因となった変更がリソースに対して行われたタイミングでは表示しません。These details explain why a resource is currently non-compliant, but don't show when the change was made to the resource that caused it to become non-compliant. この情報を得るには、「変更履歴 (プレビュー)」を参照してください。For that information, see Change history (Preview) below.

コンプライアンスの理由Compliance reasons

次のマトリックスは、可能性のある各 理由 と、ポリシー定義内でのその 条件の対応を示しています。The following matrix maps each possible reason to the responsible condition in the policy definition:

理由Reason 条件Condition
現在の値には、キーとしてターゲット値を含める必要があります。Current value must contain the target value as a key. containsKey、または notContainsKey ではないcontainsKey or not notContainsKey
現在の値には、ターゲット値を含める必要があります。Current value must contain the target value. contains、または notContains ではないcontains or not notContains
現在の値は、ターゲット値と等しくなければなりません。Current value must be equal to the target value. equals、または notEquals ではないequals or not notEquals
現在の値は、ターゲット値より小さくなければなりません。Current value must be less than the target value. less、または greaterOrEquals ではないless or not greaterOrEquals
現在の値は、ターゲット値以上でなければなりません。Current value must be greater than or equal to the target value. greaterOrEquals、または less ではないgreaterOrEquals or not less
現在の値は、ターゲット値より大きくなければなりません。Current value must be greater than the target value. greater、または lessOrEquals ではないgreater or not lessOrEquals
現在の値は、ターゲット値以下でなければなりません。Current value must be less than or equal to the target value. lessOrEquals、または greater ではないlessOrEquals or not greater
現在の値は存在している必要があります。Current value must exist. existsexists
現在の値は、ターゲット値に含まれている必要があります。Current value must be in the target value. in、または notIn ではないin or not notIn
現在の値は、ターゲット値とパターン一致する必要があります。Current value must be like the target value. like、または notLike ではないlike or not notLike
現在の値は、ターゲット値と一致する必要があります (大文字/小文字を区別する)。Current value must case-sensitive match the target value. match、または notMatch ではないmatch or not notMatch
現在の値は、ターゲット値と一致する必要があります (大文字/小文字を区別しない)。Current value must case-insensitive match the target value. matchInsensitively、または notMatchInsensitively ではないmatchInsensitively or not notMatchInsensitively
現在の値には、キーとしてターゲット値を含めることはできません。Current value must not contain the target value as a key. notContainsKey、または containsKey ではないnotContainsKey or not containsKey
現在の値には、ターゲット値を含めることはできません。Current value must not contain the target value. notContains、または contains ではないnotContains or not contains
現在の値を、ターゲット値と等しくすることはできません。Current value must not be equal to the target value. notEquals、または equals ではないnotEquals or not equals
現在の値は存在してはなりません。Current value must not exist. exists ではないnot exists
現在の値は、ターゲット値に含まれていてはなりません。Current value must not be in the target value. notIn、または in ではないnotIn or not in
現在の値は、ターゲット値とパターン一致してはなりません。Current value must not be like the target value. notLike、または like ではないnotLike or not like
現在の値は、ターゲット値と一致してはなりません (大文字/小文字を区別する)。Current value must not case-sensitive match the target value. notMatch、または match ではないnotMatch or not match
現在の値は、ターゲット値と一致してはなりません (大文字/小文字を区別しない)。Current value must not case-insensitive match the target value. notMatchInsensitively、または matchInsensitively ではないnotMatchInsensitively or not matchInsensitively
ポリシー定義の効果の詳細と一致する関連リソースがありません。No related resources match the effect details in the policy definition. then.details.type で定義されている種類のリソース、およびポリシー ルールの if 部分に定義されているリソースに関連したリソースが存在しません。A resource of the type defined in then.details.type and related to the resource defined in the if portion of the policy rule doesn't exist.

リソース プロバイダー モードのコンポーネントの詳細Component details for Resource Provider modes

リソース プロバイダー モードによる割り当てについては、準拠していない リソースを選択して、詳細なビューを開きます。For assignments with a Resource Provider mode, select the Non-compliant resource to open a deeper view. [コンポーネント コンプライアンス] タブの下に、割り当てられたポリシーのリソース プロバイダー モードに固有の追加情報があり、準拠していないコンポーネントコンポーネント ID が表示されます。Under the Component Compliance tab is additional information specific to the Resource Provider mode on the assigned policy showing the Non-compliant Component and Component ID.

[Component Compliance]\(コンポーネントのコンプライアンス\) タブと、リソース プロバイダー モードの割り当てに対するコンプライアンスの詳細のスクリーンショット。

ゲスト構成のコンプライアンスの詳細Compliance details for Guest Configuration

ゲスト構成 カテゴリの auditIfNotExists ポリシーについては、仮想マシン内で評価された複数の設定が存在する可能性があり、設定ごとの詳細を表示する必要があります。For auditIfNotExists policies in the Guest Configuration category, there could be multiple settings evaluated inside the virtual machine and you'll need to view per-setting details. たとえば、パスワード ポリシーの一覧を監査していて、そのうちの 1 つだけが "非準拠" の状態の場合は、対応していない特定のパスワード ポリシーとその理由を把握しておく必要があります。For example, if you're auditing for a list of password policies and only one of them has status Non-compliant, you'll need to know which specific password policies are out of compliance and why.

また、仮想マシンに直接サインインするアクセス権を持たない可能性もありますが、仮想マシンが 準拠していない 理由についてレポートする必要があります。You also might not have access to sign in to the virtual machine directly but you need to report on why the virtual machine is Non-compliant.

Azure portalAzure portal

ポリシー準拠の詳細を表示するには、前のセクションと同じ手順に従ってください。Begin by following the same steps in the section above for viewing policy compliance details.

[コンプライアンスの詳細] ウィンドウ ビューで、 [前回の評価済みリソース] のリンクを選択します。In the Compliance details pane view, select the link Last evaluated resource.

auditIfNotExists 定義のコンプライアンスの詳細を表示したスクリーンショット。

[ゲスト割り当て] ページには、利用可能なコンプライアンスの詳細すべてが表示されます。The Guest Assignment page displays all available compliance details. ビューの行はそれぞれ、マシン内で実行された評価を表します。Each row in the view represents an evaluation that was performed inside the machine. [理由] 列には、ゲストの割り当てが "非準拠" である理由が示されています。In the Reason column, a phrase is shown describing why the Guest Assignment is Non-compliant. たとえば、パスワード ポリシーを監査する場合、 [理由] 列には、各設定の現在の値を含むテキストが表示されます。For example, if you're auditing password policies, the Reason column would display text including the current value for each setting.

ゲスト割り当てのコンプライアンスの詳細のスクリーンショット。

変更履歴 (プレビュー)Change history (Preview)

新しい パブリック プレビュー の一環として、完全モードの削除をサポートするすべての Azure リソースについて、過去 14 日間の変更履歴が使用可能です。As part of a new public preview, the last 14 days of change history are available for all Azure resources that support complete mode deletion. 変更履歴では、変更が検出された日時についての詳細と、各変更の "差分表示" が提供されます。Change history provides details about when a change was detected and a visual diff for each change. 変更の検出は、Azure Resource Manager のプロパティが追加、削除、変更されるとトリガーされます。A change detection is triggered when the Azure Resource Manager properties are added, removed, or altered.

  1. Azure portal で [すべてのサービス] を選択し、 [Policy] を検索して選択することで、Azure Policy サービスを起動します。Launch the Azure Policy service in the Azure portal by selecting All services, then searching for and selecting Policy.

  2. [概要] ページまたは [コンプライアンス] ページで、任意の [コンプライアンスの状態] のポリシーを選択します。On the Overview or Compliance page, select a policy in any compliance state.

  3. [Policy compliance] (ポリシー コンプライアンス) ページの [リソースのコンプライアンス] タブで、リソースを選択します。Under the Resource compliance tab of the Policy compliance page, select a resource.

  4. [リソース コンプライアンス] ページで [Change History (preview)](変更履歴 (プレビュー)) タブを選択します。Select the Change History (preview) tab on the Resource Compliance page. 検出された変更がある場合は、その一覧が表示されます。A list of detected changes, if any exist, are displayed.

    [リソースのコンプライアンス] ページの [変更履歴] タブと検出された変更の時刻のスクリーンショット。

  5. 検出された変更のいずれかを選択します。Select one of the detected changes. [変更履歴] ページに、リソースの 差分表示 が示されます。The visual diff for the resource is presented on the Change history page.

    [変更履歴] ページにおけるプロパティの前後の状態の変更履歴の差分表示を示したスクリーンショット。

"差分表示" は、リソースの変更を識別するのに役立ちます。The visual diff aides in identifying changes to a resource. 検出された変更が、リソースの現在のコンプライアンス対応状態に関連していない場合があります。The changes detected may not be related to the current compliance state of the resource.

変更履歴データは、Azure Resource Graph によって提供されます。Change history data is provided by Azure Resource Graph. Azure portal の外部でこの情報を照会するには、「Get resource changes (リソース変更を取得する)」をご覧ください。To query this information outside of the Azure portal, see Get resource changes.

次のステップNext steps