View a markdown version of this page

Cedar 정책 이해 - Amazon Bedrock AgentCore

Cedar 정책 이해

AgentCore의 정책은 Cedar 정책을 사용하여 AgentCore Gateway 도구에 대한 액세스를 제어합니다. 이 섹션에서는 Cedar 정책 구조, 평가 의미 체계 및 주요 개념에 대해 설명합니다.

예제 정책

다음과 같은 요구 사항이 있는 환급 처리 도구를 고려해 보세요.

  • 사용자 "John"만 환급을 처리할 수 있습니다.

  • 환불은 500 USD 이하로 제한됩니다.

이러한 요구 사항을 적용하는 Cedar 정책:

permit( principal is AgentCore::OAuthUser, action == AgentCore::Action::"RefundTool___process_refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:your-region:your-account-id:gateway/refund-gateway" ) when { principal.hasTag("username") && principal.getTag("username") == "John" && context.input.amount < 500 };

이 정책은 사용자가 "John"이고 환급 금액이 500 USD 미만인 경우에만 환급 처리를 허용합니다.

정책 구조

Cedar 정책은 세 가지 주요 구성 요소로 구성됩니다.

  1. 효과 - 액세스를 허용할지 거부할지 여부를 결정합니다( permit 또는 forbid ).

  2. 범위 - 정책이 적용되는 보안 주체, 작업 및 리소스를 지정합니다.

  3. 조건 - 충족해야 하는 추가 로직을 정의하고( when 또는 unless ) 도구 파라미터( 컨텍스트를 통해) 및 OAuth 토큰(태그를 통해)을 참조할 수 있습니다.

정책 효과

Cedar 정책은 두 가지 효과를 사용하여 액세스를 제어합니다.

  • permit - 작업 진행 허용

  • forbid - 작업을 거부합니다.

기본 거부

모든 작업은 기본적으로 거부됩니다. 요청과 일치하는 정책이 없는 경우 Cedar는 거부를 반환합니다. 작업을 허용하려면 허용 정책을 명시적으로 작성해야 합니다.

권한 부여 평가

Cedar는 forbid-overrides-permit 평가 모델을 사용합니다.

  1. Cedar는 요청에 적용되는 모든 정책을 평가합니다.

  2. 금지 정책이 일치하는 경우 결과는 거부입니다.

  3. 하나 이상의 허용 정책이 일치하고 금지 정책이 일치하지 않는 경우 결과는 허용입니다.

  4. 일치하는 정책이 없는 경우 결과는 거부(기본 거부)입니다.

정책 독립성

각 Cedar 정책은 독립적으로 평가됩니다. 정책의 평가는 다음에만 의존합니다.

  • 범위(보안 주체, 작업, 리소스)

  • 컨텍스트 및 태그

정책은 다른 정책을 참조하거나 의존하지 않습니다.

정책 평가 알고리즘

요청이 평가되면 정책 엔진은 다음 알고리즘을 사용하여 권한 부여 결정을 결정합니다.

  1. 요청과 일치하는 forbid 정책이 있는 경우 결정은 거부입니다.

  2. 요청과 일치하는 forbid 정책이 없고 하나 이상의 permit 정책이 일치하는 경우 결정은 허용입니다.

  3. forbid 또는 permit 정책이 요청과 일치하지 않는 경우 결정은 거부입니다.

이 평가 모델은 기본 거부 태세를 적용합니다.

forbid 정책은 절대 허용 결정을 내릴 수 없습니다. forbid 정책의 unless 절은 해당 forbid 정책이 적용되지 않는 조건을 지정하며, 권한을 부여하지 않고 일치하는 permit 정책을 재정의하지 않습니다.