View a markdown version of this page

AWS WAF로 게이트웨이 보호 - Amazon Bedrock AgentCore

AWS WAF로 게이트웨이 보호

Amazon Bedrock AgentCore Gateway와 함께 AWS WAF를 사용하여 웹 악용, 봇 트래픽 및 볼륨 공격으로부터 게이트웨이를 보호할 수 있습니다. AWS WAF는 모든 인바운드 요청이 대상에 도달하기 전에 평가하는 인라인 보안 계층을 제공합니다.

AWS WAF 웹 액세스 제어 목록(웹 ACL)을 게이트웨이와 연결하면 AWS WAF는 모든 인바운드 요청을 검사하고 구성한 규칙을 적용합니다. 블록 규칙과 일치하는 요청은 대상에 도달하기 전에 거부됩니다. 게이트웨이 수준에서 웹 ACL을 게이트웨이당 하나의 웹 ACL과 연결합니다.

AWS WAF가 게이트웨이와 작동하는 방식

웹 ACL을 게이트웨이와 연결하면 다음과 같은 요청 흐름이 발생합니다.

  1. 클라이언트는 게이트웨이 엔드포인트에 요청을 보냅니다.

  2. AWS WAF는 연결된 웹 ACL의 규칙을 기준으로 요청을 평가합니다.

  3. 요청이 허용되는 경우 게이트웨이는 요청을 적절한 대상으로 라우팅합니다.

  4. 요청이 차단되면 게이트웨이는 요청을 전달하지 않고 클라이언트에 오류를 반환합니다.

AWS WAF는 모든 인바운드 요청을 인라인으로 평가합니다. 게이트웨이와 연결된 웹 ACL이 없는 경우 오버헤드가 없으며 AWS WAF 평가가 수행되지 않습니다.

사전 조건

웹 ACL을 게이트웨이에 연결하기 전에 다음 요구 사항을 충족하는지 확인합니다.

  • AWS WAF 웹 ACL은 게이트웨이와 동일한 AWS 리전에 있어야 합니다.

  • 리전 웹 ACL을 사용해야 합니다. CloudFront(글로벌) 웹 ACLs은 지원되지 않습니다.

  • 게이트웨이가 READY 상태여야 합니다.

  • IAM 자격 증명에는 다음 권한이 있어야 합니다.

    • wafv2:AssociateWebACL

    • wafv2:DisassociateWebACL

    • wafv2:GetWebACLForResource

    • wafv2:ListResourcesForWebACL

    • bedrock-agentcore:GatewayAssociateWebACL

    • bedrock-agentcore:GatewayDisassociateWebACL

    • bedrock-agentcore:GatewayGetWebACLForResource

    • bedrock-agentcore:GatewayListResourcesForWebACL

웹 ACL을 게이트웨이와 연결

AWS WAF 콘솔 또는 AWS CLI를 사용하여 웹 ACL을 게이트웨이와 연결할 수 있습니다. 하나의 게이트웨이에는 최대 하나의 웹 ACL이 있을 수 있습니다. 그러나 하나의 웹 ACL을 여러 게이트웨이와 연결할 수 있습니다. 게이트웨이와 연결된 웹 ACL을 변경하려면 새 웹 ACL을 연결합니다. 새 연결이 기존 연결을 대체합니다.

AWS CLI를 사용하여 웹 ACL을 게이트웨이와 연결하려면 다음 명령을 실행합니다.

aws wafv2 associate-web-acl \ --web-acl-arn arn:aws:wafv2:us-east-1:123456789012:regional/webacl/my-web-acl/a1b2c3d4-5678-90ab-cdef-example11111 \ --resource-arn arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway-id

ARN 값을 웹 ACL ARN 및 게이트웨이 ARN으로 바꿉니다.

게이트웨이에서 웹 ACL 연결 해제

게이트웨이에서 AWS WAF 보호를 제거하려면 웹 ACL의 연결을 해제합니다. 게이트웨이를 삭제하려면 먼저 게이트웨이에서 웹 ACL의 연결을 해제해야 합니다.

AWS CLI를 사용하여 게이트웨이에서 웹 ACL의 연결을 해제하려면 다음 명령을 실행합니다.

aws wafv2 disassociate-web-acl \ --resource-arn arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway-id

ARN 값을 게이트웨이 ARN으로 바꿉니다.

AWS WAF 실패 모드 구성

요청 평가 중에 AWS WAF에 연결할 수 없거나 시간이 초과된 경우 게이트웨이는 구성된 실패 모드를 사용하여 요청을 차단할지 허용할지 여부를 결정합니다.

FAIL_CLOSE

게이트웨이는 요청을 차단합니다. 이는 기본 설정 동작입니다.

FAIL_OPEN

