View a markdown version of this page

Applicare l’utilizzo di guardrail specifici nelle richieste di inferenza del modello - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Applicare l’utilizzo di guardrail specifici nelle richieste di inferenza del modello

Puoi applicare l’utilizzo di un guardrail specifico per l’inferenza del modello includendo la chiave di condizione bedrock:GuardrailIdentifier nella policy IAM. Ciò ti consente di negare qualsiasi richiesta API di inferenza che non includa il guardrail configurato nella policy IAM.

È possibile applicare questa applicazione per la seguente inferenza APIs:

Gli esempi seguenti illustrano alcuni modi in cui è possibile utilizzare la chiave di condizione bedrock:GuardrailIdentifier.

Esempio 1: applicare l’utilizzo di un guardrail specifico e della relativa versione numerica

Utilizza la seguente policy per applicare l’utilizzo di un guardrail specifico (guardrail-id) e della relativa versione numerica 1 durante l’inferenza del modello.

Il rifiuto esplicito impedisce alla richiesta dell’utente di richiamare le azioni elencate con qualsiasi altro GuardrailIdentifier e altra versione di guardrail, indipendentemente dalle ulteriori autorizzazioni di cui l’utente potrebbe disporre.

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" ] } ] }
Esempio 2: applicare l’utilizzo di un guardrail specifico e della relativa versione DRAFT

Utilizza la seguente policy per applicare l’utilizzo di un guardrail specifico (guardrail-id) e della relativa versione DRAFT durante l’inferenza del modello.

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" ] } ] }
Esempio 3: applicare l’utilizzo di un guardrail specifico e di qualsiasi sua versione numerica

Utilizza la seguente policy per applicare l’utilizzo di un guardrail specifico (guardrail-id) e delle relative versioni numeriche durante l’inferenza del modello.

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" ] } ] }
Esempio 4: applicare l’utilizzo di un guardrail specifico e di qualsiasi sua versione

Utilizza la seguente policy per applicare l’utilizzo di un guardrail specifico (guardrail-id) e delle relative versioni numeriche (inclusa la versione DRAFT) durante l’inferenza del modello.

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" ] } ] }
Esempio 5: applicare l’utilizzo di specifiche coppie di guardrail e versioni

Utilizza la seguente policy per consentire l’inferenza del modello solo per un set di guardrail e le rispettive versioni.

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

Se un utente assume un ruolo IAM con un guardrail specifico configurato utilizzando la chiave di condizione bedrock:GuardrailIdentifier:

  • Un utente non deve utilizzare lo stesso ruolo con autorizzazioni aggiuntive per richiamare Bedrock APIs like RetrieveAndGenerate e InvokeAgent che effettui InvokeModel chiamate per conto dell'utente. Ciò può causare errori di accesso negato anche quando il guardrail è specificato nella richiesta, perché RetrieveAndGenerate e InvokeAgent effettuano più chiamate InvokeModel e alcune di queste chiamate non includono un guardrail.

  • Un utente può ignorare l’applicazione di un guardrail nel prompt utilizzando i tag di input del guardrail. Tuttavia, il guardrail viene sempre applicato alla risposta.

  • Poiché Guardrail per Amazon Bedrock al momento non supporta policy basate su risorse per l’accesso multi-account, il guardrail deve avere lo stesso Account AWS del ruolo IAM che effettua la richiesta.