

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á.

# Pré-requisitos e permissões
<a name="advanced-prompt-optimization-prereqs"></a>

## Pré-requisitos
<a name="advanced-prompt-optimization-prereqs-overview"></a>

Quando você envia um trabalho de Advanced Prompt Optimization, o Amazon Bedrock acessa recursos em sua conta em seu nome usando as permissões de sua identidade de chamada. O usuário ou a função do IAM que você usa para chamar a API ou o AWS console de acesso deve ter permissões para:
+ Gerencie trabalhos de otimização avançada de solicitações
+ Invoque os modelos de base alvo
+ Leia os dados de entrada e grave os resultados no seu bucket do Amazon S3
+ (Opcional) Use sua AWS KMS chave para criptografar a saída do trabalho com uma chave gerenciada pelo cliente (CMK) ou para acessar buckets do S3 que usam CMK
+ (Opcional) Invoque sua função Lambda para avaliação personalizada

## Permissões obrigatórias do IAM
<a name="advanced-prompt-optimization-prereqs-iam"></a>

### Permissões de API
<a name="advanced-prompt-optimization-prereqs-api"></a>

Cada API Advanced Prompt Optimization exige uma ação específica do IAM no recurso de trabalho:


| Operação de API | Ação do IAM | Recurso | Nível de acesso | 
| --- | --- | --- | --- | 
| CreateAdvancedPromptOptimizationJob | bedrock:CreateAdvancedPromptOptimizationJob | arn:aws:bedrock:{{region}}:{{account-id}}:advanced-prompt-optimization-job/\* | Gravar | 
| GetAdvancedPromptOptimizationJob | bedrock:GetAdvancedPromptOptimizationJob | arn:aws:bedrock:{{region}}:{{account-id}}:advanced-prompt-optimization-job/\* | Ler | 
| ListAdvancedPromptOptimizationJobs | bedrock:ListAdvancedPromptOptimizationJobs | arn:aws:bedrock:{{region}}:{{account-id}}:advanced-prompt-optimization-job/\* | Lista | 
| StopAdvancedPromptOptimizationJob | bedrock:StopAdvancedPromptOptimizationJob | arn:aws:bedrock:{{region}}:{{account-id}}:advanced-prompt-optimization-job/\* | Gravar | 
| BatchDeleteAdvancedPromptOptimization Jobs | bedrock:BatchDeleteAdvancedPromptOptimization Job | arn:aws:bedrock:{{region}}:{{account-id}}:advanced-prompt-optimization-job/\* | Gravar | 

### Permissões de invocação do modelo
<a name="advanced-prompt-optimization-prereqs-model"></a>

Quando você cria um trabalho, o Advanced Prompt Optimization invoca o (s) modelo (s) de destino em seu nome usando suas credenciais de chamador (sessão de acesso direto). Sua identidade do IAM deve ter permissão para invocar os modelos especificados:


| Caminho de inferência | Ação do IAM necessária | Atributo ARN | 
| --- | --- | --- | 
| ConverseStream (atual) | bedrock:InvokeModelWithResponseStream | arn:aws:bedrock:{{region}}::foundation-model/{{model-id}} | 
| Converse (sem streaming) | bedrock:InvokeModel | arn:aws:bedrock:{{region}}::foundation-model/{{model-id}} | 
| Cross-region perfil de inferência | bedrock:InvokeModelWithResponseStream | arn:aws:bedrock:\*:{{account-id}}:inference-profile/{{profile-id}} | 

**Importante**  
Se o acesso ao modelo não estiver habilitado para um modelo em sua conta, o trabalho falhará com: “Nenhuma API de inferência está acessível para o modelo. Verifique se a função tem permissão para invocar o modelo.”

### Permissões de bucket do S3
<a name="advanced-prompt-optimization-prereqs-s3"></a>

Sua identidade de chamada deve ter acesso de leitura ao conjunto de dados de entrada e acesso de gravação ao local de saída. O bucket do S3 deve estar na mesma região do trabalho.

```
{
    "Effect": "Allow",
    "Action": [
        "s3:GetObject",
        "s3:PutObject"
    ],
    "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
},
{
    "Effect": "Allow",
    "Action": "s3:ListBucket",
    "Resource": "arn:aws:s3:::DOC-EXAMPLE-BUCKET"
}
```

Se seu bucket do S3 usa criptografia CMK, consulte a AWS KMS seção Criptografia com para ver as permissões necessárias do KMS.

### Criptografia com AWS KMS (opcional)
<a name="advanced-prompt-optimization-prereqs-kms"></a>

Você pode usar chaves AWS KMS gerenciadas pelo cliente (CMKs) com a Otimização Avançada de Prompt de duas maneiras:
+ **Criptografia de saída de trabalho** — Criptografe os resultados da otimização com sua CMK especificando o `encryptionConfig` parâmetro ao criar um trabalho.
+ **Criptografia de bucket do S3** — Se seu bucket do S3 usa criptografia do lado do servidor com uma chave KMS (SSE-KMS), sua identidade precisa de permissões do KMS para ler a entrada e gravar os resultados nesse bucket.

Você pode usar a mesma chave KMS para ambas ou usar chaves separadas.

As ações necessárias do KMS dependem de como você usa o KMS:


| Caso de uso | Ações necessárias | 
| --- | --- | 
| Criptografar a saída do trabalho () encryptionConfig | kms:Encrypt, kms:GenerateDataKey, kms:DescribeKey | 
| Leia do bucket S3 SSE-KMS criptografado | kms:Decrypt | 
| Gravar em um SSE-KMS bucket S3 criptografado | kms:GenerateDataKey | 

#### Chave KMS única
<a name="advanced-prompt-optimization-prereqs-kms-single"></a>

