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 정책은 세 가지 주요 구성 요소로 구성됩니다.
-
효과 - 액세스를 허용할지 거부할지 여부를 결정합니다(
permit또는forbid). -
범위 - 정책이 적용되는 보안 주체, 작업 및 리소스를 지정합니다.
-
조건 - 충족해야 하는 추가 로직을 정의하고(
when또는unless) 도구 파라미터( 컨텍스트를 통해) 및 OAuth 토큰(태그를 통해)을 참조할 수 있습니다.
정책 효과
Cedar 정책은 두 가지 효과를 사용하여 액세스를 제어합니다.
-
permit- 작업 진행 허용 -
forbid- 작업을 거부합니다.
기본 거부
모든 작업은 기본적으로 거부됩니다. 요청과 일치하는 정책이 없는 경우 Cedar는 거부를 반환합니다. 작업을 허용하려면 허용 정책을 명시적으로 작성해야 합니다.
권한 부여 평가
Cedar는 forbid-overrides-permit 평가 모델을 사용합니다.
-
Cedar는 요청에 적용되는 모든 정책을 평가합니다.
-
금지 정책이 일치하는 경우 결과는 거부입니다.
-
하나 이상의 허용 정책이 일치하고 금지 정책이 일치하지 않는 경우 결과는 허용입니다.
-
일치하는 정책이 없는 경우 결과는 거부(기본 거부)입니다.
정책 독립성
각 Cedar 정책은 독립적으로 평가됩니다. 정책의 평가는 다음에만 의존합니다.
-
범위(보안 주체, 작업, 리소스)
-
컨텍스트 및 태그
정책은 다른 정책을 참조하거나 의존하지 않습니다.
정책 평가 알고리즘
요청이 평가되면 정책 엔진은 다음 알고리즘을 사용하여 권한 부여 결정을 결정합니다.
-
요청과 일치하는
forbid정책이 있는 경우 결정은 거부입니다. -
요청과 일치하는
forbid정책이 없고 하나 이상의permit정책이 일치하는 경우 결정은 허용입니다. -
forbid또는permit정책이 요청과 일치하지 않는 경우 결정은 거부입니다.
이 평가 모델은 기본 거부 태세를 적용합니다.
forbid 정책은 절대 허용 결정을 내릴 수 없습니다. forbid 정책의 unless 절은 해당 forbid 정책이 적용되지 않는 조건을 지정하며, 권한을 부여하지 않고 일치하는 permit 정책을 재정의하지 않습니다.