アズールにおける迂回政策
Azureポリシーを使用すると、Azureインフラストラクチャは、それらのポリシーが評価されているリソースを参照して規則を監査し、強制することによって柔軟なままです.
しかし、いくつかの例では、特定のポリシーまたはイニシアティブを回避する必要があります.一つの方法は、バイパスタグを使用することです.
特定のタグがリソースに含まれている場合、ポリシーは無視されます.このアプローチには2つの主な欠点があります.カスタムポリシーにのみ適用されますビルトイン方針がバイパスされたいならば、対応するタグも含む新しいカスタム方針は定義される必要があります; それが箱の外のazureポータルに統合されないので、バイパス・タグの監査は、それ以上の構成を必要とする.
アシュール政策免除
政策免除とは
.
Azure policies overview .
Azure policy exemption structure .
しかし、いくつかの例では、特定のポリシーまたはイニシアティブを回避する必要があります.一つの方法は、バイパスタグを使用することです.
特定のタグがリソースに含まれている場合、ポリシーは無視されます.このアプローチには2つの主な欠点があります.
{
"if": {
"allOf": [
{
"not": {
"field": "location",
"in": "[parameters('allowedLocations')]"
}
},
{
"field": "tags['bypassLocationPolicy']",
"exists": false
}
]
},
"then": {
"effect": "deny"
}
}
しかし、政策を回避するより良い方法があります.アシュール政策免除
政策免除とは
ポリシー免除は、特定のスコープでポリシーをバイパスすることで、ポリシーがこのスコープのリソースに対して評価されないようにします.
バイパスタグとは対照的に、Azureは自動的にポリシーの免除を監査するので、以下の写真に示すように簡単に監視することができます.
別の利点は、ポリシーの免除は、追加ポリシーを定義する必要がなく、ビルドインポリシーを含むすべてのポリシーに適用することができます.
政策の免除の問題の1つは、バイパスタグとは対照的に、それがdeny
効果で方針から個々の資源を免除することに関係しているということです.その理由は、政策免除を適用できるようにするには、この場合の免除範囲、資源そのものが存在する必要があるからである.この結果を達成する1つの方法は、より広い範囲への免除を割り当てることです.例えば、リソースグループ、リソースを作成し、個々のリソースに免除を割り当て、より広いスコープから削除します.
免除の範囲を制限する
上述のように、ポリシー免除は特定の範囲に適用されます.これは原則として、管理グループやサブスクリプションに対する免除を無効にすることを可能にします.
しかし、カスタムポリシーを通して除外を適用できる範囲を制限する方法が一つあります.
このカスタムポリシーの考え方は、特定のスコープで政策免除の作成を阻止することです.しかし、若干のマイナーな問題があります、しかし、方針免除範囲は別名として存在しません、したがって、それは方針定義でフィルタとして使うことができません.これは解決策IDを使用してスコープを埋め込むことです.私たちのケースでは、私たちは、資源グループレベルより広い範囲で方針免除をブロックしたかったので、我々の方針定義は以下のように見えます.
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/policyExemptions"
},
{
"field": "id",
"notContains": "resourceGroup"
}
]
},
"then": {
"effect": "deny"
}
}
フォローアップ
この投稿を書くとき、ポリシー免除はまだAzureのプレビュー機能です、したがって、それらを使用するとき、あなたは若干の制限に直面するかもしれません.それにもかかわらず、私はあなたが非常に調整された環境で働く必要があるならば、それらを試してみることを勧めます.してください、あなたが始めるのを助けるいくつかのリンクの下を見つけてください!
上述のように、ポリシー免除は特定の範囲に適用されます.これは原則として、管理グループやサブスクリプションに対する免除を無効にすることを可能にします.
しかし、カスタムポリシーを通して除外を適用できる範囲を制限する方法が一つあります.
このカスタムポリシーの考え方は、特定のスコープで政策免除の作成を阻止することです.しかし、若干のマイナーな問題があります、しかし、方針免除範囲は別名として存在しません、したがって、それは方針定義でフィルタとして使うことができません.これは解決策IDを使用してスコープを埋め込むことです.私たちのケースでは、私たちは、資源グループレベルより広い範囲で方針免除をブロックしたかったので、我々の方針定義は以下のように見えます.
{
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.Authorization/policyExemptions"
},
{
"field": "id",
"notContains": "resourceGroup"
}
]
},
"then": {
"effect": "deny"
}
}
フォローアップ
この投稿を書くとき、ポリシー免除はまだAzureのプレビュー機能です、したがって、それらを使用するとき、あなたは若干の制限に直面するかもしれません.それにもかかわらず、私はあなたが非常に調整された環境で働く必要があるならば、それらを試してみることを勧めます.してください、あなたが始めるのを助けるいくつかのリンクの下を見つけてください!
.
Azure policies overview .
Azure policy exemption structure .
Reference
この問題について(アズールにおける迂回政策), 我々は、より多くの情報をここで見つけました https://dev.to/cse/bypassing-policies-in-azure-29fcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol