Zasada kontroli dostępu

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Co

Zasada kontroli dostępu pozwala przyznawać i odbierać dostęp do interfejsów API według określonego adresu IP. adresów.

Film: obejrzyj krótki film, aby dowiedzieć się więcej o tym, jak akceptować i odrzucać treści. dostęp do interfejsów API za pomocą określonych adresów IP.

Można ją dołączyć w dowolnym miejscu procesu serwera proxy interfejsu API, jednak zalecane jest sprawdź adresy IP na początku procesu ( Request / ProxyEndpoint / PreFlow), nawet przed uwierzytelnianie czy sprawdzanie limitu.

Przykłady

Wartości masek w poniższych przykładach IPv4 wskazują, który z 4 oktetów (8, 16, 24, 32) (bity) brane pod uwagę przez regułę dopasowania, gdy zezwalasz na dostęp lub go blokujesz. Wartością domyślną jest 32. Zobacz mask w dokumentacji elementu. i informacjami o nich.

Odmowa 198.51.100.1

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
      <SourceAddress mask="32">198.51.100.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

Odrzucaj wszystkie żądania z adresu klienta: 198.51.100.1

Zezwalaj na żądania z dowolnego innego adresu klienta.

Odrzucaj przy użyciu zmiennych

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
      <SourceAddress mask="{kvm.mask.value}">{kvm.ip.value}</SourceAddress>
    </MatchRule>
    </IPRules>
</AccessControl>

Załóżmy, że używasz mapy wartości klucza (KVM) do przechowywania wartości na potrzeby maskowania i adresów IP. To wygodne podejście do zmiany adresów IP i maskowania w czasie działania bez konieczności aktualizowania i ponownie wdróż serwer proxy interfejsu API. Możesz użyć zasady KeyValueMapOperations, aby pobrać zmienne zawierające wartości kvm.mask.value i kvm.ip.value (zakładając, że zmienne zostały przez Ciebie określone w zasadzie KVM które zawierają wartości maski i adresu IP z Twojej maszyny wirtualnej). Jeśli pobrane wartości to 24 dla maski i 198.51.100.1 w przypadku adresu IP zasada AccessControl odrzuca wszystkie żądania z adresu 198.51.100*.

Wszystkie inne adresy klientów będą dozwolone.

Odmowa 198.51.100.*

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
      <SourceAddress mask="24">198.51.100.1</SourceAddress>
    </MatchRule>
    </IPRules>
</AccessControl>

Odrzucaj wszystkie żądania z adresu klienta: 198.51.100*.

Zezwalaj na żądania z dowolnego innego adresu klienta.

198,51*.

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
       <SourceAddress mask="16">198.51.100.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

Odrzucaj wszystkie żądania z adresu klienta: 198.51.*.*

Zezwalaj na żądania z dowolnego innego adresu klienta.

Odmowa 198.51.100.*, zezwalaj na 192.0.2.1

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "ALLOW">
      <SourceAddress mask="32">192.0.2.1</SourceAddress>
    </MatchRule>
    <MatchRule action = "DENY">
      <SourceAddress mask="24">198.51.100.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

Odrzuć wszystkie żądania z adresu klienta: 198.51.100.*, ale zezwalaj na wersję 192.0.2.1.

Zezwalaj na żądania z dowolnego innego adresu klienta.

Zezwalaj na kod 198.51*.*

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "DENY">
    <MatchRule action = "ALLOW">
      <SourceAddress mask="16">198.51.100.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

Zezwalaj na wszystkie żądania z adresu: 198.51.*.*

Odrzucaj żądania z innych adresów klienta.

Zezwalaj na wiele adresów IP

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "DENY">
    <MatchRule action = "ALLOW">
      <SourceAddress mask="24">198.51.100.1</SourceAddress>
      <SourceAddress mask="24">192.0.2.1</SourceAddress>
      <SourceAddress mask="24">203.0.113.1</SourceAddress>
     </MatchRule>
  </IPRules>
</AccessControl>

