

# Richtliniengenerierung: Überprüfung pro Richtlinie
<a name="policy-generation-validation"></a>

Wenn Sie den Richtlinienerstellungsdienst verwenden, um Richtlinien aus natürlicher Sprache zu generieren, erfolgt die Validierung und Analyse während der **Generierung für jede einzelne Richtlinie**.

## Funktionsweise
<a name="policy-generation-validation-how"></a>

1. Natürliche Sprache wird in eine Cedar-Richtlinie umgewandelt

1. Jede generierte Richtlinie wird anhand des Gateway-Schemas validiert

1. Die Analyse wird für jede Richtlinie einzeln ausgeführt

1. Die Ergebnisse sind in der Generierungsantwort verfügbar

## Beispiel: Generieren und validieren Sie eine Richtlinie
<a name="policy-generation-validation-example"></a>

Das Abrufen der Generierungsergebnisse erfolgt in zwei Schritten: Überprüfen Sie zuerst den Generierungsstatus und listen Sie dann die generierten Ressourcen auf, um die Richtlinien und ihre Validierungsergebnisse zu sehen.

Starten Sie eine Richtliniengenerierung:

```
aws bedrock-agentcore-control start-policy-generation \
  --policy-engine-id MyEngine-abc123 \
  --name RefundPolicy \
  --content '{
    "rawText": "Allow customer service agents to process refunds up to 500 dollars for orders placed within the last 30 days"
  }' \
  --resource '{
    "arn": "arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789"
  }'
```

Die Antwort enthält eine ID und einen Status für die Richtliniengenerierung:

```
{
  "policyGenerationId": "RefundPolicy-def456",
  "policyEngineId": "MyEngine-abc123",
  "status": "GENERATING"
}
```

Überprüfen Sie den Status der Generierung mithilfe von`get-policy-generation`:

```
aws bedrock-agentcore-control get-policy-generation \
  --policy-engine-id MyEngine-abc123 \
  --policy-generation-id RefundPolicy-def456
```

Die Antwort zeigt den allgemeinen Generierungsstatus:

```
{
  "policyGenerationId": "RefundPolicy-def456",
  "status": "GENERATED",
  "statusReasons": []
}
```

Sobald der Status lautet`GENERATED`, listen Sie die generierten Ressourcen auf, um die Richtlinien und ihre Ergebnisse für die Überprüfung pro Richtlinie abzurufen:

```
aws bedrock-agentcore-control list-policy-generation-assets \
  --policy-engine-id MyEngine-abc123 \
  --policy-generation-id RefundPolicy-def456
```

Die Antwort umfasst jede generierte Richtlinie mit ihren Cedar-Definitionen und Validierungsergebnissen:

```
{
  "policyGenerationAssets": [
    {
      "policyGenerationAssetId": "asset-1",
      "definition": {
        "cedar": {
          "statement": "permit(\n  principal is AgentCore::OAuthUser,\n  action == AgentCore::Action::\"RefundTool___process_refund\",\n  resource == AgentCore::Gateway::\"arn:aws:bedrock-agentcore:us-east-1:123456789012:gateway/MyGateway-xyz789\"\n) when {\n  context.input.amount <= 500\n};"
        }
      },
      "findings": [
        {
          "type": "VALID"
        }
      ],
      "rawTextFragment": "Allow customer service agents to process refunds up to 500 dollars"
    },
    {
      "policyGenerationAssetId": "asset-2",
      "definition": {
        "cedar": {
          "statement": "permit(\n  principal,\n  action == AgentCore::Action::\"RefundTool___view_order_history\",\n  resource\n);"
        }
      },
      "findings": [
        {
          "type": "ALLOW_ALL",
          "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated"
        }
      ],
      "rawTextFragment": "Allow customer service agents to view order history"
    }
  ]
}
```

## Validierungsergebnisse pro Richtlinie
<a name="policy-generation-findings"></a>

Jedes generierte Richtlinienobjekt umfasst eine `findings` Reihe von `Finding` Objekten, jedes mit einem `type` und`description`. Die folgenden Beispiele zeigen verschiedene Arten von Ergebnissen:

Eine Richtlinie, die die Validierung und Analyse bestanden hat:

```
{
  "findings": [
    {
      "type": "VALID"
    }
  ]
}
```

Eine Richtlinie, die als zu freizügig eingestuft wurde:

```
{
  "findings": [
    {
      "type": "ALLOW_ALL",
      "description": "Overly Permissive: Policy Engine will allow every request for the specified principal (AgentCore::OAuthUser), action (RefundTool___view_order_history) and resource (gateway/*) combination if the policy is added or updated"
    }
  ]
}
```

Eine Richtlinie, die nicht aus der Eingabe in natürlicher Sprache generiert werden konnte:

```
{
  "findings": [
    {
      "type": "NOT_TRANSLATABLE",
      "description": "Unsupported Condition Error: The request includes conditions that rely on data or attributes currently not supported."
    }
  ]
}
```

## Gemeinsame Ergebnisse für generierte Richtlinien
<a name="policy-common-findings"></a>

In der folgenden Tabelle werden die Ergebnisarten beschrieben, die für generierte Richtlinien zurückgegeben werden können:


| Ergebnistyp | Schweregrad | Description | Empfohlene Aktion | 
| --- | --- | --- | --- | 
|  `VALID`  | Herzlichen Glückwunsch | Die Richtlinie ist gültig Cedar ohne Ergebnisse. Für diesen Befundtyp wurde keine Beschreibung zurückgegeben. | Es ist keine Aktion erforderlich. Die Richtlinie ist einsatzbereit. | 
|  `INVALID`  | Fehler | Die generierte Cedar-Richtlinie enthält Syntaxfehler oder entspricht nicht dem Gateway-Schema. | Überprüfen Sie die generierte Richtlinie auf Schemaverstöße oder Syntaxprobleme. Formulieren Sie die Eingabe in natürlicher Sprache neu und generieren Sie sie neu. | 
|  `NOT_TRANSLATABLE`  | Fehler | Natürliche Sprache konnte nicht in gültiges Cedar konvertiert werden. Die Anfrage kann Bedingungen enthalten, die auf nicht unterstützten Daten oder Attributen beruhen. | Überprüfen Sie die Ziel-Gateway-Ressource noch einmal auf die Definition der Tools. | 
|  `ALLOW_ALL`  | Warning | Die Genehmigungsrichtlinie gilt für alle Haupt-, Aktions- und Ressourcenkombinationen. | Vergewissern Sie sich, dass uneingeschränkter Zugriff beabsichtigt ist. Fügen Sie Bedingungen hinzu, um den Umfang einzuschränken, falls dies nicht der Fall ist. | 
|  `ALLOW_NONE`  | Warning | Die Genehmigungsrichtlinie ist nicht entscheidend, da sie nichts zulässt. | Überprüfen Sie die Versicherungsbedingungen. Die Richtlinie kann widersprüchliche oder unerreichbare Bedingungen enthalten. | 
|  `DENY_ALL`  | Warning | Die Richtlinie lehnt alle Aktionen für alle Schulleiter ab. | Vergewissern Sie sich, dass eine vollständige Ablehnung beabsichtigt ist. Dies hat aufgrund der Semantik „Forbid-Overrides-Permit“ Vorrang vor allen Genehmigungsrichtlinien Vorrang. | 
|  `DENY_NONE`  | Warning | Die Verbotsrichtlinie ist nicht entscheidend, weil sie nichts leugnet. | Lesen Sie die Versicherungsbedingungen. Die Richtlinie zum Verbot kann widersprüchliche oder unerreichbare Bedingungen enthalten. | 