Création d'un rôle de service pour Prompt flows dans Amazon Bedrock - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création d'un rôle de service pour Prompt flows dans Amazon Bedrock

Pour créer et gérer un flux d'appels dans Amazon Bedrock, vous devez utiliser un rôle de service doté des autorisations nécessaires décrites sur cette page. Vous pouvez utiliser un rôle de service qu'Amazon Bedrock crée automatiquement pour vous dans la console ou un rôle que vous personnalisez vous-même.

Note

Si vous utilisez le rôle de service qu'Amazon Bedrock crée automatiquement pour vous dans la console, les autorisations seront associées de manière dynamique si vous ajoutez des nœuds à votre flux et que vous enregistrez le flux. Toutefois, si vous supprimez des nœuds, les autorisations ne seront pas supprimées. Vous devrez donc supprimer les autorisations dont vous n'avez plus besoin. Pour gérer les autorisations associées au rôle créé pour vous, suivez les étapes décrites à la section Modification d'un rôle dans le Guide de l'utilisateur IAM.

Pour créer un rôle de service personnalisé pour les flux Prompt, créez un rôle IAM en suivant les étapes de la section Création d'un rôle pour déléguer des autorisations à un AWS service. Attachez ensuite les autorisations suivantes au rôle.

  • Politique d’approbation

  • Les autorisations basées sur l'identité suivantes :

    • Accès aux modèles de base Amazon Bedrock que le prompt flow utilisera. Ajoutez chaque modèle utilisé dans le flux d'invite à la Resource liste.

    • Si vous invoquez un modèle à l'aide du débit provisionné, vous êtes autorisé à accéder au modèle provisionné et à l'invoquer. Ajoutez chaque modèle utilisé dans le flux d'invite à la Resource liste.

    • Si vous invoquez un modèle personnalisé, autorisations pour accéder au modèle personnalisé et l'invoquer. Ajoutez chaque modèle utilisé dans le flux d'invite à la Resource liste.

    • Autorisations basées sur les nœuds que vous ajoutez au flux :

      • Si vous incluez des nœuds d'invite qui utilisent les instructions de la gestion des invites, les autorisations d'accès à l'invite. Ajoutez chaque invite utilisée dans le flux d'invite à la Resource liste.

      • Si vous incluez des nœuds de base de connaissances, des autorisations pour interroger la base de connaissances. Ajoutez à la liste chaque base de connaissances interrogée dans le flux d'invite. Resource

      • Si vous incluez des nœuds d'agent, des autorisations permettant d'invoquer un alias de l'agent. Ajoutez chaque agent invoqué dans le flux d'invite à la Resource liste.

      • Si vous incluez des nœuds de récupération S3, des autorisations pour accéder au compartiment Amazon S3 à partir duquel les données seront extraites. Ajoutez à la Resource liste chaque compartiment à partir duquel les données sont extraites.

      • Si vous incluez des nœuds de stockage S3, les autorisations d'écriture dans le compartiment Amazon S3 dans lequel les données de sortie seront stockées. Ajoutez à la Resource liste chaque compartiment dans lequel les données sont écrites.

      • Si vous avez chiffré une ressource invoquée dans un flux d'invite, autorisations pour déchiffrer la clé. Ajoutez chaque clé à la Resource liste.

Vous devrez peut-être également joindre les politiques basées sur les ressources suivantes :

Relation d'approbation

Associez la politique de confiance suivante au rôle d'exécution du flux rapide pour permettre à Amazon Bedrock d'assumer ce rôle et de gérer un flux rapide. Remplacez les valeurs si nécessaire. La politique contient des clés de condition facultatives (voir Clés de condition pour Amazon Bedrock et clés contextuelles de condition AWS globale) dans le Condition champ que nous vous recommandons d'utiliser comme bonne pratique de sécurité.

Note

Il est recommandé de remplacer le * par un ID de flux rapide une fois que vous l'avez créé.

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

Autorisations basées sur l'identité pour le rôle de service de flux.

