AWS WAF, AWS Firewall Manager 및 AWS Shield Advanced
개발자 가이드 (API 버전 2015-08-24)

요청 인증

AWS에서 SDK를 제공하는 언어를 사용하는 경우 SDK를 사용하는 것이 좋습니다. 모든 AWS SDK는 요청 서명 프로세스를 대폭 간소화하며 AWS WAF 또는 Shield Advanced API를 사용할 때에 비해 상당한 양의 시간을 절약할 수 있습니다. 또한 SDK는 개발 환경에 쉽게 통합되며 관련 명령에 쉽게 액세스할 수 있습니다.

AWS WAF 및 Shield Advanced에서는 요청을 서명하여 전송하는 모든 요청을 인증해야 합니다. 요청에 서명하려면 입력을 바탕으로 해시 값을 반환하는 암호화 해시 함수를 사용하여 디지털 서명을 계산합니다. 입력에는 요청 텍스트와 보안 액세스 키가 포함됩니다. 해시 함수는 요청에 서명으로 포함하는 해시 값을 반환합니다. 서명은 요청에서 Authorization 헤더의 일부입니다.

AWS WAF 또는 Shield Advanced는 요청을 수신한 후, 사용자가 요청에 서명할 때와 동일한 해시 함수 및 입력을 사용하여 서명을 재계산합니다. 결과 서명이 요청 서명과 일치할 경우 AWS WAF 또는 Shield Advanced가 요청을 처리합니다. 그렇지 않으면 요청이 거부됩니다.

AWS WAF 또는 Shield Advanced는 AWS 서명 버전 4를 사용하여 인증합니다. 서명을 계산하기 위한 프로세스는 다음 세 작업으로 나뉠 수 있습니다.

작업 1: 정식 요청 생성

Amazon Web Services 일반 참조작업 1: 서명 버전 4에 대한 표준 요청 생성에 설명되어 있는 대로 정규 형식으로 HTTP 요청을 생성합니다.

작업 2: 서명할 문자열 생성

암호화 해시 함수에 대한 입력 값 중 하나로 사용할 문자열을 만듭니다. 서명할 문자열은 다음 값을 연결한 문자열입니다.

  • 해시 알고리즘의 이름

  • 요청 날짜

  • 자격 증명 범위 문자열

  • 이전 작업에서 정규화된 요청

자격 증명 범위 문자열 자체는 날짜, 지역 및 서비스 정보를 연결한 것입니다.

X-Amz-Credential 파라미터에 대해 다음을 지정합니다.

  • 요청 us-east-2을 전송할 엔드포인트에 대한 코드

  • 서비스 약어에 대한 waf

예:

X-Amz-Credential=AKIAIOSFODNN7EXAMPLE/20130501/us-east-2/waf/aws4_request

작업 3: 서명 생성

두 개의 입력 문자열을 허용하는 암호화 해시 함수를 사용하여 요청에 대한 서명을 생성합니다.

  • 작업 2의 서명할 문자열.

  • 파생된 키 파생된 키는 보안 액세스 키로 시작해서 자격 증명 범위 문자열을 사용하여 일련의 해시 기반 메시지 인증 코드(HMAC)를 만들어 계산됩니다.