View a markdown version of this page

Generazione di policy: convalida per policy - Amazon Bedrock AgentCore

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

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

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 politica generata per 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 gateway mirata per la definizione degli strumenti.

ALLOW_ALL

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.

ALLOW_NONE

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.

DENY_ALL

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.

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.