Zezwalaj na żądania z adresów klientów: 198.51.100*. 192.0.2*. 203.0.113*.

Odrzucaj pozostałe adresy.

Odrzucaj wiele adresów IP

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "DENY">
      <SourceAddress mask="24">198.51.100.1</SourceAddress>
      <SourceAddress mask="24">192.0.2.1</SourceAddress>
      <SourceAddress mask="24">203.0.113.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

Odrzucaj żądania z adresów klientów: 198.51.100.* 192.0.2*. 203.0.113*.

Zezwalaj na wszystkie inne adresy.

Zezwalaj na wiele adresów IP, odrzucaj wiele adresów IP

<AccessControl name="ACL">
  <IPRules noRuleMatchAction = "DENY">
    <MatchRule action = "DENY">
      <SourceAddress mask="24">198.51.100.1</SourceAddress>
      <SourceAddress mask="24">192.0.2.1</SourceAddress>
      <SourceAddress mask="24">203.0.113.1</SourceAddress>
    </MatchRule>
    <MatchRule action = "ALLOW">
      <SourceAddress mask="16">198.51.100.1</SourceAddress>
      <SourceAddress mask="16">192.0.2.1</SourceAddress>
      <SourceAddress mask="16">203.0.113.1</SourceAddress>
    </MatchRule>
  </IPRules>
</AccessControl>

Zezwalaj: 198.51*.* 192,0*.* 203,0*.*

Odrzucanie podzbioru listy dozwolonych: 198.51.100*. 192.0.2*. 203.0.113*.


Zastosowanie

Oprócz ochrony interfejsów API przed złośliwymi adresami IP zasada kontroli dostępu obejmuje również daje kontrolę nad prawidłowym dostępem IP. Jeśli na przykład chcesz mieć do czynienia tylko z komputerami kontroli nad przedsiębiorstwem w celu dostępu do interfejsów API udostępnianych w środowisku testowym, możesz zezwolić zakres adresów IP sieci wewnętrznej. Deweloperzy pracujący z domu mogą uzyskać dostęp do tych interfejsów API przez VPN.

Konfiguracja i wykonanie zasady kontroli dostępu obejmuje:

  • zdefiniować zestaw reguł dopasowania z jednym z 2 powiązanych działań (ZEZWÓL lub ODRZUĆ). z każdą z nich.
  • Dla każdej reguły dopasowania określ adres IP (element SourceAddress).
  • Określ kolejność testowania reguł.
  • Wszystkie reguły dopasowania są stosowane w podanej kolejności. W przypadku dopasowania reguły odpowiednie działanie jest wykonywane, a kolejne reguły dopasowania są pomijane.
    • Jeśli ta sama reguła jest skonfigurowana z działaniami ZEZWALAJ i ODRZUĆ, reguła, która ma wartość zdefiniowane jako pierwsze w kolejności, a następnie uruchamiana jest następna reguła (z drugim działaniem) pominięto.

Jak zasada wybiera adres IP do oceny

W żądaniu adresy IP mogą pochodzić z różnych źródeł. Na przykład parametr Nagłówek wiadomości True-Client-IP może zawierać adres IP, Nagłówek X-Forwarded-For może zawierać co najmniej 1 adres IP. Ta sekcja opisuje, jak skonfigurować zasadę AccessControl, aby ocenić precyzyjne adresy IP, i analizy.

Oto logika, za pomocą której zasada AccessControl decyduje, który adres IP oceń:

1. Nagłówek True-Client-IP

Zasada najpierw sprawdza adres IP w nagłówku True-Client-IP. Jeśli jeśli nagłówek zawiera prawidłowy adres IP, zasada określa ten adres.

2. Nagłówek X-Forwarded-For

Jeśli nie ma nagłówka True-Client-IP lub masz ustawione Element &lt;IgnoreTrueClientIPHeader&gt; w true(prawda), zasada ocenia adresy IP w nagłówku X-Forwarded-For.