Se você usar a mesma chave para criptografia de saída e criptografia de bucket do S3:

```
{
    "Effect": "Allow",
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:us-west-2:123456789012:key/your-kms-key-id"
}
```

#### Chaves KMS separadas para criptografia de entrada e saída de tarefas do S3
<a name="advanced-prompt-optimization-prereqs-kms-separate"></a>

Se seu bucket de entrada do S3 usar uma chave KMS e você quiser criptografar a saída do trabalho com uma chave KMS diferente:

```
{
    "Sid": "KMSDecryptS3Input",
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt"
    ],
    "Resource": "arn:aws:kms:us-west-2:123456789012:key/s3-bucket-kms-key-id"
},
{
    "Sid": "KMSEncryptJobOutput",
    "Effect": "Allow",
    "Action": [
        "kms:Encrypt",
        "kms:GenerateDataKey",
        "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:us-west-2:123456789012:key/output-encryption-kms-key-id"
}
```

### Permissões Lambda de avaliação personalizada (opcional)
<a name="advanced-prompt-optimization-prereqs-lambda"></a>

Se você usa uma função Lambda personalizada para avaliar a qualidade do prompt, sua identidade de chamada deve ter permissão para invocá-la:

```
{
    "Effect": "Allow",
    "Action": ["lambda:InvokeFunction","lambda:GetFunction"],
    "Resource": "arn:aws:lambda:us-west-2:123456789012:function:my-evaluation-metric"
}
```

## Políticas do IAM de exemplo
<a name="advanced-prompt-optimization-prereqs-policies"></a>

### Identity-based política: permitir o gerenciamento de tarefas do AdVPO e a invocação do modelo
<a name="advanced-prompt-optimization-prereqs-policy-full"></a>

Anexe essa política ao usuário ou função do IAM que criará e gerenciará trabalhos do AdVPO.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "CreateAndManageAdvPOJobs",
            "Effect": "Allow",
            "Action": [
                "bedrock:CreateAdvancedPromptOptimizationJob",
                "bedrock:GetAdvancedPromptOptimizationJob",
                "bedrock:ListAdvancedPromptOptimizationJobs",
                "bedrock:StopAdvancedPromptOptimizationJob",
                "bedrock:BatchDeleteAdvancedPromptOptimization		 	 	 Job"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:advanced-prompt-optimization-job/*"
        },
        {
            "Sid": "InvokeModelsForOptimization",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/*",
                "arn:aws:bedrock:*:123456789012:inference-profile/*"
            ]
        },
        {
            "Sid": "S3AccessForInputAndOutput",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::my-advpo-bucket/*"
        },
        {
            "Sid": "S3ListBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::my-advpo-bucket"
        }
    ]
}
```

### Identity-based política: Read-only acesso a empregos do AdVPO
<a name="advanced-prompt-optimization-prereqs-policy-readonly"></a>

Use essa política para usuários que só precisam ver o status e os resultados do trabalho.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "ViewAdvPOJobs",
            "Effect": "Allow",
            "Action": [
                "bedrock:GetAdvancedPromptOptimizationJob",
                "bedrock:ListAdvancedPromptOptimizationJobs"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:advanced-prompt-optimization-job/*"
        },
        {
            "Sid": "ReadOutputFromS3",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-advpo-bucket/output/*"
        }
    ]
}
```

### Identity-based política: restringir a modelos específicos
<a name="advanced-prompt-optimization-prereqs-policy-restrict"></a>

Use essa política para permitir o AdVPO somente com modelos específicos (por exemplo, somente Claude Sonnet).

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "AdvPOJobManagement",
            "Effect": "Allow",
            "Action": [
                "bedrock:CreateAdvancedPromptOptimizationJob",
                "bedrock:GetAdvancedPromptOptimizationJob",
                "bedrock:ListAdvancedPromptOptimizationJobs",
                "bedrock:StopAdvancedPromptOptimizationJob"
            ],
            "Resource": "arn:aws:bedrock:us-east-1:123456789012:advanced-prompt-optimization-job/*"
        },
        {
            "Sid": "InvokeOnlyClaudeSonnet",
            "Effect": "Allow",
            "Action": [
                "bedrock:InvokeModel",
                "bedrock:InvokeModelWithResponseStream"
            ],
            "Resource": [
                "arn:aws:bedrock:*::foundation-model/anthropic.claude-sonnet-*",
                "arn:aws:bedrock:*:123456789012:inference-profile/us.anthropic.claude-sonnet-*"
            ]
        },
        {
            "Sid": "S3Access",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:PutObject"
            ],
            "Resource": "arn:aws:s3:::my-advpo-bucket/*"
        }
    ]
}
```

### Política de negação: evitar o uso do AdVPO (exemplo de SCP)
<a name="advanced-prompt-optimization-prereqs-policy-deny"></a>

Use como uma Política de Controle de Serviço (SCP) para evitar o uso do AdVPO em uma organização.

```
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "DenyAdvPO",
            "Effect": "Deny",
            "Action": [
                "bedrock:CreateAdvancedPromptOptimizationJob",
                "bedrock:StopAdvancedPromptOptimizationJob",
                "bedrock:BatchDeleteAdvancedPromptOptimization		 	 	 Job"
            ],
            "Resource": "*"
        }
    ]
}
```

## Cross-region inferência
<a name="advanced-prompt-optimization-prereqs-cris"></a>

O serviço pode usar inferência entre regiões (CRIS) para avaliação e reescrita imediata. Para regiões europeias, o serviço usará regiões CRIS da UE. Para as seguintes regiões, ele pode usar o CRIS global: ap-south-1 (Mumbai), sa-east-1 (São Paulo), ap-northeast-2 (Seul), ap-southeast-1 (Cingapura).