自動推論ポリシーをアプリケーションでデプロイする - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

自動推論ポリシーをアプリケーションでデプロイする

自動推論ポリシーをテストし、パフォーマンスが満足いくものであったら、Amazon Bedrock のガードレールでアプリケーションにデプロイして使用できます。このページでは、イミュータブルバージョンの保存、ガードレールへのアタッチ、 によるデプロイの自動化 CloudFormation、CI/CD パイプラインへの統合というデプロイワークフロー全体について説明します。

自動推論ポリシーのバージョンを保存する

ポリシーのテストが完了したら、イミュータブルバージョンを作成します。イミュータブルバージョンは、DRAFT の編集を続行するときにガードレールにアタッチされたポリシーが予期せず変更されないようにします。各バージョンは数値バージョン番号 (1、2、3、...) で識別され、作成後に変更することはできません。

コンソールを使用する

  1. 左側のナビゲーションペインで、[自動推論] を選択します。

  2. アプリケーションで使用する [自動推論] ポリシーを選択します。

  3. [Save as new version] (新しいバージョンとして保存) を選択します。このバージョンのポリシーをガードレールで使用できます。

API を使用する

CreateAutomatedReasoningPolicyVersion API を使用して、自動推論ポリシーのイミュータブルバージョンを作成します。

リクエストパラメータ

policyArn (必須)

バージョンを作成する自動推論ポリシーの Amazon リソースネーム (ARN)

lastUpdatedDefinitionHash (必須)

新しいバージョンのポリシー定義のハッシュ。GetAutomatedReasoningPolicy API からこのハッシュを取得します。これにより、テストしたポリシー定義を正確にバージョニングできます。

# Get the current definition hash aws bedrock get-automated-reasoning-policy \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --query "definitionHash" --output text # Create the version aws bedrock create-automated-reasoning-policy-version \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk" \ --last-updated-definition-hash "583463f067a8a4f49fc1206b4642fd40..."

レスポンスの例:

{ "policyArn": "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk", "version": "1", "name": "MyHRPolicy" }

自動推論ポリシーをガードレールに追加する

自動推論ポリシーを保存したら、ガードレールに追加します。ガードレールは、アプリケーションが LLM レスポンスを検証するために呼び出すランタイムコンポーネントです。自動推論ポリシーを新規または既存のガードレールに追加できます。

コンソールを使用する

  1. 左側のナビゲーションで、ガードレールを選択し、ガードレールの作成 (または既存のガードレールを選択して編集) を選択します。

  2. [自動推論チェックを追加] 画面が表示されたら、[自動推論ポリシーを有効化] をクリックします。

  3. [ポリシー名] で、自動推論ポリシーの保存済みバージョンを選択し、[次へ] をクリックします。

  4. ガードレールの作成または更新を完了します。

API を使用する

CreateGuardrail または UpdateGuardrail API を使用して、自動推論ポリシーをガードレールに追加します。バージョニングされたポリシー ARN に automatedReasoningConfigパラメータを含めます。

リクエストパラメータ

automatedReasoningConfig

Amazon Bedrock のガードレールでの自動推論チェックの設定

policyArn (必須)

ガードレールで使用する自動推論ポリシーバージョンの ARN。バージョン管理されていない ARN ではなく:2、バージョン管理された ARN (:1、 などで終わる) を使用します。

aws bedrock create-guardrail \ --name "HR-Policy-Guardrail" \ --description "Guardrail for HR policy validation" \ --automated-reasoning-policy-config policies="arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk:1" \ --cross-region-config '{"guardrailProfileIdentifier": "us.guardrail.v1:0"}' \ --blocked-input-messaging "I cannot process this request." \ --blocked-outputs-messaging "I cannot provide this response."
重要

バージョニングされたポリシー ARN ( などarn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk:1) を使用します。バージョン管理されていない ARN を使用する場合、API はエラーを返します。を使用して最初にバージョンを作成しますCreateAutomatedReasoningPolicyVersion