Edge automatycznie wypełnia nagłówek X-Forwarded-For adresem IP otrzymanym podczas ostatniego zewnętrznego uzgadniania połączenia TCP (takim jak adres IP klienta lub routera). Jeśli nagłówek zawiera kilka adresów IP, to prawdopodobnie łańcuch serwerów, które przetworzyły żądanie. Lista adresów może również zawierać sfałszowany adres IP. Skąd więc zasady wiemy, które adresy ocenić?

Konfiguracja i zasady organizacji określają, X-Forwarded-For adresów(y) ocenianych przez zasadę.

Najpierw sprawdź, czy właściwość feature.enableMultipleXForwardCheckForACL jest skonfigurowany w organizacji. Za pomocą Pobierz interfejs API organizacji do sprawdzenia. Następnie:

  • Jeśli nie widzisz aplikacji feature.enableMultipleXForwardCheckForACL na swoim na liście właściwości organizacji, oznacza to, że właściwość ma wartość false (fałsz). (domyślnie). Gdy ta właściwość ma wartość Fałsz, zasada ocenia last (ostatni) w nagłówku (widoczny w narzędzia śledzenia), czyli adresem IP, Krawędź odebrana z ostatniego zewnętrznego uzgadniania połączenia TCP.
  • Jeśli feature.enableMultipleXForwardCheckForACL w Twojej organizacji ma wartość Prawda, skonfiguruj &lt;ValidateBasedOn&gt; w celu określenia adresów IP, które są oceniane przez zasadę.

Zmiana właściwości feature.enableMultipleXForwardCheckForACL

Administratorzy organizacji brzegowych mogą używać Zaktualizuj interfejs API organizacji, aby ustawić Usługa feature.enableMultipleXForwardCheckForACL.

Poniższy przykładowy interfejs API ustawia właściwość w Edge dla chmury prywatnej. Jeśli w organizacji są ustawione inne właściwości, pamiętaj, aby je także uwzględnić. W przeciwnym razie zostaną usunięte.

curl -u email:password -X POST -H "Content-type:application/xml" http://host:8080/v1/o/myorg -d \
"<Organization type="trial" name="MyOrganization">
    <DisplayName>MyOrganization</DisplayName>
    <Properties>
        <Property name="feature.enableMultipleXForwardCheckForACL">true</Property>
        <!-- Include other existing properties as well. -->
    </Properties>
</Organization>"

W Edge dla chmury prywatnej, po zmianie wartości usługę feature.enableMultipleXForwardCheckForACL, musisz ponownie uruchomić procesory wiadomości, jak opisano w Uruchom/zatrzymaj/uruchom ponownie poszczególne komponenty.

Wymiary X-Forwarded-For w statystykach Apigee

Edge Analytics zapisuje wartość nagłówka X-Forwarded-For w x_forwarded_for_ip. Aby określić adres IP klienta, który żądania do Edge, użyj wartości z pliku ax_true_client_ip lub ax_resolved_client_ip wymiarów. Zobacz Dane i wymiary Analytics i filtrów.

Maskowanie adresów IP w notacji CIDR

Notacja CIDR (Classless Inter-Domain Routing) to sposób wskazywania zakresu adresów IP przez maskowanie. Dotyczy zarówno IPv4, jak i IPv6. Działa to w następujący sposób. W naszej witrynie użyjemy protokołu IPv4 dla uproszczenia.

Adresy IP to grupy numerów oddzielonych kropkami. W ujęciu binarnym każda grupa jest określona liczba bitów (8 w przypadku IPv4 i 16 w przypadku IPv6). Adres IPv4 198.51.100.1 wygląda tak w pliku binarnym:

11000110.00110011.01100100.00000001

Są to 4 grupy po 8 bitów, czyli łącznie 32 bity. W CIDR możesz wskazać zakres, dodając /number (1-32) do adresu IP w następujący sposób:

198.51.100.1/24

W tym przypadku liczba 24 to liczba, której należy użyć w atrybucie mask. w tej zasadzie.

Ten zapis oznacza, że pierwsze 24 bity zachowaj dokładnie w takiej postaci, w jakiej jest. Pozostałe bity o dowolnej wartości od 0 do 255”. Na przykład:

