

# Time-based politische Unterstützung
<a name="policy-time-based"></a>

Policy in AgentCore unterstützt zeitbasierte Einschränkungen in Cedar-Richtlinien über den `context.system.now` Datetime-Wert. Auf diese Weise können Sie Richtlinien auf der Grundlage bestimmter Daten, Uhrzeiten oder Zeitbereiche durchsetzen.

**Topics**
+ [Funktionsweise](#policy-time-based-how)
+ [Absolute Einschränkungen für Datum und Zeitbereich](#policy-time-absolute)
+ [Täglich wiederkehrende Zeitbeschränkungen](#policy-time-daily)
+ [Kombinierte Einschränkungen für Datum und Uhrzeit](#policy-time-combined)
+ [Umgang mit Zeitzonen](#policy-time-timezone)
+ [Verwenden Sie natürliche Sprache, um zeitbasierte Richtlinien zu generieren](#policy-time-natural-language)

## Funktionsweise
<a name="policy-time-based-how"></a>

Während der Richtlinienevaluierung wird der aktuelle UTC-Zeitstempel als Teil des Bewertungskontextes bereitgestellt:

```
// Current datetime in UTC
context.system.now
```

Sie können die Datetime-Funktionen von Cedar verwenden, um zeitbasierte Bedingungen zu erstellen:
+  `datetime("YYYY-MM-DDTHH:MM:SSZ")`— Erstellen Sie einen Datetime-Wert
+  `duration("Xh")`— Erstellen Sie eine Dauer (Stunden, Minuten, Sekunden)
+  `.toTime()`— Extrahieren Sie die Tageszeit aus Datetime
+ Vergleichsoperatoren:`<`,`⇐`,`>`, `>=` `==` 

## Absolute Einschränkungen für Datum und Zeitbereich
<a name="policy-time-absolute"></a>

Setzen Sie Richtlinien innerhalb bestimmter Kalenderzeiträume durch.

### Beispiel: Richtlinie für den Aktionszeitraum
<a name="policy-time-absolute-example"></a>

```
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")
};
```

 **Anwendungsfall:** Erstattungen sind nur im Januar 2025 zulässig.

## Täglich wiederkehrende Zeitbeschränkungen
<a name="policy-time-daily"></a>

Setzen Sie Richtlinien auf der Grundlage der Tageszeit durch, die sich täglich wiederholen.

### Beispiel: Richtlinie zu Geschäftszeiten
<a name="policy-time-daily-example"></a>

```
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")
};
```

 **Anwendungsfall:** Erstattungen sind nur während der Geschäftszeiten (täglich von 9:00 bis 17:00 Uhr UTC) zulässig.

## Kombinierte Einschränkungen für Datum und Uhrzeit
<a name="policy-time-combined"></a>

Kombinieren Sie absolute Daten mit täglichen Zeitbeschränkungen.

### Beispiel: Limited-time Promotion mit täglichen Öffnungszeiten
<a name="policy-time-combined-example"></a>

```
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")
};
```

 **Anwendungsfall:** Erlaube das Rabatt-Tool nur im Februar 2025, täglich zwischen 9 Uhr und 21 Uhr UTC.

## Umgang mit Zeitzonen
<a name="policy-time-timezone"></a>

Alle Datetime-Werte müssen in UTC angegeben werden. Die Policy Engine unterstützt keine Zeitzonenkonvertierungen oder zeitzonenabhängige Richtlinien.

Verwenden Sie bei der Angabe von Zeiten in Ihren Richtlinien immer UTC. Wenn Ihr Unternehmen in einer anderen Zeitzone tätig ist, konvertieren Sie Ihre lokalen Zeiten in UTC, bevor Sie die Richtlinie erstellen.

## Verwenden Sie natürliche Sprache, um zeitbasierte Richtlinien zu generieren
<a name="policy-time-natural-language"></a>

Der Richtlinienerstellungsdienst kann zeitbasierte Richtlinien anhand von Beschreibungen in natürlicher Sprache generieren.

### Beispiel: Generieren Sie eine Richtlinie für Geschäftszeiten
<a name="policy-time-nl-example"></a>

```
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"
  }'
```

Generierte Richtlinie:

```
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")
};
```

### Bewährte Verfahren für natürliche Sprache
<a name="policy-time-nl-best-practices"></a>
+  **Geben Sie die Zeiten explizit an** — verwenden Sie „9:00 Uhr bis 17:00 Uhr UTC“ statt „Geschäftszeiten“
+  **Geben Sie immer UTC an — Schließen Sie** „UTC“ ein, um Unklarheiten zu vermeiden
+  **Verwenden Sie das ISO-Format für Datumsangaben** — Verwenden Sie „2025-01-01" statt „1. Januar“
+  **Geben Sie bestimmte Zeiträume an —** Vermeiden Sie vage Begriffe wie „tagsüber“ oder „außerhalb der Geschäftszeiten“

Gute Beispiele für Eingabeaufforderungen in natürlicher Sprache:

```
"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"
```