Amazon Bedrock で Amazon Bedrock プロンプトフローのサービスロールを作成する - Amazon Bedrock

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

Amazon Bedrock で Amazon Bedrock プロンプトフローのサービスロールを作成する

Amazon Bedrock でプロンプトフローを作成および管理するには、このページで説明されている必要なアクセス許可を持つサービスロールを使用する必要があります。Amazon Bedrock がコンソールで自動的に作成するサービスロールを使用するか、自分でカスタマイズしたサービスロールを使用できます。

注記

Amazon Bedrock がコンソールで自動的に作成するサービスロールを使用すると、フローにノードを追加してフローを保存すると、アクセス許可が動的にアタッチされます。ただし、ノードを削除してもアクセス許可は削除されないため、不要になったアクセス許可を削除する必要があります。作成したロールのアクセス許可を管理するには、IAM「 ユーザーガイド」の「ロールの変更」の手順に従ってください。

Amazon Bedrock プロンプトフローのカスタムサービスロールを作成するには、IAM「サービス にアクセス許可を委任するロールを作成する」の手順に従ってロールを作成します AWS。次に、ロールに次のアクセス許可をアタッチします。

  • 信頼ポリシー

  • 次の ID ベースのアクセス許可:

    • プロンプトフローが使用する Amazon Bedrock ベースモデルへのアクセス。プロンプトフローで使用される各モデルをResourceリストに追加します。

    • プロビジョンドスループットを使用してモデルを呼び出す場合、プロビジョンドモデルにアクセスして呼び出すアクセス許可。プロンプトフローで使用される各モデルをResourceリストに追加します。

    • カスタムモデルを呼び出す場合、カスタムモデルにアクセスして呼び出すアクセス許可。プロンプトフローで使用される各モデルをResourceリストに追加します。

    • フローに追加するノードに基づくアクセス許可:

      • プロンプト管理からのプロンプトを使用するプロンプトノードを含める場合、プロンプトへのアクセス許可。プロンプトフローで使用される各プロンプトをResourceリストに追加します。

      • ナレッジベースノードを含める場合、ナレッジベースをクエリするアクセス許可。プロンプトフローでクエリされた各ナレッジベースをResourceリストに追加します。

      • エージェントノードを含める場合、エージェントのエイリアスを呼び出すアクセス許可。プロンプトフローで呼び出された各エージェントをResourceリストに追加します。

      • S3 取得ノードを含める場合、データを取得する Amazon S3 バケットへのアクセス許可。データが取得される各バケットをResourceリストに追加します。

      • S3 ストレージノードを含める場合、出力データが格納される Amazon S3 バケットに書き込むアクセス許可。データがResourceリストに書き込まれる各バケットを追加します。

      • プロンプトフローで呼び出されたリソースを暗号化した場合、キーを復号するアクセス許可。各キーをResourceリストに追加します。

また、次のリソースベースのポリシーをアタッチする必要が生じる場合があります。

  • Lambda 関数ノードを含める場合は、プロンプトフローが呼び出すリソースベースのポリシーを Lambda 関数にアタッチして、サービスロールが関数にアクセスするためのアクセス許可を付与します。詳細については、「Amazon Bedrock がアクショングループ Lambda 関数を呼び出すことを許可するリソースベースのポリシー」を参照してください。

  • Amazon Lex ノードを含める場合は、プロンプトフローが呼び出すリソースベースのポリシーを Amazon Lex ボットにアタッチして、サービスロールが Amazon Lex ボットにアクセスするためのアクセス許可を付与します。詳細については、Amazon Lexのリソースベースのポリシー例」を参照してください。

  • プロンプトフローを暗号化する場合は、プロンプトフローの暗号化に使用するキーにKMSキーポリシーをアタッチします。

信頼関係

