2017-09-05 10 views
2

サブスクリプションレベルで割り当てることができるAzureポリシーを作成しようとしており、サブスクリプション内のリソースグループの名前を制御しています。リソースグループ名を検証するAzureポリシーを作成する方法

ポリシーはリソースタイプを対象にするか、またはアプリケーションを制限する必要があります。それ以外の場合は、すべてのリソースにグローバルに適用されます。

私の検証をリソースグループの名前に限定するために使用できるリソースタイプまたは他の方法はありますか?ここで

は、私がしようとしているものです:

$definition = New-AzureRmPolicyDefinition -Name resourceGroupNamePatterns 
    -Description "Restrict resource group names to allowed prefixes only" -Policy '{ 
    "if": { 
     "allOf": [ 
      { 
      "not": { 
       "field": "name", 
       "like": "Pattern1-*" 
      } 
      }, 
      { 
      "not": { 
       "field": "name", 
       "like": "Pattern2-*" 
      } 
      }, 
      { 
      "field": "type", 
      "equals": "Microsoft.Resources/subscriptions/resourcegroups" 
      } 
     ] 
    }, 
    "then": { 
     "effect": "deny" 
    } 
}' 

答えて

1

をリソース・グループMicrosoft.Resources/subscriptions/resourcegroupsタイプです。あなたはちょっとリソースプロバイダ操作からそれを推測することができます:この質問はまだ関連して

Get-AzureRmProviderOperation 'Microsoft.Resources/*' 
+0

ありがとうございます!これを試し、そのタイプがリソースグループを対象とするポリシーで機能するかどうかを知らせます。私のgoogle-fuはこの特定のナゲット情報を発見できませんでした;-) – Joon

+0

リソースタイプとしてポリシーを設定しようとしました。それはサブスクリプションOKに適用されましたが、何の効果もありませんでした(異なる名前のRGを作成する可能性があります) – Joon

+1

リソースグループtbhに影響する可能性は確かです。私は様々な組み合わせを試してきましたが、ポリシーは機能しますが、リソースグループでは機能しません。少なくとも私の実験では – 4c74356b41

1

わからない場合は、しかし、リソースグループに評価をサポートしていませんでしたAzureの方針を掲示する時に。

質問に記載されているポリシー定義が正しい。

powershellのバージョンを更新し、ポリシー定義を更新してみてください。デフォルトではmode: allになり、リソースグループに対するポリシー評価が有効になります。ポリシーモードについて

ドキュメント:リソースタイプがポリシーのために評価されます

モードが決定https://docs.microsoft.com/en-us/azure/azure-policy/policy-definition

モード。サポートされるモードは次のとおりです。

  • すべて:リソース・グループとをインデックス化
  • すべてのリソースタイプを評価する:タグのみと場所私たちはあなたのモードを設定することをお勧めします

をサポートするリソースタイプを評価しますすべてに。ポータルを通じて作成されたすべてのポリシー定義はallモードを使用します。 PowerShellまたはAzure CLIを使用する場合は、modeパラメータを指定してallに設定する必要があります。

+0

ありがとう、それを試みて、 – Joon

+0

npを報告します。何かがうまくいかない場合は私に教えてください。私は助けようとします。 – heren

関連する問題