重要

自動推論チェックを使用するガードレールには、クロスリージョン推論プロファイルが必要です。リージョンプレフィックスguardrailProfileIdentifierに一致する に --cross-region-configパラメータを含めます (たとえば、us.guardrail.v1:0米国リージョンの場合は 、欧州リージョンeu.guardrail.v1:0の場合は )。このパラメータを省略すると、API は を返しますValidationException

デプロイ用のポリシーバージョンをエクスポートする

CloudFormation または CI/CD パイプラインを介してポリシーをデプロイするには、ポリシー定義 JSON が必要です。ExportAutomatedReasoningPolicyVersion API を使用して、すべてのルール、変数、カスタムタイプを含む完全なポリシー定義を、保存されたバージョンからエクスポートします。

エクスポートされた定義は、AWS::Bedrock::AutomatedReasoningPolicyリソースの CloudFormation PolicyDefinitionプロパティで受け入れられたのと同じ形式です。これにより、インタラクティブコンソールワークフローから自動デプロイにポリシーを簡単に移動できます。

# Export the policy definition from version 1 aws bedrock export-automated-reasoning-policy-version \ --policy-arn "arn:aws:bedrock:us-east-1:111122223333:automated-reasoning-policy/lnq5hhz70wgk:1" \ --query "policyDefinition" \ --output json > policy-definition.json

エクスポートされた JSON には、次の構造が含まれています。

{ "version": "1.0", "variables": [ { "name": "isFullTime", "type": "BOOL", "description": "Whether the employee works full-time (true) or part-time (false)." }, { "name": "tenureMonths", "type": "INT", "description": "The number of complete months the employee has been continuously employed." } ], "rules": [ { "id": "A1B2C3D4E5F6", "expression": "(=> (and isFullTime (> tenureMonths 12)) eligibleForParentalLeave)" } ], "types": [] }

このファイルを CloudFormation テンプレートと一緒にバージョン管理に保存します。ポリシーを更新するときは、新しいバージョンをエクスポートし、 ファイルを更新してデプロイをトリガーします。

によるデプロイの自動化 CloudFormation

を使用して CloudFormation 、自動推論ポリシーとガードレールをコードとしてのインフラストラクチャとしてデプロイします。AWS::Bedrock::AutomatedReasoningPolicy リソースは、API またはコンソールからエクスポートするポリシー定義を持つポリシーを作成します。と組み合わせてAWS::Bedrock::Guardrail、完全な検証スタックを 1 つのテンプレートにデプロイできます。

注記

CloudFormation は、指定したポリシー定義を使用してポリシーリソースを作成します。ビルドワークフローを実行したり、ソースドキュメントからルールを抽出したりすることはありません。まず、インタラクティブに (コンソール、API、または Kiro CLI を使用して) ポリシーを作成してテストしてから、テストされたポリシー定義をエクスポートしてテンプレートで使用する必要があります。詳細については、「デプロイ用のポリシーバージョンをエクスポートする」を参照してください。

ポリシーリソースの完全なプロパティリファレンスについては、CloudFormation テンプレートリファレンスの「AWS::Bedrock::AutomatedReasoningPolicy」を参照してください。

例: ポリシーとガードレールをデプロイする

次の CloudFormation テンプレートは、ポリシー定義とそれを参照するガードレールを持つ自動推論ポリシーを作成します。ポリシー定義を、テスト済みポリシーからエクスポートされた JSON に置き換えます。

