View a markdown version of this page

Generazione di policy: validazione per policy - Fondamento Amazon AgentCore

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Generazione di policy: validazione per policy

Quando si utilizza il servizio di creazione delle politiche per generare politiche dal linguaggio naturale, la convalida e l'analisi avvengono per singola politica durante la generazione.

Come funziona

  1. Il linguaggio naturale viene convertito in una policy Cedar

  2. Ogni policy generata viene convalidata rispetto allo schema del gateway

  3. L'analisi viene eseguita su ciascuna policy singolarmente

  4. I risultati sono disponibili nella risposta di generazione

Esempio: generare e convalidare una policy

Il recupero dei risultati della generazione è un processo in due fasi: prima controlla 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 un ID e uno stato per la generazione della politica:

{ "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 raggiunto lo statoGENERATED, elenca gli asset generati per recuperare le politiche 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 i relativi risultati di definizione e convalida Cedar:

{ "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 asset politico generato 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 in 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

VALID

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.

INVALID

Errore

La policy Cedar generata contiene errori di sintassi o non è conforme allo schema del gateway.

Rivedi la policy generata per individuare eventuali violazioni dello schema o problemi di sintassi. Riformula l'input in linguaggio naturale e rigenera.

NOT_TRANSLATABLE

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 del gateway mirato per la definizione degli strumenti.

ALLOW_ALL

Attenzione

La politica delle autorizzazioni si applica a tutte le combinazioni principali, azioni e risorse.

Conferma che è previsto un accesso illimitato. In caso contrario, aggiungi condizioni per limitare l'ambito.

ALLOW_NONE

Attenzione

La politica delle autorizzazioni non è determinante perché non consente nulla.

Rivedi le condizioni della polizza. La politica può contenere condizioni contraddittorie o irraggiungibili.

DENY_ALL

Attenzione

La politica nega tutte le azioni per tutti i mandanti.

Conferma che è previsto un rifiuto completo. Questo sovrascrive tutte le politiche di autorizzazione a causa della semantica dei divieti e sostituzioni dei permessi.

DENY_NONE

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.