AWS CLI를 사용한 AWS WAF Classic Regional 예제 - AWS Command Line Interface

AWS CLI를 사용한 AWS WAF Classic Regional 예제

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

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

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

주제

작업

다음 코드 예시에서는 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 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 레퍼런스에서 AssociateWebAcl을 참조하세요.

다음 코드 예시에서는 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" ] } }

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

AWS CLI

바이트 일치 세트 업데이트

다음 update-byte-match-set 명령은 ByteMatchSetByteMatchTuple 객체(필터)를 삭제합니다. 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 개발자 안내서의 문자열 일치 조건 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 레퍼런스의 UpdateByteMatchSet를 참조하세요.

다음 코드 예시에서는 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 일치 조건 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 레퍼런스UpdateIpSet를 참조하세요.

다음 코드 예시에서는 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 개발자 안내서의 규칙 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 레퍼런스의 UpdateRule을 참조하세요.

다음 코드 예시에서는 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 개발자 안내서의 크기 제약 조건 작업을 참조하세요.

다음 코드 예시에서는 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={FieldToMatch={Type="QUERY_STRING"},TextTransformation="URL_DECODE"}'

자세한 내용은 AWS WAF 개발자 안내서의 SQL 명령어 삽입 일치 조건 작업을 참조하세요.

다음 코드 예시에서는 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 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 레퍼런스의 UpdateWebAcl을 참조하세요.

다음 코드 예시에서는 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 개발자 안내서의 교차 사이트 스크립팅 일치 조건 작업을 참조하세요.

  • API 세부 정보는 AWS CLI 명령 레퍼런스의 UpdateXssMatchSet를 참조하세요.