View a markdown version of this page

Obligation d’utilisation de barrières de protection spécifiques dans les demandes d’inférence de modèle - 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.

Obligation d’utilisation de barrières de protection spécifiques dans les demandes d’inférence de modèle

Vous pouvez imposer l’utilisation d’une barrière de protection spécifique pour l’inférence de modèle en incluant la clé de condition bedrock:GuardrailIdentifier dans votre politique IAM. Cela vous permet de refuser toute demande d’API d’inférence qui n’inclut pas la barrière de protection configurée dans votre politique IAM.

Vous pouvez appliquer cette obligation aux API d’inférence suivantes :

Les exemples suivants illustrent certaines façons d’utiliser la clé de condition bedrock:GuardrailIdentifier.

Exemple 1 : Imposer l’utilisation d’une barrière de protection spécifique et de sa version numérique

Utilisez la politique suivante pour imposer l’utilisation d’une barrière de protection spécifique (guardrail-id) et de sa version numérique 1 lors de l’inférence de modèle.

Le refus explicite empêche la demande utilisateur d’appeler les actions répertoriées avec tout autre GuardrailIdentifier et version de la barrière de protection, quelles que soient les autres autorisations dont dispose l’utilisateur.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:1" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:1" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
Exemple 2 : Imposer l’utilisation d’une barrière de protection spécifique et de sa version préliminaire (DRAFT)

Utilisez la politique suivante pour imposer l’utilisation d’une barrière de protection spécifique (guardrail-id) et de sa version préliminaire lors de l’inférence de modèle.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
Exemple 3 : Imposer l’utilisation d’une barrière de protection spécifique et de l’une de ses versions numériques

Utilisez la politique suivante pour imposer l’utilisation d’une barrière de protection spécifique (guardrail-id) et de l’une de ses versions numériques lors de l’inférence de modèle.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:*" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnNotLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id:*" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
Exemple 4 : Imposer l’utilisation d’une barrière de protection spécifique et de l’une de ses versions

Utilisez la politique suivante pour imposer l’utilisation d’une barrière de protection spécifique (guardrail-id) et de l’une de ses versions numériques (y compris la version préliminaire) lors de l’inférence de modèle.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id*" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "ArnNotLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id*" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-id" ] } ] }
Exemple 5 : Imposer l’utilisation de paires de barrières de protection et de versions spécifiques

Utilisez la politique suivante pour autoriser l’inférence de modèle uniquement pour un ensemble de barrières de protection et de leurs versions respectives.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-1-id:1", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-2-id:2", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-3-id" ] } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-1-id:1", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-2-id:2", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-3-id" ] } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-1-id", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-2-id", "arn:aws:bedrock:us-east-1:123456789012:guardrail/guardrail-3-id" ] } ] }
Limitations

Quand un utilisateur assume un rôle IAM disposant d’une barrière de protection spécifique configurée à l’aide de la clé de condition bedrock:GuardrailIdentifier :

  • Un utilisateur ne doit pas utiliser le même rôle avec des autorisations supplémentaires pour invoquer des API Bedrock telles que RetrieveAndGenerate et InvokeAgent qui effectuent des appels InvokeModel au nom de l’utilisateur. Cela peut entraîner des erreurs de refus d’accès même lorsque la barrière de protection est spécifiée dans la demande, car RetrieveAndGenerate et InvokeAgent peuvent effectuer plusieurs appels InvokeModel et certains d’entre eux n’incluent pas de barrière de protection.

  • Un utilisateur peut éviter d’appliquer une barrière de protection dans son invite en utilisant des balises d’entrée de barrière de protection. Cependant, la barrière de protection est toujours appliquée sur la réponse.

  • Les barrières de protection Amazon Bedrock ne prenant actuellement pas en charge les politiques basées sur les ressources pour l’accès intercompte, votre barrière de protection doit appartenir au même Compte AWS que le rôle IAM à l’origine de la demande.