View a markdown version of this page

ポリシー生成: ポリシーごとの検証 - Amazon Bedrock AgentCore

ポリシー生成: ポリシーごとの検証

ポリシーオーサリングサービスを使用して自然言語からポリシーを生成する場合、検証と分析は生成中に個々のポリシーごとに行われます。

仕組み

  1. 自然言語が Cedar ポリシーに変換される

  2. 生成された各ポリシーは、ゲートウェイスキーマに対して検証されます。

  3. 分析は各ポリシーで個別に実行されます

  4. 結果は生成レスポンスで確認できます

例: ポリシーを生成して検証する

生成結果の取得は 2 つのステップのプロセスです。まず生成ステータスを確認し、生成されたアセットを一覧表示してポリシーとその検証結果を確認します。

ポリシーの生成を開始します。

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

レスポンスには、ポリシー生成 ID とステータスが含まれます。

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

を使用して生成ステータスを確認しますget-policy-generation

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

レスポンスには、全体的な生成ステータスが表示されます。

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

ステータスが GENERATED になったら、生成されたアセットを一覧表示して、ポリシーとそのポリシーごとの検証結果を取得します。

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

レスポンスには、生成された各ポリシーとその 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" } ] }

ポリシーあたりの検証結果

生成された各ポリシーアセットには、Findingオブジェクトのfindings配列が含まれており、それぞれに typedescription があります。次の例は、さまざまな検出結果タイプを示しています。

検証と分析に合格したポリシー:

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

過度に許容されているとフラグ付けされたポリシー:

{ "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" } ] }

自然言語入力から生成できなかったポリシー:

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

生成されたポリシーの一般的な検出結果

次の表は、生成されたポリシーに対して返される結果タイプを示しています。

結果タイプ 緊急度 説明 推奨されるアクション

VALID

Success

ポリシーは検出結果なしで有効な Cedar です。この検出結果タイプの説明は返されません。

対処は必要ありません。ポリシーを使用する準備ができました。

INVALID

エラー

生成された Cedar ポリシーに構文エラーが含まれているか、ゲートウェイスキーマに準拠していません。

生成されたポリシーでスキーマ違反や構文の問題を確認します。自然言語入力を言い換えて再生成します。

NOT_TRANSLATABLE

エラー

自然言語を有効な Cedar に変換できませんでした。リクエストには、サポートされていないデータまたは属性に依存する条件が含まれる場合があります。

ツール定義のターゲットゲートウェイリソースを再確認します。

ALLOW_ALL

警告

許可ポリシーは、すべてのプリンシパル、アクション、リソースの組み合わせに適用されます。

無制限のアクセスが意図されていることを確認します。そうでない場合は、スコープを制限する条件を追加します。

ALLOW_NONE

警告

許可ポリシーは何も許可しないため、決定されません。

ポリシー条件を確認します。ポリシーには、矛盾または到達不可能な条件が含まれている可能性があります。

DENY_ALL

警告

ポリシーは、すべてのプリンシパルのすべてのアクションを拒否します。

完全な拒否が意図されていることを確認します。これにより、forbid-overrides-permit セマンティクスによるすべての許可ポリシーが上書きされます。

DENY_NONE

警告

禁止ポリシーは何も拒否しないため、決定されません。

ポリシー条件を確認します。禁止ポリシーには、矛盾または到達不可能な条件が含まれている可能性があります。