AWS CLI를 사용하여 AWS WAF IPSet를 생성, 나열 또는 업데이트하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 1월 22일

AWS CLI(AWS 명령줄 인터페이스)를 사용하여 AWS WAF에서 IPSet를 생성, 나열 또는 업데이트하려면 어떻게 해야 합니까?

간략한 설명

IPSet는 요청을 시작한 IP 주소를 기반으로 허용하거나 차단할 웹 요청을 지정합니다. IPSet를 사용하면 AWS CLI로 웹 ACL(액세스 제어 목록)에 포함할 IP 주소 집합을 정의할 수 있습니다.

해결 방법

계속하기 전에 AWS CLI를 설치하거나 최신 버전으로 업그레레이드했는지 확인합니다.

이 해결 방법은 waf-regional CLI(botocore 버전 1.4.85 이상 사용 가능)를 사용하여 특정 AWS 리전에서 IPSet를 생성합니다. Amazon CloudFront에서 글로벌 IPSet를 생성하는 경우, waf CLI를 사용할 수 있습니다.

중요: waf-regional 명령을 사용할 때는 계속하기 전에 AWS CLI의 기본 리전을 확인하고 해당 리전이 IPSet를 생성하고자 하는 위치인지 확인하십시오. 그렇지 않으면 명령에서 IPSet에 대해 올바른 AWS 리전을 지정해야 합니다(--region 옵션 사용).

IPSet 생성

1.    AWS CLI에 로그인합니다.

2.    get-change-token 명령을 사용하여 변경 토큰을 생성합니다.

참고: 변경 토큰은 애플리케이션이 충돌하는 요청을 AWS WAF에 제출하지 못하도록 합니다. 변경 토큰을 가져와서 AWS WAF 객체 생성, 업데이트 또는 삭제 요청에 포함시켜야 합니다. 각 요청은 고유한 변경 토큰을 사용해야 합니다. 자세한 내용은 GetChangeToken을 참조하십시오.

예제 출력:

$ aws waf-regional get-change-token
{
    "ChangeToken": "96836241-b667-4f0a-a655-e4bc49eaa2c4"
}

3.    create-ip-set 명령을 사용하여 IPSet를 생성합니다. 예제 출력:

$ aws waf-regional create-ip-set --name test_ipset --change-token 96836241-b667-4f0a-a655-e4bc49eaa2c4
{
    "IPSet": {
        "IPSetId": " bd37ef8c-102b-4d7a-9532-80fb97e4c281",
        "Name": "test_ipset",
        "IPSetDescriptors": []
    },
    "ChangeToken": "96836241-b667-4f0a-a655-e4bc49eaa2c4"
}

IPSes 나열

IPSet를 나열하려면 list-ip-sets 명령을 사용합니다. 응답은 IPSetSummary 객체의 배열을 반환합니다.

예제 출력:

$ aws waf-regional list-ip-sets
{
    "IPSets": [
        {
            "IPSetId": "bd37ef8c-102b-4d7a-9532-80fb97e4c281",
            "Name": "test-ipset"
        }
    ],
    "NextMarker": "bd37ef8c-102b-4d7a-9532-80fb97e4c281"
}

참고: Limit에 값을 지정하고 이 값보다 많은 IPSet가 있으면 AWS WAF가 NextMarker 값을 반환합니다. Request Parameters를 참조하십시오.

IPSet 업데이트

IPSet를 업데이트하려면 update-ip-set 명령을 간편 구문 또는 JSON 파일과 함께 사용합니다.

참고: API 호출당 최대 1,000개의 IP 주소를 업데이트할 수 있습니다. 

간편 구문 방식:

$ aws waf-regional update-ip-set --ip-set-id bd37ef8c-102b-4d7a-9532-80fb97e4c281 --change-token c47ddcba-d128-4ec9-acd6-ce981c6655c5 --updates Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.1/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.2/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.3/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.4/32"}' Action="INSERT",IPSetDescriptor='{Type="IPV4",Value="192.168.2.5/32"}'
{
    "ChangeToken": " c47ddcba-d128-4ec9-acd6-ce981c6655c5"
}

JSON 파일 방식:

1.    이전 섹션 IPSet 생성에서 설명한 대로 get-change-token 명령을 사용하여 변경 토큰을 생성합니다.

2.    선호하는 편집기를 사용하여 업데이트 요청 구문으로 JSON 파일(예: test.json)을 생성합니다. 예:

$ nano test.json
{
       "ChangeToken": "b3d8178a-666a-484a-92af-1dcd02cafcfa",
       "IPSetId": "bd37ef8c-102b-4d7a-9532-80fb97e4c281",
       "Updates": [{
              "Action": "DELETE",
              "IPSetDescriptor": {
                      "Type": "IPV4",
                      "Value": "192.168.2.5/32"
              }
       }]
}

3.    update-ip-set 명령을 사용하여 방금 생성한 JSON 파일로 IPSet에 대한 요청된 변경을 수행합니다. 예:

$ aws waf-regional update-ip-set --ip-set-id bd37ef8c-102b-4d7a-9532-80fb97e4c281 --cli-input-json file:///home/ec2-user/test.json
{
    "ChangeToken": "b3d8178a-666a-484a-92af-1dcd02cafcfa"
}

4.    get-ip-set 명령을 사용하여 IPSet에 대해 요청한 변경 사항을 확인합니다. 예:

$ aws waf-regional get-ip-set --ip-set-id bd37ef8c-102b-4d7a-9532-80fb97e4c281
{
    "IPSet": {
        "IPSetId": "bd37ef8c-102b-4d7a-9532-80fb97e4c281",
        "Name": "test-ipset",
        "IPSetDescriptors": [
            {
                "Type": "IPV4",
                "Value": "192.168.2.2/32"
            },
            {
                "Type": "IPV4",
                "Value": "192.168.2.3/32"
            },
            {
                "Type": "IPV4",
                "Value": "192.168.2.1/32"
            },
            {
                "Type": "IPV4",
                "Value": "192.168.2.4/32"
            }
        ]
    }
}

AWS WAF(지원되는 API 작업)

IP 일치 조건 작업(AWS WAF 콘솔)

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?