Zachowaj je bez zmian Możliwe wartości w przypadku ostatniej grupy
198.51.100. 0–255

Zwróć uwagę, że maska występuje na końcu grupy 3. Dzięki temu wszystko będzie ładnie aby utworzyć maskę w ten sposób: 198.51.100.*. W większości przypadków przy użyciu wielokrotności 8 (IPv4) i 16 (IPv6) zapewni Ci odpowiedni poziom maskowania:

IPv4: 8, 16, 24, 32

IPv6: 16, 32, 48, 64, 80, 96, 112, 128

Aby uzyskać bardziej precyzyjną kontrolę, możesz użyć innych liczb, co wymaga użycia drobnego kodu binarnego obliczeń. Oto przykład z maską 30, np. 198.51.100.1/30, gdzie ostatni 1 to 00000001 w formacie binarnym:

Zachowaj je bez zmian Dozwolone wartości
11000110.00110011.01100100.000000 (pierwsze 30 bitów) 00000000, 00000001, 00000010 lub 00000011
198.51.100. 0, 1, 2 lub 3

W tym przykładzie, gdy konfiguracja jest ustawiona na <SourceAddress mask="30">198.51.100.1</SourceAddress>, dozwolone są poniższe adresy IP (lub odrzucona (w zależności od reguł):

  • 198.51.100.0
  • 198.51.100.1
  • 198.51.100.2
  • 198.51.100.3

Odwołanie do elementu

Dokumentacja elementu opisuje elementy i atrybuty zasad kontroli dostępu.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1">
    <DisplayName>Access Control 1</DisplayName>
    <IPRules noRuleMatchAction = "ALLOW">
        <MatchRule action = "ALLOW">
            <SourceAddress mask="32">198.51.100.1</SourceAddress>
        </MatchRule>
        <MatchRule action = "DENY">
            <SourceAddress mask="24">198.51.100.1</SourceAddress>
        </MatchRule>
    </IPRules>
    <ValidateBasedOn>X_FORWARDED_FOR_ALL_IP</ValidateBasedOn>
</AccessControl>

&lt;AccessControl&gt; atrybuty

<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1"> 

W tej tabeli opisano atrybuty wspólne dla wszystkich elementów nadrzędnych zasad:

Atrybut Opis Domyślny Obecność
name

Wewnętrzna nazwa zasady. Wartość atrybutu name może zawierać litery, cyfry, spacje, łączniki, podkreślenia i kropki. Ta wartość nie może przekracza 255 znaków.

Opcjonalnie możesz użyć elementu <DisplayName> do oznaczenia zasady jako edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

Nie dotyczy Wymagane
continueOnError

Ustaw jako false, aby w przypadku niepowodzenia zasady zwracany był błąd. To normalne w przypadku większości zasad.

Ustaw jako true, aby wykonywanie przepływu było kontynuowane nawet po zastosowaniu zasady niepowodzenie.

fałsz Opcjonalnie
enabled

Aby egzekwować zasadę, ustaw wartość true.

Aby wyłączyć zasadę, ustaw wartość false. Te zasady nie będą jest wymuszane nawet wtedy, gdy jest ono połączone z przepływem.

prawda Opcjonalnie
async

Ten atrybut został wycofany.

fałsz Wycofano

&lt;DisplayName&gt; element

Używaj oprócz atrybutu name do oznaczania zasady w edytor proxy interfejsu zarządzania z inną nazwą w języku naturalnym.

<DisplayName>Policy Display Name</DisplayName>
Domyślny

Nie dotyczy

Jeśli pominiesz ten element, atrybut name zasady otrzyma wartość .

Obecność Opcjonalnie
Typ Ciąg znaków

&lt;IgnoreTrueClientIPHeader&gt; element

Jeśli zasada ma wartość Prawda, zasada ignoruje nagłówek True-Client-IP i sprawdza adresy IP w nagłówku X-Forwarded-For, po Skonfigurowany przez Ciebie X-Forwarded-For ocena.

<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1">
    <DisplayName>Access Control-1</DisplayName>
    <IgnoreTrueClientIPHeader>true</IgnoreTrueClientIPHeader>
    ...
</AccessControl>
Domyślny fałsz
Obecność Opcjonalnie
Typ Wartość logiczna

&lt;IPRules&gt; element

Element nadrzędny zawierający reguły, które zezwalają na adresy IP lub je odrzucają. Atrybut noRuleMatchAction pozwala określić sposób obsługi adresów IP, nie są uwzględnione w regułach dopasowania.

<IPRules noRuleMatchAction = "ALLOW">
Domyślny Nie dotyczy
Obecność Opcjonalnie
Typ Nie dotyczy

Atrybuty

Atrybut Opis Typ Domyślny Obecność
noRuleMatchAction
Działanie, które należy wykonać (zezwalając na dostęp lub odmów dostępu), jeśli określona reguła dopasowania nie została zakończona. (niedopasowane).
Prawidłowa wartość: ALLOW lub DENY
Ciąg znaków ZEZWÓL Wymagane

&lt;IPRules&gt;/&lt;MatchRule&gt; element

Działanie, jakie należy podjąć (zezwalając na dostęp lub odmów go), jeśli adres IP pasuje do adresów źródłowych. określić definicję.

<IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "ALLOW">
        <SourceAddress mask="32">198.51.100.1</SourceAddress>
    </MatchRule>
    <MatchRule action = "DENY">
        <SourceAddress mask="24">198.51.100.1</SourceAddress>
    </MatchRule>
</IPRules>
Domyślny Nie dotyczy
Obecność Opcjonalnie
Typ Nie dotyczy

Atrybuty

Atrybut Opis Typ Domyślny Obecność
działanie

Działanie, które należy wykonać (zezwalając na dostęp lub odmów dostępu), jeśli określona reguła dopasowania nie została zakończona. (niedopasowane).

Prawidłowa wartość: ALLOW lub DENY

Ciąg znaków ZEZWÓL Wymagane

&lt;IPRules&gt;/&lt;MatchRule&gt;/&lt;SourceAddress&gt; element

Zakres adresów IP klienta.

Prawidłowa wartość: prawidłowy adres IP (w notacji dziesiętnej z kropkami). Aby działać prawidłowo, użyj operatora mask.

<IPRules noRuleMatchAction = "ALLOW">
    <MatchRule action = "ALLOW">
        <SourceAddress mask="{variable}">198.51.100.1</SourceAddress>
    </MatchRule>
    <MatchRule action = "DENY">
        <SourceAddress mask="24">{variable}</SourceAddress>
    </MatchRule>
</IPRules>

Jak widać w poprzednim przykładzie, element SourceAddress obsługuje też Szablony wiadomości dla mask lub adres IP, który oznacza, że możesz ustawić wartości za pomocą zmiennych, które są obecnie dostępne Przepływ serwera proxy interfejsu API.

Na przykład możesz zapisać adres IP w mapie wartości klucza (KVM) i użyć funkcji zasadę KeyValueMapOperations, aby pobrać adres IP i przypisać go do zmiennej (np. kvm.ip.value). Następnie możesz użyć tej zmiennej jako adresu IP:

<SourceAddress mask="24">{kvm.ip.value}</SourceAddress>

Ustawienie maski i/lub adresu IP za pomocą zmiennej umożliwia swobodną zmianę wartości środowiska wykonawczego bez konieczności modyfikowania i ponownego wdrażania serwera proxy interfejsu API.

Domyślny Nie dotyczy
Obecność Opcjonalnie
Typ Ciąg znaków (tylko pojedynczy adres IP)

Atrybuty

Atrybut Opis Typ Domyślny Obecność
maska

Atrybut mask służy do wskazywania zakresu adresów IP, ani zablokować. Maska jest odpowiednikiem funkcji Zapis CIDR (międzydomenowy routing bez klasy). Na przykład:

<SourceAddress mask="24">198.51.100.1</SourceAddress>

jest odpowiednikiem tej notacji CIDR:

198.51.100.1/24

Prawidłowe wartości:

IPv4: 1–32

IPv6: 1–128

Wartość zerowa (0) jest prawidłowa tylko dla adresu IP 0.0.0.0, a więc jest niepraktyczna.

Ustawianie maski za pomocą zmiennej

Atrybut mask obsługuje też Szablony wiadomości, które oznacza, że możesz ustawić wartość za pomocą zmiennej, która jest obecnie dostępna Przepływ serwera proxy interfejsu API. Na przykład możesz zapisać wartość maski w maszynie wirtualnej i użyć funkcji Zasadę KeyValueMapOperations, aby pobrać maskę i przypisać ją do zmiennej. Aby ustawić maskę IP za pomocą zmiennej, użyj poniższego formatu: zakładając, że zmienna ma nazwę kvm.mask.value:

mask="{kvm.mask.value}"

Liczba całkowita Nie dotyczy Wymagane

&lt;ValidateBasedOn&gt; element

Gdy nagłówek HTTP X-Forwarded-For zawiera kilka adresów IP adresów IP, użyj tego elementu ValidateBasedOn, aby określić, które adresy oceniono.

Użyj tej metody do oceny adresów IP tylko wtedy, gdy masz pewność co do ich poprawności adresów IP, które chcesz ocenić. Na przykład: jeśli chcesz ocenić wszystkie adresów IP w nagłówku X-Forwarded-For, musisz uznać, adresy i/lub skonfigurować kompleksowe reguły ODRZUĆ albo ZEZWALAJ, aby tylko zaufane Adresy IP wywołują serwer proxy interfejsu API.

Adres IP w nagłówku po lewej stronie należy do klienta, a po prawej znajduje się serwer który przekierował żądanie do bieżącej usługi. Adres IP lub adres skrajny z prawej strony to adres odebrany przez Edge podczas ostatniego zewnętrznego uzgadniania połączenia TCP.

Wartość wpisana w tym elemencie pozwala określić, czy wszystkie adresy IP mają być sprawdzane nagłówek (domyślnie), tylko pierwszy adres IP lub tylko ostatni adres IP.

<AccessControl async="false" continueOnError="false" enabled="true" name="Access-Control-1">
    <DisplayName>Access Control 1</DisplayName>
    <IPRules noRuleMatchAction = "ALLOW">
        <MatchRule action = "DENY">
            <SourceAddress mask="32">198.51.100.1</SourceAddress>
        </MatchRule>
    </IPRules>
    <ValidateBasedOn>X_FORWARDED_FOR_ALL_IP</ValidateBasedOn>
</AccessControl>
Domyślny X_FORWARDED_FOR_ALL_IP
Obecność Opcjonalnie
Prawidłowe wartości

X_FORWARDED_FOR_ALL_IP (domyślnie)

X_FORWARDED_FOR_FIRST_IP

X_FORWARDED_FOR_LAST_IP

Schematy

Każdy typ zasad jest definiowany przez schemat XML (.xsd). Dla porównania: schematy zasad są dostępne na GitHubie.

Informacje o błędzie

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause Fix
accesscontrol.IPDeniedAccess 403 The client IP address, or an IP address passed in the API request, matches an IP address specified in the <SourceAddress> element within the <MatchRule> element of the Access Control Policy, and the action attribute of the <MatchRule> element is set to DENY.

Fault variables

These variables are set when a runtime error occurs. For more information, see Variables specific to policy errors.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name Matches "IPDeniedAccess"
acl.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. acl.AC-AllowAccess.failed = true

Example fault response

{
   "fault":{
     "faultstring":"Access Denied for client ip : 52.211.243.3"
      "detail":{
         "errorcode":"accesscontrol.IPDeniedAccess"
      }
   }
}

Example fault rule

<FaultRule name="IPDeniedAccess">
    <Step>
        <Name>AM-IPDeniedAccess</Name>
        <Condition>(fault.name Matches "IPDeniedAccess") </Condition>
    </Step>
    <Condition>(acl.failed = true) </Condition>
</FaultRule>