

# AWS WAF Classic Regional를 사용한 예시AWS CLI
<a name="cli_waf-regional_code_examples"></a>

다음 코드 예시에서는 AWS WAF Classic Regional에서 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다.

*작업*은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.

각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.

**Topics**
+ [작업](#actions)

## 작업
<a name="actions"></a>

### `associate-web-acl`
<a name="waf-regional_AssociateWebAcl_cli_topic"></a>

다음 코드 예시는 `associate-web-acl`의 사용 방법을 보여줍니다.

**AWS CLI**  
**웹 ACL과 리소스 연결**  
다음 `associate-web-acl` 명령은 web-acl-id에서 지정한 웹 ACL을 resource-arn에서 지정한 리소스와 연결합니다. 리소스 ARN은 애플리케이션 로드 밸런서 또는 API 게이트웨이를 참조할 수 있습니다.  

```
aws waf-regional associate-web-acl \
    --web-acl-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --resource-arn 12cs345-67cd-890b-1cd2-c3a4567d89f1
```
자세한 내용은 **AWS WAF 개발자 안내서의 [웹 ACL 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-working-with.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 레퍼런스에서 [AssociateWebAcl](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/associate-web-acl.html)을 참조하세요.

### `put-logging-configuration`
<a name="waf-regional_PutLoggingConfiguration_cli_topic"></a>

다음 코드 예시는 `put-logging-configuration`의 사용 방법을 보여줍니다.

**AWS CLI**  
**지정된 Kinesis Firehose 스트림 ARN을 사용하여 웹 ACL ARN에 대한 로깅 구성 생성**  
다음 `put-logging-configuration` 예제에서는 `us-east-1` 리전에서 ALB/APIGateway를 사용하는 WAF에 대한 로깅 구성을 표시합니다.  

```
aws waf-regional put-logging-configuration \
    --logging-configuration ResourceArn=arn:aws:waf-regional:us-east-1:123456789012:webacl/3bffd3ed-fa2e-445e-869f-a6a7cf153fd3,LogDestinationConfigs=arn:aws:firehose:us-east-1:123456789012:deliverystream/aws-waf-logs-firehose-stream,RedactedFields=[] \
    --region us-east-1
```
출력:  

```
{
    "LoggingConfiguration": {
        "ResourceArn": "arn:aws:waf-regional:us-east-1:123456789012:webacl/3bffd3ed-fa2e-445e-869f-a6a7cf153fd3",
        "LogDestinationConfigs": [
            "arn:aws:firehose:us-east-1:123456789012:deliverystream/aws-waf-logs-firehose-stream"
        ]
    }
}
```
+  API 세부 정보는 **AWS CLI 명령 레퍼런스의 [PutLoggingConfiguration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/put-logging-configuration.html)을 참조하세요.

### `update-byte-match-set`
<a name="waf-regional_UpdateByteMatchSet_cli_topic"></a>

다음 코드 예시는 `update-byte-match-set`의 사용 방법을 보여줍니다.

**AWS CLI**  
**바이트 일치 세트 업데이트**  
다음 `update-byte-match-set` 명령은 `ByteMatchSet`의 `ByteMatchTuple` 객체(필터)를 삭제합니다. `updates` 값에는 큰따옴표가 포함되어 있으므로 값을 작은따옴표로 묶어야 합니다.  

```
aws waf-regional update-byte-match-set \
    --byte-match-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 \
    --updates 'Action="DELETE",ByteMatchTuple={FieldToMatch={Type="HEADER",Data="referer"},TargetString="badrefer1",TextTransformation="NONE",PositionalConstraint="CONTAINS"}'
```
자세한 내용은 **AWS WAF 개발자 안내서의 [문자열 일치 조건 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-string-conditions.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 레퍼런스의 [UpdateByteMatchSet](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/update-byte-match-set.html)를 참조하세요.

### `update-ip-set`
<a name="waf-regional_UpdateIpSet_cli_topic"></a>

다음 코드 예시는 `update-ip-set`의 사용 방법을 보여줍니다.

**AWS CLI**  
**IP 세트 업데이트**  
다음 `update-ip-set` 명령은 IPv4 주소로 IPSet를 업데이트하고 IPv6 주소를 삭제합니다. `change-token` 명령을 실행하여 `get-change-token`의 값을 가져옵니다. 업데이트 값에는 큰따옴표가 포함되어 있으므로 값을 작은따옴표로 묶어야 합니다.  

```
aws waf update-ip-set \
    --ip-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 \
    --updates 'Action="INSERT",IPSetDescriptor={Type="IPV4",Value="12.34.56.78/16"},Action="DELETE",IPSetDescriptor={Type="IPV6",Value="1111:0000:0000:0000:0000:0000:0000:0111/128"}'
```
또는 JSON 파일을 사용하여 입력을 지정할 수도 있습니다. 예제:  

```
aws waf-regional update-ip-set \
    --ip-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1  \
    --updates file://change.json
```
`change.json`의 콘텐츠  

```
[
    {
        "Action": "INSERT",
        "IPSetDescriptor":
        {
            "Type": "IPV4",
            "Value": "12.34.56.78/16"
        }
    },
    {
        "Action": "DELETE",
        "IPSetDescriptor":
        {
            "Type": "IPV6",
            "Value": "1111:0000:0000:0000:0000:0000:0000:0111/128"
        }
    }
]
```
자세한 내용은 **AWS WAF 개발자 안내서의 [IP 일치 조건 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-ip-conditions.html)을 참조하세요.  
+  API 세부 정보는 *AWS CLI 명령 레퍼런스*의 [UpdateIpSet](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/update-ip-set.html)를 참조하세요.

### `update-rule`
<a name="waf-regional_UpdateRule_cli_topic"></a>

다음 코드 예시는 `update-rule`의 사용 방법을 보여줍니다.

**AWS CLI**  
**규칙 업데이트**  
다음 `update-rule` 명령은 규칙에서 `Predicate` 객체를 삭제합니다. `updates` 값에는 큰따옴표가 포함되어 있으므로 전체 값을 작은따옴표로 묶어야 합니다.  

```
aws waf-regional update-rule \
    --rule-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 \
    --updates 'Action="DELETE",Predicate={Negated=false,Type="ByteMatch",DataId="MyByteMatchSetID"}'
```
자세한 내용은 **AWS WAF 개발자 안내서의 [규칙 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-rules.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 레퍼런스의 [UpdateRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/update-rule.html)을 참조하세요.

### `update-size-constraint-set`
<a name="waf-regional_UpdateSizeConstraintSet_cli_topic"></a>

다음 코드 예시는 `update-size-constraint-set`의 사용 방법을 보여줍니다.

**AWS CLI**  
**크기 제약 조건 세트 업데이트**  
다음 `update-size-constraint-set` 명령은 크기 제약 조건 세트에서 SizeConstraint` 객체(필터)를 삭제합니다. `updates` 값에는 큰따옴표가 포함되어 있으므로 전체 값을 작은따옴표로 묶어야 합니다.  

```
aws waf-regional update-size-constraint-set \
    --size-constraint-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 \
    --updates 'Action="DELETE",SizeConstraint={FieldToMatch={Type="QUERY_STRING"},TextTransformation="NONE",ComparisonOperator="GT",Size=0}'
```
자세한 내용은 **AWS WAF 개발자 안내서의 [크기 제약 조건 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-size-conditions.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 레퍼런스의 [UpdateSizeConstraintSet](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/update-size-constraint-set.html)를 참조하세요.

### `update-sql-injection-match-set`
<a name="waf-regional_UpdateSqlInjectionMatchSet_cli_topic"></a>

다음 코드 예시는 `update-sql-injection-match-set`의 사용 방법을 보여줍니다.

**AWS CLI**  
**SQL 인젝션 일치 세트 업데이트**  
다음 `update-sql-injection-match-set` 명령은 SQL 인젝션 일치 세트의 `SqlInjectionMatchTuple` 객체(필터)를 삭제합니다. `updates` 값에는 큰따옴표가 포함되어 있으므로 전체 값을 작은따옴표로 묶어야 합니다.  
aws waf-regional update-sql-injection-match-set --sql-injection-match-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 --updates 'Action="DELETE",SqlInjectionMatchTuple=\$1FieldToMatch=\$1Type="QUERY\$1STRING"\$1,TextTransformation="URL\$1DECODE"\$1'  
자세한 내용은 **AWS WAF 개발자 안내서의 [SQL 인젝션 일치 조건 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-sql-conditions.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 레퍼런스의 [UpdateSqlInjectionMatchSet](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/update-sql-injection-match-set.html)를 참조하세요.

### `update-web-acl`
<a name="waf-regional_UpdateWebAcl_cli_topic"></a>

다음 코드 예시는 `update-web-acl`의 사용 방법을 보여줍니다.

**AWS CLI**  
**웹 ACL 업데이트**  
다음 `update-web-acl` 명령은 WebACL 에서 `ActivatedRule` 객체를 삭제합니다. `updates` 값에는 큰따옴표가 포함되어 있으므로 전체 값을 작은따옴표로 묶어야 합니다.  

```
aws waf-regional update-web-acl \
    --web-acl-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 \
    --updates Action="DELETE",ActivatedRule='{Priority=1,RuleId="WAFRule-1-Example",Action={Type="ALLOW"},Type="ALLOW"}'
```
자세한 내용은 **AWS WAF 개발자 안내서의 [웹 ACL 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-working-with.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 레퍼런스의 [UpdateWebAcl](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/update-web-acl.html)을 참조하세요.

### `update-xss-match-set`
<a name="waf-regional_UpdateXssMatchSet_cli_topic"></a>

다음 코드 예시는 `update-xss-match-set`의 사용 방법을 보여줍니다.

**AWS CLI**  
**XSSMatchSet 업데이트**  
다음 `update-xss-match-set` 명령은 `XssMatchSet`에서 `XssMatchTuple` 객체(필터)를 삭제합니다. `updates` 값에는 큰따옴표가 포함되어 있으므로 전체 값을 작은따옴표로 묶어야 합니다.  

```
aws waf-regional update-xss-match-set \
    --xss-match-set-id a123fae4-b567-8e90-1234-5ab67ac8ca90 \
    --change-token 12cs345-67cd-890b-1cd2-c3a4567d89f1 \
    --updates 'Action="DELETE",XssMatchTuple={FieldToMatch={Type="QUERY_STRING"},TextTransformation="URL_DECODE"}'
```
자세한 내용은 **AWS WAF 개발자 안내서의 [교차 사이트 스크립팅 일치 조건 작업](https://docs.aws.amazon.com/waf/latest/developerguide/web-acl-xss-conditions.html)을 참조하세요.  
+  API 세부 정보는 **AWS CLI 명령 레퍼런스의 [UpdateXssMatchSet](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/waf-regional/update-xss-match-set.html)를 참조하세요.