View a markdown version of this page

시간 기반 정책 지원 - Amazon Bedrock AgentCore

시간 기반 정책 지원

AgentCore의 정책은 context.system.now 날짜/시간 값을 통해 Cedar 정책의 시간 기반 제한을 지원합니다. 이를 통해 특정 날짜, 시간 또는 시간 범위를 기반으로 정책을 적용할 수 있습니다.

작동 방식

정책 평가 중에 현재 UTC 타임스탬프는 평가 컨텍스트의 일부로 제공됩니다.

// Current datetime in UTC context.system.now

Cedar의 날짜/시간 함수를 사용하여 시간 기반 조건을 생성할 수 있습니다.

  • datetime("YYYY-MM-DDTHH:MM:SSZ") - 날짜/시간 값 생성

  • duration("Xh") - 기간 생성(시간, 분, 초)

  • .toTime() - 날짜/시간에서 하루 중 시간 추출

  • 비교 연산자: < , , > , >= , ==

절대 날짜 및 시간 범위 제한

특정 일정 기간 내에 정책을 적용합니다.

예: 프로모션 기간 정책

permit( principal, action == AgentCore::Action::"RefundToolTarget___refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway" ) when { context.system.now >= datetime("2025-01-01T00:00:00Z") && context.system.now < datetime("2025-01-31T23:59:59Z") };

사용 사례: 2025년 1월 중에만 환불을 허용합니다.

일일 반복 시간 제한

매일 반복되는 시간대를 기준으로 정책을 적용합니다.

예: 업무 시간 정책

permit( principal, action == AgentCore::Action::"RefundToolTarget___refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway" ) when { duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("17h") };

사용 사례: 업무 시간(매일 오전 9시~오후 5시 UTC)에만 환불을 허용합니다.

통합 날짜 및 시간 제한

절대 날짜와 일일 시간 제한을 결합합니다.

예: 일일 시간이 포함된 한시적 프로모션

permit( principal, action == AgentCore::Action::"DiscountToolTarget___apply_discount", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/my-gateway" ) when { // Valid dates: Feb 1-28, 2025 context.system.now >= datetime("2025-02-01T00:00:00Z") && context.system.now < datetime("2025-03-01T00:00:00Z") && // Valid hours: 9am-9pm UTC daily duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("21h") };

사용 사례: 매일 오전 9시에서 오후 9시 사이에 2025년 2월 중에만 할인 도구를 허용합니다.

시간대 처리

모든 날짜/시간 값은 UTC여야 합니다. 정책 엔진은 시간대 변환 또는 시간대 인식 정책을 지원하지 않습니다.

정책에서 시간을 지정할 때는 항상 UTC를 사용합니다. 비즈니스가 다른 시간대에서 운영되는 경우 정책을 생성하기 전에 현지 시간을 UTC로 변환합니다.

자연어를 사용하여 시간 기반 정책 생성

정책 작성 서비스는 자연어 설명에서 시간 기반 정책을 생성할 수 있습니다.

예: 업무 시간 정책 생성

aws bedrock-agentcore-control start-policy-generation \ --policy-engine-id MyEngine-abc123 \ --name BusinessHoursOnly \ --content '{ "rawText": "Allow refunds only during business hours 9am to 5pm UTC" }' \ --resource '{ "arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789" }'

생성된 정책:

permit( principal, action == AgentCore::Action::"RefundToolTarget___refund", resource == AgentCore::Gateway::"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789" ) when { duration("9h") <= context.system.now.toTime() && context.system.now.toTime() <= duration("17h") };

자연어 모범 사례

  • 시간에 대해 명시적으로 설명 — "영업 시간" 대신 "오전 9시~오후 5시 UTC"를 사용합니다.

  • 항상 UTC 지정 - 모호하지 않도록 "UTC" 포함

  • 날짜에 ISO 형식 사용 - "1월 1일" 대신 "2025-01-01" 사용

  • 특정 시간 범위 제공 - "주간" 또는 "시간 외"와 같은 모호한 용어는 피합니다.

자연어 프롬프트의 좋은 예:

"Allow refunds only between 9am and 5pm UTC" "Allow payments except between 2am and 4am UTC daily" "Allow discounts only from 2025-02-01 to 2025-02-28" "Permit high-value transactions between 8am and 8pm UTC"