게이트웨이는 AWS WAF 평가 없이 대상에 대한 요청을 허용합니다.

실패 모드를 구성하려면 wafConfiguration 파라미터와 함께 UpdateGateway API를 사용합니다.

aws bedrock-agentcore-control update-gateway \ --gateway-identifier my-gateway-id \ --name my-gateway \ --role-arn arn:aws:iam::123456789012:role/my-gateway-service-role \ --authorizer-type CUSTOM_JWT \ --authorizer-configuration '{ "customJWTAuthorizer": { "discoveryUrl": "https://cognito-idp.us-east-1.amazonaws.com/my-user-pool/.well-known/openid-configuration", "allowedClients": ["clientId"] } }' \ --waf-configuration '{"failureMode": "FAIL_OPEN"}'
중요

기본 실패 모드는 보안 우선 접근 방식을 FAIL_CLOSE제공하는 입니다. 워크로드의 보안보다 가용성이 더 중요한 FAIL_OPEN 경우에만를 사용합니다.

AWS WAF 응답 처리

AWS WAF가 요청을 차단하면 오류 응답은 대상 유형에 따라 달라집니다.

MCP 대상

차단된 요청은 코드 -32002 및 메시지와 함께 JSON-RPC 오류를 반환합니다"Authorization error - Request forbidden".

HTTP 및 패스스루 대상

차단된 요청은 HTTP 403을 반환합니다.

AWS WAF가 FAIL_CLOSE 구성된 시간이 초과되면 게이트웨이는 차단된 요청과 동일한 오류를 반환합니다. AWS WAF가 5xx 오류를 반환하면 MCP 대상은 코드-32603와 메시지가 포함된 JSON-RPC 오류를 수신합니다"Internal error - Server error".

AWS WAF 활동 모니터링

Amazon CloudWatch 지표를 사용하여 게이트웨이의 AWS WAF 활동을 모니터링할 수 있습니다.

AWS/Bedrock-AgentCore 네임스페이스에서 사용할 수 있는 지표는 다음과 같습니다.

지표 설명

WafBlocks

기본 및 사용자 지정 블록 응답을 포함하여 AWS WAF에서 차단한 요청 수입니다.

WafFailOpens

AWS WAF에 연결할 수 없고 게이트웨이의 실패 모드가 인 요청 수로FAIL_OPEN, AWS WAF 평가 없이 요청이 대상으로 전달되었습니다. 0이 아닌 값이 지속되면 게이트웨이가 AWS WAF 검사 없이 트래픽을 통과시키고 있음을 나타냅니다.

WafFailCloses

AWS WAF에 연결할 수 없고 게이트웨이의 실패 모드가 FAIL_CLOSE이므로 요청이 거부된 요청 수입니다. 0이 아닌 값이 지속되면 AWS WAF 연결 불가로 인해 게이트웨이가 트래픽을 삭제하고 있음을 나타냅니다.

차단된 요청에 대한 규칙 수준 세부 정보를 가져오려면 AWS WAF 로깅을 사용합니다. 게이트웨이 로그의 요청 ID를 AWS WAF 로그와 연관시킬 수 있습니다.

제한 사항 및 할당량

AWS WAF와 게이트웨이의 통합에는 다음과 같은 할당량 및 제한 사항이 적용됩니다.

  • 계정당 최대 100개의 웹 ACL 연결.

  • AWS WAF 연결은 대상별이 아닌 게이트웨이 수준에만 있습니다. 다른 대상에 다른 규칙을 적용하려면 URI 경로 기반 AWS WAF 규칙을 사용합니다.

  • AWS WAF 통합은 AWS WAF와 AgentCore Gateway를 모두 사용할 수 있는 AWS 리전에서 사용할 수 있습니다.

모범 사례

게이트웨이에서 AWS WAF를 사용할 때는 다음 방법을 사용하는 것이 좋습니다.

  • 알려진 위협에 대한 일반적인 보호를 위해 AWS 관리형 규칙 규칙 그룹을 사용합니다.

  • 속도 기반 규칙을 구현하여 볼륨 공격으로부터 보호합니다.

  • IP 기반 규칙을 사용하여 알려진 소스를 허용하거나 거부합니다.

  • 로 전환하기 전에 COUNT 모드에서 AWS WAF 규칙을 테스트BLOCK하여 트래픽에 미치는 영향을 파악합니다.

  • WafBlocks, WafFailOpensWafFailCloses 지표를 모니터링하여 규칙을 조정하고 문제를 식별합니다.

  • 보안에 민감한 워크로드에는 기본 FAIL_CLOSE 모드를 사용합니다. 가용성이 중요하고 다른 보안 제어가 있는 FAIL_OPEN 경우에만를 사용합니다.