Generazione di policy: convalida per policy
Quando si utilizza il servizio di creazione delle policy per generare policy a partire dal linguaggio naturale, durante la generazione vengono eseguite la convalida e l'analisi per ogni singola policy.
Come funziona
-
Il linguaggio naturale viene convertito in una policy Cedar
-
Ogni policy generata viene convalidata rispetto allo schema del gateway
-
L'analisi viene eseguita su ciascuna policy singolarmente
-
I risultati sono disponibili nella risposta generativa
Esempio: generare e convalidare una politica
Il recupero dei risultati della generazione è un processo in due fasi: prima verifica lo stato della generazione, quindi elenca gli asset generati per visualizzare le politiche e i relativi risultati di convalida.
Avvia la generazione di una policy:
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" }'
La risposta include l'ID e lo stato di generazione della policy:
{ "policyGenerationId": "RefundPolicy-def456", "policyEngineId": "MyEngine-abc123", "status": "GENERATING" }
Controlla lo stato della generazione utilizzandoget-policy-generation:
aws bedrock-agentcore-control get-policy-generation \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456
La risposta mostra lo stato generale della generazione:
{ "policyGenerationId": "RefundPolicy-def456", "status": "GENERATED", "statusReasons": [] }
Una volta impostato lo statoGENERATED, elenca gli asset generati per recuperare le policy e i relativi risultati di convalida per policy:
aws bedrock-agentcore-control list-policy-generation-assets \ --policy-engine-id MyEngine-abc123 \ --policy-generation-id RefundPolicy-def456
La risposta include ogni policy generata con la definizione di Cedar e i risultati di convalida:
{ "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" } ] }
Risultati della convalida per policy
Ogni risorsa politica generata include una findings serie di Finding oggetti, ciascuno con una type edescription. Gli esempi seguenti mostrano diversi tipi di risultati:
Una politica che ha superato la convalida e l'analisi:
{ "findings": [ { "type": "VALID" } ] }
Una politica contrassegnata come eccessivamente permissiva:
{ "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" } ] }
Una politica che non può essere generata dall'input del linguaggio naturale:
{ "findings": [ { "type": "NOT_TRANSLATABLE", "description": "Unsupported Condition Error: The request includes conditions that rely on data or attributes currently not supported." } ] }
Risultati comuni per le politiche generate
La tabella seguente descrive i tipi di risultati che possono essere restituiti per le politiche generate:
| Tipo di risultato | Gravità | Description | Azione consigliata |
|---|---|---|---|
|
|
Completato |
La politica è valida Cedar senza risultati. Non viene restituita alcuna descrizione per questo tipo di risultato. |
Nessuna operazione necessaria. La policy è pronta per l'uso. |
|
|
Errore |
La policy Cedar generata contiene errori di sintassi o non è conforme allo schema del gateway. |
Rivedi la politica generata per violazioni dello schema o problemi di sintassi. Riformula l'input in linguaggio naturale e rigenera. |
|
|
Errore |
Il linguaggio naturale non può essere convertito in Cedar valido. La richiesta può includere condizioni che si basano su dati o attributi non supportati. |
Ricontrolla la risorsa gateway mirata per la definizione degli strumenti. |
|
|
Attenzione |
La politica di autorizzazione si applica a tutte le combinazioni principali, di azioni e di risorse. |
Conferma che è previsto l'accesso illimitato. In caso contrario, aggiungi condizioni per limitare l'ambito. |
|
|
Attenzione |
La politica in materia di autorizzazioni non è determinante perché non consente nulla. |
Rivedi le condizioni della politica. La politica può contenere condizioni contraddittorie o irraggiungibili. |
|
|
Attenzione |
La politica nega tutte le azioni per tutti i mandanti. |
Conferma che è prevista una negazione totale. Ciò ha la precedenza su tutte le politiche di autorizzazione a causa della semantica proibita-override-permessa. |
|
|
Attenzione |
La politica di proibizione non è determinante perché non nega nulla. |
Rivedi le condizioni della polizza. La politica di divieto può contenere condizioni contraddittorie o irraggiungibili. |