次の信頼ポリシーをプロンプトフロー実行ロールにアタッチして、Amazon Bedrock がこのロールを引き受け、プロンプトフローを管理できるようにします。を置き換える values 必要に応じて。ポリシーには、セキュリティのベストプラクティスとして使用することを推奨する Conditionフィールドにオプションの条件キー (「Amazon Bedrock の条件キー」とAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

注記

ベストプラクティスとして、* 作成後にプロンプトフロー ID を持つ。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "FlowsTrustBedrock", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "${account-id}" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}:${account-id}:flow/*" } } } ] }

フローサービスロールのアイデンティティベースのアクセス許可。

次のポリシーをアタッチして、サービスロールのアクセス許可を付与し、values 必要に応じて。ポリシーには、次のステートメントが含まれています。ユースケースに適用できない場合は、ステートメントを省略します。ポリシーには、セキュリティのベストプラクティスとして使用することを推奨する Conditionフィールドに、オプションの条件キー (「Amazon Bedrock の条件キー」とAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

  • プロンプトフローが使用する Amazon Bedrock ベースモデルへのアクセス。プロンプトフローで使用される各モデルをResourceリストに追加します。

  • プロビジョンドスループットを使用してモデルを呼び出す場合、プロビジョンドモデルにアクセスして呼び出すアクセス許可。プロンプトフローで使用される各モデルをResourceリストに追加します。

  • カスタムモデルを呼び出す場合、カスタムモデルにアクセスして呼び出すアクセス許可。プロンプトフローで使用される各モデルをResourceリストに追加します。

  • フローに追加するノードに基づくアクセス許可:

    • プロンプト管理からのプロンプトを使用するプロンプトノードを含める場合、プロンプトへのアクセス許可。プロンプトフローで使用される各プロンプトをResourceリストに追加します。

    • ナレッジベースノードを含める場合、ナレッジベースをクエリするアクセス許可。プロンプトフローでクエリされた各ナレッジベースをResourceリストに追加します。

    • エージェントノードを含める場合、エージェントのエイリアスを呼び出すアクセス許可。プロンプトフローで呼び出された各エージェントをResourceリストに追加します。

    • S3 取得ノードを含める場合、データを取得する Amazon S3 バケットへのアクセス許可。データが取得される各バケットをResourceリストに追加します。

    • S3 ストレージノードを含める場合、出力データが格納される Amazon S3 バケットに書き込むアクセス許可。データがResourceリストに書き込まれる各バケットを追加します。

    • プロンプトフローで呼び出されたリソースを暗号化した場合、キーを復号するアクセス許可。各キーをResourceリストに追加します。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "InvokeModel", "Effect": "Allow", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:${region}::foundation-model/${model-id}" ] }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetProvisionedModelThroughput" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:provisioned-model/${model-id}" ] }, { "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:GetCustomModel" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:custom-model/${model-id}" ] }, { "Sid": "UsePromptManagement", "Effect": "Allow", "Action": [ "bedrock:GetPrompt" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:prompt/${prompt-id}" ] }, { "Sid": "QueryKnowledgeBase", "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:RetrieveAndGenerate" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:knowledge-base/knowledge-base-id" ] }, { "Sid": "InvokeAgent", "Effect": "Allow", "Action": [ "bedrock:InvokeAgent" ], "Resource": [ "arn:aws:bedrock:${region}:${account-id}:agent-alias/${agent-alias-id}" ] }, { "Sid": "AccessS3Bucket", "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } }, { "Sid": "WriteToS3Bucket", "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::${bucket-name}", "arn:aws:s3:::${bucket-name}/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } }, { "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:${region}:${account-id}:key/${key-id}" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "${account-id}" } } } ] }

プロンプトフローのリソースベースのポリシー

プロンプトフローに Lambda 関数ノードまたは Amazon Lex ノードを含める場合は、プロンプトフローを呼び出すときに Amazon Bedrock がアクセスするためのアクセス許可を提供するために、各リソースに次のポリシーをアタッチする必要があります。

プロンプトフローを呼び出すときに Amazon Bedrock が Lambda 関数を呼び出すことを許可するリソースベースのポリシー

Lambda のリソースベースのポリシーを使用する のステップに従い、次のリソースベースのポリシーを Lambda 関数にアタッチして、Amazon Bedrock がプロンプトフローの Lambda 関数にアクセスして、values 必要に応じて。ポリシーには、セキュリティのベストプラクティスとして使用することを推奨する Conditionフィールドにオプションの条件キー (「Amazon Bedrock の条件キー」とAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowBedrockToAccessLambdaFunction", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:${region}:${account-id}:function:${function-name}", "Condition": { "StringEquals": { "AWS:SourceAccount": "${account-id}" }, "ArnLike": { "AWS:SourceArn": "arn:aws:bedrock:${region}:${account-id}:flow/${flow-id}" } } }] }

Amazon Bedrock が Amazon Lex ボットを呼び出すことを許可するリソースベースのポリシー

Amazon Lex のリソースベースのポリシー例のステップに従い、以下のリソースベースのポリシーを Amazon Lex ボットにアタッチして、Amazon Bedrock がプロンプトフローで呼び出すことができるようにし、values 必要に応じて。ポリシーには、セキュリティのベストプラクティスとして使用することを推奨する Conditionフィールドにオプションの条件キー (「Amazon Bedrock の条件キー」とAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBedrockToAccessLexBot", "Effect": "Allow", "Principal": { "Service": [ "bedrock.amazonaws.com" ] }, "Action": [ "lex:RecognizeUtterance" ], "Resource": [ "arn:aws:lex:${region}:${account-id}:bot-alias/${bot-id}/${bot-alias-id}" ], "Condition": { "StringEquals": { "AWS:SourceAccount": ${account-id} }, "ArnEquals": { "AWS:SourceArn": "arn:aws:bedrock:${region}:${account-id}:flow/${flow-id}" } } } ]

Amazon Bedrock がフローを暗号化および復号できるようにするキーポリシー

「キーポリシーの作成」のステップに従って、次のキーポリシーをKMSキーにアタッチして、Amazon Bedrock がフローをキーで暗号化および復号し、values 必要に応じて。ポリシーには、セキュリティのベストプラクティスとして使用することを推奨する Conditionフィールドに、オプションの条件キー (「Amazon Bedrock の条件キー」とAWS 「グローバル条件コンテキストキー」を参照) が含まれています。

{ "Sid": "EncryptFlowKMS", "Effect": "Allow", "Principal": { "Service": "bedrock.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext": "arn:aws:bedrock:${region}:${account-id}:flow/${flow-id}" } } }