As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Para usar um perfil com permissões para barreiras de proteção, crie um perfil do IAM e anexe as permissões abaixo seguindo as etapas em Criar um perfil para delegar permissões a um serviço da AWS.
Se você estiver usando grades de proteção com um agente, anexe as permissões a uma função de serviço com permissões para criar e gerenciar agentes. É possível configurar esse perfil no console ou criar um perfil personalizado de acordo com as etapas em Criar um perfil de serviço para o Amazon Bedrock Agents.
Permissões para criar e gerenciar barreiras de proteção para o perfil de política
Anexe a declaração a seguir ao campo Statement
da política para que o perfil use barreiras de proteção.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CreateAndManageGuardrails",
"Effect": "Allow",
"Action": [
"bedrock:CreateGuardrail",
"bedrock:CreateGuardrailVersion",
"bedrock:DeleteGuardrail",
"bedrock:GetGuardrail",
"bedrock:ListGuardrails",
"bedrock:UpdateGuardrail"
],
"Resource": "*"
}
]
}
Permissões para invocar grades de proteção para filtrar conteúdo
Anexe a declaração a seguir ao campo Statement
na política para o perfil permitir inferência de modelo e a invocação de barreiras de proteção.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "InvokeFoundationModel",
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": [
"arn:aws:bedrock:region::foundation-model/*"
]
},
{
"Sid": "ApplyGuardrail",
"Effect": "Allow",
"Action": [
"bedrock:ApplyGuardrail"
],
"Resource": [
"arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
"
]
}
]
}
(Opcional) Criar uma chave gerenciada pelo cliente para a barreira de proteção para obter segurança adicional
Qualquer usuário com CreateKey
permissões pode criar chaves gerenciadas pelo cliente usando o console AWS Key Management Service (AWS KMS) ou a CreateKeyoperação. Crie uma chave de criptografia simétrica. Depois de criar a chave, configure as permissões a seguir.
-
Siga as etapas em Criar uma política de chaves para criar uma política baseada em recurso para a chave do KMS. Adicione as declarações de política a seguir para conceder permissões aos usuários e criadores das barreiras de proteção.
Substitua cada uma pela função que você deseja permitir para realizar as ações especificadas.role
{ "Version": "2012-10-17", "Id": "KMS Key Policy", "Statement": [ { "Sid": "PermissionsForGuardrailsCreators", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
account-id
:user/role
" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey", "kms:CreateGrant" ], "Resource": "*" }, { "Sid": "PermissionsForGuardrailsUusers", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id
:user/role
" }, "Action": "kms:Decrypt", "Resource": "*" } } -
Anexe a política baseada em identidade a seguir para permitir que ela crie e gerencie barreiras de proteção.
Substitua o pelo ID da chave KMS que você criou.key-id
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow role to create and manage guardrails", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:DescribeKey", "kms:GenerateDataKey" "kms:CreateGrant" ], "Resource": "arn:aws:kms:
region
:account-id
:key/key-id
" } ] } -
Anexe a política baseada em identidade a seguir a um perfil para permitir que ele use a barreira de proteção que você criptografou durante a inferência do modelo ou ao invocar um agente.
Substitua o pelo ID da chave KMS que você criou.key-id
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Allow role to use an encrypted guardrail during model inference", "Effect": "Allow", "Action": [ "kms:Decrypt", ], "Resource": "arn:aws:kms:
region
:account-id
:key/key-id
" } ] }
Imponha o uso de grades de proteção específicas em solicitações de inferência de modelos
Você pode impor o uso de uma grade de proteção específica para inferência de modelos incluindo a chave de bedrock:GuardrailIdentifier
condição na sua política do IAM. Isso permite que você negue qualquer solicitação de API de inferência que não inclua a grade de proteção configurada na sua política do IAM.
Você pode aplicar essa imposição para a seguinte inferência APIs:
Os exemplos a seguir são algumas maneiras pelas quais você pode usar a chave de bedrock:GuardrailIdentifier
condição.
- Exemplo 1: imponha o uso de uma grade de proteção específica e sua versão numérica
-
Use a política a seguir para impor o uso de um guardrail (
) específico e sua versão numérica 1 durante a inferência do modelo.guardrail-id
A negação explícita impede que a solicitação do usuário chame as ações listadas com qualquer outra
GuardrailIdentifier
versão protegida, independentemente das outras permissões que o usuário possa ter.{ "Version": "2012-10-17", "Statement": [{ "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:
region
:account-id
:guardrail/guardrail-id
:1
" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
:1
" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
" ] } ] } - Exemplo 2: Imponha o uso de uma grade de proteção específica e sua versão DRAFT
-
Use a política a seguir para impor o uso de um guardrail específico (
) e sua versão DRAFT durante a inferência do modelo.guardrail-id
{ "Version": "2012-10-17", "Statement": [{ "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:
region
::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region
::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
" ] } ] } - Exemplo 3: imponha o uso de uma grade de proteção específica e de qualquer uma de suas versões numéricas
-
Use a política a seguir para impor o uso de um guardrail (
) específico e de qualquer uma de suas versões numéricas durante a inferência do modelo.guardrail-id
{ "Version": "2012-10-17", "Statement": [{ "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:
region
::foundation-model/*" ], "Condition": { "StringLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
:*" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region::foundation-model/*" ], "Condition": { "StringNotLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
:*" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
" ] } ] } - Exemplo 4: Imponha o uso de uma grade de proteção específica e de qualquer uma de suas versões
-
Use a política a seguir para impor o uso de um guardrail específico (
) e de qualquer uma de suas versões numéricas (incluindo a versão DRAFT) durante a inferência do modelo.guardrail-id
{ "Version": "2012-10-17", "Statement": [{ "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region::foundation-model/*" ], "Condition": { "StringLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:
region
:account-id
:guardrail/guardrail-id
*" } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region
::foundation-model/*" ], "Condition": { "StringNotLike": { "bedrock:GuardrailIdentifier": "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
*" } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-id
" ] } ] } - Exemplo 5: imponha o uso de pares específicos de guardrail e versão
-
Use a política a seguir para permitir a inferência de modelos somente para um conjunto de grades de proteção e suas respectivas versões.
{ "Version": "2012-10-17", "Statement": [{ "Sid": "InvokeFoundationModelStatement1", "Effect": "Allow", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region::foundation-model/*" ], "Condition": { "StringEquals": { "bedrock:GuardrailIdentifier": [ "arn:aws:bedrock:
region
:account-id
:guardrail/guardrail-1-id
:1
", "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-2-id
:2
", "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-3-id
" ] } } }, { "Sid": "InvokeFoundationModelStatement2", "Effect": "Deny", "Action": [ "bedrock:InvokeModel", "bedrock:InvokeModelWithResponseStream" ], "Resource": [ "arn:aws:bedrock:region
::foundation-model/*" ], "Condition": { "StringNotEquals": { "bedrock:GuardrailIdentifier": [ "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-1-id
:1
", "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-2-id
:2
", "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-3-id
" ] } } }, { "Sid": "ApplyGuardrail", "Effect": "Allow", "Action": [ "bedrock:ApplyGuardrail" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-1-id
", "arn:aws:bedrock:region
:account-id
:guardrail/guardrail-2-id
", "arn:aws::bedrock:region
:account-id
:guardrail/guardrail-3-id
" ] } ] } - Limitações
-
Se um usuário assumir uma função do IAM que tenha uma grade de proteção específica configurada usando a
bedrock:GuardrailIdentifier
chave de condição:-
Um usuário não deve usar a mesma função com permissões adicionais para invocar o Bedrock APIs like
RetrieveAndGenerate
eInvokeAgent
fazerInvokeModel
chamadas em nome do usuário. Isso pode levar a erros de acesso negado, mesmo quando a grade de proteção é especificada na solicitação porqueRetrieveAndGenerate
InvokeAgent
você faz váriasInvokeModel
chamadas, e algumas dessas chamadas não incluem uma grade de proteção. -
Um usuário pode ignorar a aplicação de uma grade de proteção em seu prompt usando tags de entrada de proteção. No entanto, a grade de proteção é sempre aplicada na resposta.
-
Como o Amazon Bedrock Guardrails atualmente não oferece suporte a políticas baseadas em recursos para acesso entre contas, seu guardrail deve estar na mesma Conta da AWS função do IAM que está fazendo a solicitação.
-