View a markdown version of this page

정책 범위 - Amazon Bedrock AgentCore

정책 범위

범위는 정책이 적용되는 대상을 정의합니다. 모든 Cedar 정책은 세 가지 구성 요소를 지정합니다.

permit( principal is AgentCore::OAuthUser, // WHO is making the request action == AgentCore::Action::"...", // WHAT they want to do resource is AgentCore::Gateway::"..." // WHICH resource they want to access )

개체 및 네임스페이스

Cedar는 엔터티를 사용하여 보안 주체, 작업 및 리소스를 나타냅니다. AgentCore Gateway의 모든 엔터티는 AgentCore 네임스페이스를 사용합니다.

개체 형식: Namespace::EntityType::"identifier"

위탁자

보안 주체는 권한 부여를 요청하는 엔터티를 식별합니다. 보안 주체 유형은 AgentCore Gateway의 인증 구성 방식에 따라 달라집니다.

OAuth 사용자 보안 주체

OAuth 권한 부여를 사용할 때 보안 주체는 AgentCore::OAuthUser 입니다.

principal is AgentCore::OAuthUser

구성 요소:

  • principal - 권한 부여 요청을 하는 엔터티

  • AgentCore::OAuthUser - OAuth 인증 사용자를 나타내는 엔터티 유형

  • is - 유형 확인 연산자(OAuthUser 엔터티와 일치)

보안 주체는 OAuth 인증 사용자입니다. 각 사용자에게는 JWT 하위 클레임의 고유 ID가 있습니다.

IAM 엔터티 보안 주체

AWS_IAM 권한 부여를 사용할 때 보안 주체는 AgentCore::IamEntity 입니다.

principal is AgentCore::IamEntity

구성 요소:

  • principal - 권한 부여 요청을 하는 엔터티

  • AgentCore::IamEntity - IAM 인증 호출자를 나타내는 엔터티 유형

  • is - 유형 확인 연산자(모든 IamEntity와 일치)

IAM 보안 주체에는 호출자의 IAM ARN이 포함된 id 속성이 있습니다. 이 속성에서 패턴 일치를 사용하여 계정 기반 또는 역할 기반 액세스 제어를 구현할 수 있습니다.

작업

작업은 요청 중인 작업을 지정합니다.

action == AgentCore::Action::"RefundTool___process_refund"

구성 요소:

  • action - 요청 중인 작업

  • AgentCore::Action::"RefundTool___process_refund" - 특정 작업 엔터티

  • == - 정확한 일치 연산자(이 특정 작업만 해당)

작업은 MCP AgentCore 게이트웨이의 도구 호출을 나타냅니다. 각 도구에는 해당 작업 개체가 있습니다.

대상 유형별 작업 이름

정책의 작업 식별자는 게이트웨이에 구성된 대상 유형에 따라 다릅니다.

대상 유형 작업 형식 예제

MCP

<TargetName>___<ToolName>

NotesTool___manage_notes

AgentCore 런타임

<TargetName>___<METHOD>:/invocations

StrandsAgentTarget___POST:/invocations

프록시(HTTP)

<TargetName>___<METHOD>:<uri>

MyAPI___POST:/inference/v1/chat/completions

여러 작업

Cedar는 와일드카드 작업을 지원하지 않습니다. 각 작업은 정확한 작업 식별자(AgentCore::Action::"ToolName___operation")를 사용하여 명시적으로 참조해야 합니다. 단일 규칙으로 여러 도구를 그룹화하려면 게이트웨이 대상(작업 그룹)을 사용하고 해당 대상에 대한 정책을 작성합니다.

예를 들어 이름이 읽기로 시작하는 도구에 대한 액세스만 허용하려면 이러한 각 도구가 포함된 ReadToolsTarget이라는 게이트웨이 대상을 생성한 다음 다음과 같은 정책을 작성할 수 있습니다.

permit( principal, action in AgentCore::Action::"ReadToolsTarget", resource == AgentCore::Gateway::"<gateway-arn>" );

이렇게 하면 정책의 효과에 따라 해당 대상에 포함된 모든 도구가 허용됩니다.

Resource

리소스는 요청의 대상을 식별합니다.

resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"

구성 요소:

  • resource - 요청의 대상

  • AgentCore::Gateway - 게이트웨이 인스턴스를 나타내는 개체 유형

  • == - 정확한 일치 연산자(이 특정 AgentCore Gateway와 일치)

AgentCore Gateway는 도구 호출을 라우팅하는 MCP 서버입니다.

리소스 특이도 요구 사항

하나 이상의 특정 작업을 지정할 때는 특정 AgentCore Gateway ARNs 사용해야 합니다.

// Required: Specific Gateway ARN for specific action(s) resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway"

이는 다음에 적용됩니다.

  • 단일 작업: action == AgentCore::Action::"ToolName"

  • 여러 특정 작업: action in [AgentCore::Action::"Tool1", AgentCore::Action::"Tool2"]

작업과 일치하는 경우에만 유형 확인을 사용합니다.

// For policies covering any action (not specific tools) resource is AgentCore::Gateway

예시:

// Blocks all actions forbid(principal, action, resource); // Allow any CallTool action permit(principal, action in AgentCore::Action::"CallTool", resource is AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-west-2:123456789012:gateway/refund-gateway");

특정 AgentCore Gateway ARNs 다음을 제공합니다.

  • AgentCore Gateway 인스턴스 간의 보안 격리

  • 프로덕션 및 개발 환경 분리

  • AgentCore Gateway당 세분화된 액세스 제어