Joignez la politique suivante pour fournir des autorisations pour le rôle de service, en remplaçant les valeurs si nécessaire. La politique contient les déclarations suivantes. Omettez une déclaration si elle ne s'applique pas à votre cas d'utilisation. La politique contient des clés de condition facultatives (voir Clés de condition pour Amazon Bedrock et clés contextuelles de condition AWS globale) dans le Condition champ que nous vous recommandons d'utiliser comme bonne pratique de sécurité.

  • Accès aux modèles de base Amazon Bedrock que le prompt flow utilisera. Ajoutez chaque modèle utilisé dans le flux d'invite à la Resource liste.

  • Si vous invoquez un modèle à l'aide du débit provisionné, vous êtes autorisé à accéder au modèle provisionné et à l'invoquer. Ajoutez chaque modèle utilisé dans le flux d'invite à la Resource liste.

  • Si vous invoquez un modèle personnalisé, autorisations pour accéder au modèle personnalisé et l'invoquer. Ajoutez chaque modèle utilisé dans le flux d'invite à la Resource liste.

  • Autorisations basées sur les nœuds que vous ajoutez au flux :

    • Si vous incluez des nœuds d'invite qui utilisent les instructions de la gestion des invites, les autorisations d'accès à l'invite. Ajoutez chaque invite utilisée dans le flux d'invite à la Resource liste.

    • Si vous incluez des nœuds de base de connaissances, des autorisations pour interroger la base de connaissances. Ajoutez à la liste chaque base de connaissances interrogée dans le flux d'invite. Resource

    • Si vous incluez des nœuds d'agent, des autorisations permettant d'invoquer un alias de l'agent. Ajoutez chaque agent invoqué dans le flux d'invite à la Resource liste.

    • Si vous incluez des nœuds de récupération S3, des autorisations pour accéder au compartiment Amazon S3 à partir duquel les données seront extraites. Ajoutez à la Resource liste chaque compartiment à partir duquel les données sont extraites.

    • Si vous incluez des nœuds de stockage S3, les autorisations d'écriture dans le compartiment Amazon S3 dans lequel les données de sortie seront stockées. Ajoutez à la Resource liste chaque compartiment dans lequel les données sont écrites.

    • Si vous avez chiffré une ressource invoquée dans un flux d'invite, autorisations pour déchiffrer la clé. Ajoutez chaque clé à la Resource liste.

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

Politiques basées sur les ressources pour des flux rapides

Si vous incluez un nœud de fonction Lambda ou un nœud Amazon Lex dans un flux d'invite, vous devez associer les politiques suivantes à chaque ressource afin de permettre à Amazon Bedrock d'y accéder lors de l'appel du flux d'invite.

Politique basée sur les ressources permettant à Amazon Bedrock d'invoquer une fonction Lambda lors de l'appel d'un flux rapide

Suivez les étapes décrites dans la section Utilisation de politiques basées sur les ressources pour Lambda et associez la politique basée sur les ressources suivante à une fonction Lambda afin de permettre à Amazon Bedrock d'accéder à la fonction Lambda pour votre flux d'appels, en remplaçant les valeurs si nécessaire. La politique contient des clés de condition facultatives (voir Clés de condition pour Amazon Bedrock et clés contextuelles de condition AWS globale) dans le Condition champ que nous vous recommandons d'utiliser comme bonne pratique de sécurité.

{ "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}:flows/${flow-id}" } } }] }

Politique basée sur les ressources permettant à Amazon Bedrock d'appeler un bot Amazon Lex

Suivez les étapes décrites dans Exemples de politiques basées sur les ressources pour Amazon Lex et associez la politique basée sur les ressources suivante à un bot Amazon Lex pour permettre à Amazon Bedrock de l'appeler rapidement, en remplaçant les valeurs si nécessaire. La politique contient des clés de condition facultatives (voir Clés de condition pour Amazon Bedrock et clés contextuelles de condition AWS globale) dans le Condition champ que nous vous recommandons d'utiliser comme bonne pratique de sécurité.

{ "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}:flows/${flow-id}" } } } ]

Politique clé permettant à Amazon Bedrock de chiffrer et de déchiffrer un flux

Suivez les étapes décrites dans la section Création d'une politique clé et associez la politique clé suivante à une clé KMS pour permettre à Amazon Bedrock de chiffrer et de déchiffrer un flux avec la clé, en remplaçant les valeurs si nécessaire. La politique contient des clés de condition facultatives (voir Clés de condition pour Amazon Bedrock et clés contextuelles de condition AWS globale) dans le Condition champ que nous vous recommandons d'utiliser comme bonne pratique de sécurité.

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