

**Memperkenalkan pengalaman konsol baru untuk AWS WAF**

Anda sekarang dapat menggunakan pengalaman yang diperbarui untuk mengakses AWS WAF fungsionalitas di mana saja di konsol. Untuk detail selengkapnya, lihat [Bekerja dengan konsol](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan pernyataan aturan logis di AWS WAF
<a name="waf-rule-statements-logical"></a>

Bagian ini menjelaskan apa itu pernyataan aturan logis dan cara kerjanya.

Gunakan pernyataan aturan logis untuk menggabungkan pernyataan lain atau meniadakan hasilnya. Setiap pernyataan aturan logis membutuhkan setidaknya satu pernyataan bersarang.

Untuk secara logis menggabungkan atau meniadakan hasil pernyataan aturan, Anda menyarangkan pernyataan di bawah pernyataan aturan logis. 

Pernyataan aturan logis adalah nestable. Anda dapat menyarangkannya di dalam pernyataan aturan logis lainnya dan menggunakannya dalam pernyataan cakupan ke bawah. Untuk informasi tentang pernyataan cakupan bawah, lihat. [Menggunakan pernyataan scope-down di AWS WAF](waf-rule-scope-down-statements.md)

**catatan**  
Editor visual di konsol mendukung satu tingkat pernyataan aturan bersarang, yang berfungsi untuk banyak kebutuhan. Untuk membuat lebih banyak level, edit representasi JSON dari aturan di konsol atau gunakan. APIs 

Tabel ini menjelaskan pernyataan aturan logis dan memberikan pedoman untuk menghitung paket perlindungan (web ACL) penggunaan unit kapasitas (WCU) untuk masing-masing. Untuk informasi tentang WCUs, lihat[Unit kapasitas ACL Web (WCUs) di AWS WAF](aws-waf-capacity-units.md). 


| Pernyataan Logis  | Deskripsi | WCUs | 
| --- | --- | --- | 
| [ANDlogika](waf-rule-statement-type-and.md) | Menggabungkan pernyataan bersarang dengan AND logika. | Berdasarkan pernyataan bersarang | 
|  [NOTlogika](waf-rule-statement-type-not.md)  |  Menegasikan hasil pernyataan bersarang.  |  Berdasarkan pernyataan bersarang  | 
| [ORlogika](waf-rule-statement-type-or.md) | Menggabungkan pernyataan bersarang dengan OR logika. | Berdasarkan pernyataan bersarang | 

# ANDpernyataan aturan
<a name="waf-rule-statement-type-and"></a>

Pernyataan AND aturan menggabungkan pernyataan bersarang dengan AND operasi logis, sehingga semua pernyataan bersarang harus cocok agar AND pernyataan tersebut cocok. Ini membutuhkan setidaknya dua pernyataan bersarang. 

## Karakteristik pernyataan aturan
<a name="and-rule-statement-characteristics"></a>

**Nestable** - Anda dapat membuat sarang jenis pernyataan ini. 

**WCUs**— Tergantung pada pernyataan bersarang.

## Di mana menemukan pernyataan aturan ini
<a name="and-rule-statement-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **Jika permintaan**, pilih **cocok dengan semua pernyataan (AND)**, lalu isi pernyataan bersarang. 
+ **API** — [AndStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_AndStatement.html)

## Contoh
<a name="and-rule-statement-examples"></a>

Daftar berikut menunjukkan penggunaan AND dan pernyataan aturan NOT logis untuk menghilangkan positif palsu dari kecocokan untuk pernyataan serangan injeksi SQL. Untuk contoh ini, misalkan kita dapat menulis pernyataan pencocokan byte tunggal untuk mencocokkan permintaan yang menghasilkan positif palsu. 

Pernyataan AND cocok untuk permintaan yang tidak cocok dengan pernyataan pencocokan byte dan yang cocok dengan pernyataan serangan injeksi SQL. 

```
{
      "Name": "SQLiExcludeFalsePositives",
      "Priority": 0,
      "Statement": {
        "AndStatement": {
          "Statements": [
            {
              "NotStatement": {
                "Statement": {
                  "ByteMatchStatement": {
                    "SearchString": "string identifying a false positive",
                    "FieldToMatch": {
                      "Body": {
                        "OversizeHandling": "MATCH"
                      }
                    },
                    "TextTransformations": [
                      {
                        "Priority": 0,
                        "Type": "NONE"
                      }
                    ],
                    "PositionalConstraint": "CONTAINS"
                  }
                }
              }
            },
            {
              "SqliMatchStatement": {
                "FieldToMatch": {
                  "Body": {
                    "OversizeHandling": "MATCH"
                  }
                },
                "TextTransformations": [
                  {
                    "Priority": 0,
                    "Type": "NONE"
                  }
                ]
              }
            }
          ]
        }
      },
      "Action": {
        "Block": {}
      },
      "VisibilityConfig": {
        "SampledRequestsEnabled": true,
        "CloudWatchMetricsEnabled": true,
        "MetricName": "SQLiExcludeFalsePositives"
      }
    }
```

Menggunakan editor visual aturan konsol, Anda dapat membuat pernyataan non-logis atau NOT pernyataan di bawah AND pernyataan OR atau. Penyarangan NOT pernyataan ditunjukkan pada contoh sebelumnya. 

Menggunakan editor visual aturan konsol, Anda dapat membuat sarang sebagian besar pernyataan nestable di bawah pernyataan aturan logis, seperti yang ditunjukkan pada contoh sebelumnya. Anda tidak dapat menggunakan editor visual untuk membuat sarang OR atau AND pernyataan. Untuk mengonfigurasi jenis nesting ini, Anda perlu memberikan pernyataan aturan Anda di JSON. Misalnya, daftar aturan JSON berikut menyertakan OR pernyataan bersarang di dalam pernyataan. AND 

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```

# NOTpernyataan aturan
<a name="waf-rule-statement-type-not"></a>

Pernyataan NOT aturan secara logis meniadakan hasil pernyataan bersarang tunggal, sehingga pernyataan bersarang tidak boleh cocok untuk NOT pernyataan yang cocok, dan sebaliknya. Ini membutuhkan satu pernyataan bersarang. 

Misalnya, jika Anda ingin memblokir permintaan yang tidak berasal dari negara tertentu, buat NOT pernyataan dengan tindakan yang disetel ke blokir, dan sarang pernyataan kecocokan geografis yang menentukan negara. 

## Karakteristik pernyataan aturan
<a name="not-rule-statement-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— Tergantung pada pernyataan bersarang.

## Di mana menemukan pernyataan aturan ini
<a name="not-rule-statement-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **Jika permintaan**, pilih **tidak cocok dengan pernyataan (TIDAK)**, lalu isi pernyataan bersarang.
+ **API** — [NotStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_NotStatement.html)

# ORpernyataan aturan
<a name="waf-rule-statement-type-or"></a>

Pernyataan OR aturan menggabungkan pernyataan bersarang dengan OR logika, jadi salah satu pernyataan bersarang harus cocok agar OR pernyataan tersebut cocok. Ini membutuhkan setidaknya dua pernyataan bersarang. 

Misalnya, jika Anda ingin memblokir permintaan yang berasal dari negara tertentu atau yang berisi string kueri tertentu, Anda dapat membuat OR pernyataan dan membuat pernyataan kecocokan geografis untuk negara dan pernyataan kecocokan string untuk string kueri. 

Jika sebaliknya Anda ingin memblokir permintaan yang *tidak* berasal dari negara tertentu atau yang berisi string kueri tertentu, Anda akan memodifikasi OR pernyataan sebelumnya untuk menyarangkan pernyataan kecocokan geografis satu tingkat lebih rendah, di dalam NOT pernyataan. Tingkat bersarang ini mengharuskan Anda untuk menggunakan pemformatan JSON, karena konsol hanya mendukung satu tingkat bersarang.

## Karakteristik pernyataan aturan
<a name="or-rule-statement-characteristics"></a>

**Nestable** - Anda dapat membuat jenis pernyataan ini. 

**WCUs**— Tergantung pada pernyataan bersarang.

## Di mana menemukan pernyataan aturan ini
<a name="or-rule-statement-where-to-find"></a>
+ **Pembuat aturan** di konsol — Untuk **Jika permintaan**, pilih **kecocokan setidaknya salah satu pernyataan (OR)**, lalu isi pernyataan bersarang. 
+ **API** — [OrStatement](https://docs.aws.amazon.com/waf/latest/APIReference/API_OrStatement.html)

**Contoh**  
Daftar berikut menunjukkan penggunaan OR untuk menggabungkan dua pernyataan lainnya. ORPernyataan tersebut cocok jika salah satu pernyataan bersarang cocok. 

```
{
  "Name": "neitherOfTwo",
  "Priority": 1,
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "neitherOfTwo"
  },
  "Statement": {
    "OrStatement": {
      "Statements": [
        {
          "GeoMatchStatement": {
            "CountryCodes": [
              "CA"
            ]
          }
        },
        {
          "IPSetReferenceStatement": {
            "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/ipset/test-ip-set-22222222/33333333-4444-5555-6666-777777777777"
          }
        }
      ]
    }
  }
}
```

Menggunakan editor visual aturan konsol, Anda dapat membuat sarang sebagian besar pernyataan nestable di bawah pernyataan aturan logis, tetapi Anda tidak dapat menggunakan editor visual untuk membuat sarang OR atau AND pernyataan. Untuk mengonfigurasi jenis nesting ini, Anda perlu memberikan pernyataan aturan Anda di JSON. Misalnya, daftar aturan JSON berikut menyertakan OR pernyataan bersarang di dalam pernyataan. AND 

```
{
  "Name": "match_rule",
  "Priority": 0,
  "Statement": {
    "AndStatement": {
      "Statements": [
        {
          "LabelMatchStatement": {
            "Scope": "LABEL",
            "Key": "awswaf:managed:aws:bot-control:bot:category:monitoring"
          }
        },
        {
          "NotStatement": {
            "Statement": {
              "LabelMatchStatement": {
                "Scope": "LABEL",
                "Key": "awswaf:managed:aws:bot-control:bot:name:pingdom"
              }
            }
          }
        },
        {
          "OrStatement": {
            "Statements": [
              {
                "GeoMatchStatement": {
                  "CountryCodes": [
                    "JM",
                    "JP"
                  ]
                }
              },
              {
                "ByteMatchStatement": {
                  "SearchString": "JCountryString",
                  "FieldToMatch": {
                    "Body": {}
                  },
                  "TextTransformations": [
                    {
                      "Priority": 0,
                      "Type": "NONE"
                    }
                  ],
                  "PositionalConstraint": "CONTAINS"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": {
    "SampledRequestsEnabled": true,
    "CloudWatchMetricsEnabled": true,
    "MetricName": "match_rule"
  }
}
```