Efekt auditIfNotExists definicji usługi Azure Policy
Efekt auditIfNotExists
umożliwia inspekcję zasobów związanych z zasobem zgodnym if
z warunkiem, ale nie ma właściwości określonych w details
then
warunku.
Ocena auditIfNotExists
auditIfNotExists
uruchamiane po przetworzeniu żądania utworzenia lub zaktualizowania zasobu przez dostawcę zasobów i zwrócenie kodu stanu powodzenia. Inspekcja występuje, jeśli nie ma powiązanych zasobów lub jeśli zasoby zdefiniowane przez ExistenceCondition
program nie są obliczane na wartość true. W przypadku nowych i zaktualizowanych zasobów usługa Azure Policy dodaje operację Microsoft.Authorization/policies/audit/action
do dziennika aktywności i oznacza zasób jako niezgodny. Po wyzwoleniu zasób spełniający if
warunek jest zasobem oznaczonym jako niezgodny.
Właściwości AuditIfNotExists
Właściwość details
efektów AuditIfNotExists ma wszystkie podwłaściwości definiujące powiązane zasoby, które mają być zgodne.
type
(wymagane)- Określa typ powiązanego zasobu, który ma być zgodny.
- Jeśli
type
jest typemif
zasobu pod warunkiem, zasady wysyłają zapytania o zasoby tegotype
zasobu w zakresie ocenianego zasobu. W przeciwnym razie zapytania dotyczące zasad w tej samej grupie zasobów lub subskrypcji co oceniony zasób w zależności odexistenceScope
.
name
(opcjonalnie)- Określa dokładną nazwę zasobu do dopasowania i powoduje, że zasady pobierają jeden konkretny zasób zamiast wszystkich zasobów określonego typu.
- Gdy wartości warunku dla
if.field.type
ithen.details.type
są zgodne, stajename
się wymagane i musi mieć[field('name')]
wartość , lub[field('fullName')]
dla zasobu podrzędnego. Należy jednak rozważyć efekt inspekcji .
Uwaga
type
segmenty i name
można łączyć w celu ogólnego pobierania zagnieżdżonych zasobów.
Aby pobrać określony zasób, możesz użyć elementów "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
i "name": "parentResourceName/nestedResourceName"
.
Aby pobrać kolekcję zasobów zagnieżdżonych, można podać symbol ?
wieloznaczny zamiast segmentu nazwiska. Przykład: "type": "Microsoft.ExampleProvider/exampleParentType/exampleNestedType"
i "name": "parentResourceName/?"
. Można to połączyć z funkcjami pól w celu uzyskania dostępu do zasobów związanych z ocenianym zasobem, takimi jak "name": "[concat(field('name'), '/?')]"
."
resourceGroupName
(opcjonalnie)- Umożliwia dopasowanie powiązanego zasobu z innej grupy zasobów.
- Nie ma zastosowania, jeśli
type
jest zasobem, który znajduje się pod zasobemif
warunku. - Wartość domyślna
if
to grupa zasobów zasobu warunku.
existenceScope
(opcjonalnie)- Dozwolone wartości to Subscription i ResourceGroup.
- Ustawia zakres, z którego ma być pobierany powiązany zasób, z którego ma być zgodny.
- Nie ma zastosowania, jeśli
type
jest zasobem, który znajduje się pod zasobemif
warunku. - W przypadku grupy zasobów należy ograniczyć grupę zasobów, jeśli
resourceGroupName
zostanie określona. JeśliresourceGroupName
nie zostanie określony, ograniczenie doif
grupy zasobów zasobu warunku, która jest zachowaniem domyślnym. - W polu Subskrypcja wysyła zapytanie do całej subskrypcji powiązanego zasobu. Zakres przypisania należy ustawić w subskrypcji lub wyższej w celu odpowiedniej oceny.
- Wartość domyślna to ResourceGroup.
evaluationDelay
(opcjonalnie)- Określa, kiedy należy ocenić istnienie powiązanych zasobów. Opóźnienie jest używane tylko w przypadku ocen, które są wynikiem żądania utworzenia lub zaktualizowania zasobu.
- Dozwolone wartości to
AfterProvisioning
,AfterProvisioningSuccess
,AfterProvisioningFailure
lub ISO 8601 czas trwania od 0 do 360 minut. - Wartości AfterProvisioning sprawdzają wynik aprowizacji zasobu, który został oceniony w warunku reguły
if
zasad.AfterProvisioning
przebiegi po zakończeniu aprowizacji, niezależnie od wyniku. Aprowizowanie, które trwa dłużej niż sześć godzin, jest traktowane jako błąd podczas określania opóźnień oceny AfterProvisioning . - Wartość domyślna to
PT10M
(10 minut). - Określenie długiego opóźnienia oceny może spowodować, że zarejestrowany stan zgodności zasobu nie zostanie zaktualizowany do momentu następnego wyzwalacza oceny.
existenceCondition
(opcjonalnie)- Jeśli nie zostanie określony, jakikolwiek powiązany zasób
type
spełnia ten efekt i nie wyzwoli inspekcji. - Używa tego samego języka co reguła zasad dla
if
warunku, ale jest obliczana dla każdego powiązanego zasobu indywidualnie. - Jeśli jakikolwiek pasujący zasób ma wartość true, efekt jest spełniony i nie wyzwala inspekcji.
- Można użyć [field()] do sprawdzenia równoważności z wartościami w
if
warunku. - Na przykład może służyć do sprawdzania, czy zasób nadrzędny (w warunku) znajduje się w
if
tej samej lokalizacji zasobu co pasujący powiązany zasób.
- Jeśli nie zostanie określony, jakikolwiek powiązany zasób
Przykład auditIfNotExists
Przykład: ocenia maszyny wirtualne w celu ustalenia, czy rozszerzenie ochrony przed złośliwym kodem istnieje, a następnie przeprowadza inspekcję w przypadku braku.
{
"if": {
"field": "type",
"equals": "Microsoft.Compute/virtualMachines"
},
"then": {
"effect": "auditIfNotExists",
"details": {
"type": "Microsoft.Compute/virtualMachines/extensions",
"existenceCondition": {
"allOf": [
{
"field": "Microsoft.Compute/virtualMachines/extensions/publisher",
"equals": "Microsoft.Azure.Security"
},
{
"field": "Microsoft.Compute/virtualMachines/extensions/type",
"equals": "IaaSAntimalware"
}
]
}
}
}
}
Następne kroki
- Zapoznaj się z przykładami w przykładach usługi Azure Policy.
- Przejrzyj temat Struktura definicji zasad Azure Policy.
- Dowiedz się, jak programowo tworzyć zasady.
- Dowiedz się, jak uzyskać dane zgodności.
- Dowiedz się, jak korygować niezgodne zasoby.
- Przejrzyj grupy zarządzania platformy Azure.