View a markdown version of this page

권한 부여 흐름 - Amazon Bedrock AgentCore

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

권한 부여 흐름

Amazon Bedrock AgentCore Gateway는 수신 요청에 대해 Cedar 정책을 평가합니다. 이 섹션에서는 요청에서 정책 평가로 권한 부여 정보가 흐르는 방법을 설명합니다.

요청 처리

Amazon Bedrock AgentCore Gateway는 각 요청의 두 가지 주요 정보를 처리합니다.

  1. JWT 토큰 - 사용자에 대한 OAuth 클레임을 포함합니다.

    { "sub": "12345678-1234-1234-1234-123456789012", "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_Vg2efaoGO", "username": "refund-agent", "scope": "aws.cognito.signin.user.admin refund:write", "role": "admin", "department": "finance" }
  2. MCP 도구 호출 요청 - 실제 도구 호출:

    { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "RefundTool___process_refund", "arguments": { "orderId": "12345", "amount": 450, "reason": "Defective product" } } }

Cedar 권한 부여 요청

게이트웨이는 두 소스 모두에서 정보를 추출하고 Cedar 권한 부여 요청을 구성합니다.

권한 부여 요청 완료:

{ "principal": "AgentCore::OAuthUser::\"12345678-1234-1234-1234-123456789012\"", "action": "AgentCore::Action::\"RefundTool___process_refund\"", "resource": "AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway\"", "context": { "input": { "orderId": "12345", "amount": 450, "reason": "Defective product" } } }

구성 요소:

위탁자

JWT 토큰의 하위 클레임에서 생성됨:

AgentCore::OAuthUser::"12345678-1234-1234-1234-123456789012"
작업

도구 이름에서 추출:

AgentCore::Action::"RefundTool___process_refund"
Resource

게이트웨이 인스턴스:

AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"
컨텍스트

도구 인수를 포함합니다.

{ "input": { "orderId": "12345", "amount": 450, "reason": "Defective product" } }

Entity Store - JWT 클레임은 OAuthUser 엔터티에 태그로 저장됩니다.

{ "uid": { "type": "AgentCore::OAuthUser", "id": "12345678-1234-1234-1234-123456789012" }, "attrs": { "id": "12345678-1234-1234-1234-123456789012" }, "tags": { "username": "refund-agent", "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_Vg2efaoGO", "scope": "aws.cognito.signin.user.admin refund:write", "role": "admin", "department": "finance" } }

시간 정책에 대한 세션 컨텍스트

x-amzn-bedrock-agentcore-policy-session-id 헤더가 있으면 게이트웨이는 정책 엔진에 전달된 권한 부여 요청에 세션 컨텍스트를 포함합니다. 세션 컨텍스트는 현재 세션에 대해 누적된 작업 기록을 제공합니다. 임시 정책 규칙은이 기록을 사용하여 시간 경과에 따른 제약 조건을 평가합니다.

{ "principal": "AgentCore::OAuthUser::\"12345678-1234-1234-1234-123456789012\"", "action": "AgentCore::Action::\"PaymentTool___transfer_funds\"", "resource": "AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/my-gateway\"", "context": { "input": { "amount": 500, "recipient": "account-789" } }, "sessionId": "12345678-1234-1234-1234-123456789012" }

sessionId 필드는 현재 요청을 세션 기록에 연결합니다. 정책 엔진은 세션 상태를 확인하고 누적된 작업 체인에 대해 해당하는 모든 시간 규칙을 평가합니다.

세션 ID, 세션 수명 주기 및 다중 홉 호출에서 ID가 전파되는 방식에 대한 자세한 내용은 정책 세션 및 ID 전파를 참조하세요.

정책 평가

Cedar는 다음을 평가합니다.

  1. 보안 주체 확인: 보안 주체가 OAuthUser입니까? ✓ (일치)

  2. 작업 확인: 작업이 RefundTool___process_refund입니까? ✓ (일치)

  3. 리소스 확인: 리소스가 환급 게이트웨이입니까? ✓ (일치)

  4. 조건 확인:

    • 보안 주체에 사용자 이름 태그가 있습니까? ✓ (예, JWT에서)

    • username = "refund-agent"입니까? ✓ (예)

    • context.input.amount가 < 500입니까? ✓ (450 < 500)

결과: 허용 - 모든 검사가 통과하면 환불이 승인됩니다.