AWSTemplateFormatVersion: '2010-09-09' Description: Deploy an Automated Reasoning policy and guardrail Parameters: PolicyName: Type: String Default: MyHRPolicy Description: Name of the Automated Reasoning policy GuardrailName: Type: String Default: HR-Policy-Guardrail Description: Name of the guardrail Resources: AutomatedReasoningPolicy: Type: AWS::Bedrock::AutomatedReasoningPolicy Properties: Name: !Ref PolicyName Description: Validates HR chatbot responses about leave eligibility PolicyDefinition: Version: '1.0' Variables: - Name: isFullTime Type: BOOL Description: >- Whether the employee works full-time (true) or part-time (false). Set to true when users mention being full-time or working 40+ hours per week. - Name: tenureMonths Type: INT Description: >- The number of complete months the employee has been continuously employed. When users mention years of service, convert to months (for example, 2 years = 24 months). - Name: eligibleForParentalLeave Type: BOOL Description: >- Whether the employee is eligible for parental leave based on employment status and tenure. Rules: - Id: A1B2C3D4E5F6 Expression: >- (=> (and isFullTime (> tenureMonths 12)) eligibleForParentalLeave) - Id: G7H8I9J0K1L2 Expression: >- (=> (or (not isFullTime) (<= tenureMonths 12)) (not eligibleForParentalLeave)) Types: [] Tags: - Key: Environment Value: Production - Key: Team Value: HR Guardrail: Type: AWS::Bedrock::Guardrail Properties: Name: !Ref GuardrailName Description: Guardrail with Automated Reasoning checks for HR policy BlockedInputMessaging: I cannot process this request. BlockedOutputsMessaging: I cannot provide this response. AutomatedReasoningPolicyConfig: Policies: - !GetAtt AutomatedReasoningPolicy.PolicyArn CrossRegionConfig: GuardrailProfileArn: !Sub "arn:aws:bedrock:${AWS::Region}:${AWS::AccountId}:guardrail-profile/us.guardrail.v1:0" Outputs: PolicyArn: Description: ARN of the Automated Reasoning policy Value: !GetAtt AutomatedReasoningPolicy.PolicyArn PolicyId: Description: ID of the Automated Reasoning policy Value: !GetAtt AutomatedReasoningPolicy.PolicyId GuardrailId: Description: ID of the guardrail Value: !Ref Guardrail
ヒント

本番環境のデプロイでは、ポリシー定義を別の JSON ファイルに保持し、 Fn::Includeまたは テンプレートパラメータとしてロードして参照します。これにより、テンプレートをクリーンに保ち、ポリシー定義を個別に更新することが容易になります。

重要

自動推論チェックを使用するガードレールには、クロスリージョン推論プロファイルが必要です。CrossRegionConfig プロパティは、リージョンのガードレールプロファイル ARN を指定します。リージョンプレフィックス (us) をデプロイリージョンに適したプレフィックス (euEU リージョンなど) に置き換えます。このプロパティを省略すると、ガードレールの作成は失敗します。

例: カスタマーマネージド KMS キーを使用してデプロイする

カスタマーマネージド KMS キーを使用してポリシーを暗号化するには、 KmsKeyIdプロパティを追加します。また、Amazon Bedrock がキーを使用できるようにキーポリシーを設定する必要があります。必要なキーポリシーのアクセス許可については、「」を参照してください自動推論ポリシーの KMS アクセス許可

AutomatedReasoningPolicy: Type: AWS::Bedrock::AutomatedReasoningPolicy Properties: Name: !Ref PolicyName Description: Validates HR chatbot responses about leave eligibility KmsKeyId: !GetAtt PolicyEncryptionKey.Arn PolicyDefinition: # ... policy definition ... Tags: - Key: Environment Value: Production
重要

KmsKeyId プロパティを変更するには、リソースを置き換える必要があります。 CloudFormation は既存のポリシーを削除し、新しい ARN を持つ新しいポリシーを作成します。古いポリシー ARN を参照するガードレールを更新します。

次の手順

ポリシーとガードレールをデプロイしたら、自動推論チェックをアプリケーションに統合して、実行時に LLM レスポンスを検証します。詳細については、「自動推論チェックをアプリケーションに統合する」を参照してください。