

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

# Chaves de API
<a name="api-keys"></a>

Você pode fazer chamadas à API do Amazon Bedrock facilmente gerando uma chave de API do Amazon Bedrock e usando-a para autenticar sua identidade ao fazer solicitações à API do Amazon Bedrock.

**nota**  
Para fins de auditoria e conformidade, todas as chamadas de API são registradas AWS CloudTrail. As chaves de API do Amazon Bedrock são transmitidas como cabeçalhos de autorização para solicitações de API e não são registradas em log.  
As chaves de API do Amazon Bedrock estão restritas às ações do [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) e do [Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html). Não é possível usar as seguintes operações de API:  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html).
Operações de API dos recursos [Agentes para Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) ou [Agentes para Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html).
Operações de API da [Automação de Dados para Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) ou do [Runtime para Automação de Dados do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation).

O Amazon Bedrock permite que você gere os seguintes tipos de chave de API do Amazon Bedrock:
+ **Curto prazo**: crie uma chave de API do Amazon Bedrock que dure o mesmo tempo de sua sessão (e não mais que 12 horas). Você já deve ter uma [entidade principal do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-structure-terms) configurada com as permissões adequadas para usar o Amazon Bedrock. Essa opção é preferível às chaves de longo prazo para ambientes de produção que exigem a alteração regular de credenciais para aumentar a segurança.

  As chaves de curto prazo têm as seguintes propriedades:
  + São válidas para valores mais curtos do que os seguintes valores:
    + 12 horas
    + A duração da sessão gerada pela entidade principal do IAM usada para gerar a chave.
  + Herdam as permissões associadas à entidade principal usada para gerar a chave.
  + Só pode ser usado na AWS região da qual você o gerou.
+ **Longo prazo**: crie uma chave de API do Amazon Bedrock com permissões para fazer solicitações básicas de API no Amazon Bedrock. Essa opção fácil de um clique permite que você comece a explorar rapidamente a API Amazon Bedrock sem precisar entender a infraestrutura de segurança subjacente ou configurar manualmente as permissões. AWS Identity and Access Management Se você está experimentando o Amazon Bedrock pela primeira vez, pode experimentar o exemplo em [Comece a usar as chaves de API do Amazon Bedrock: gere uma chave de trinta dias e faça sua primeira chamada de API](getting-started-api-keys.md) para ver um tutorial fácil para criar uma chave de longo prazo e começar a usar o Amazon Bedrock.
**Atenção**  
É altamente recomendável restringir o uso das chaves de API do Amazon Bedrock à exploração do Amazon Bedrock. Quando estiver tudo pronto para incorporar o Amazon Bedrock em aplicações com maiores requisitos de segurança, você deve mudar para credenciais de curto prazo. Para ter mais informações, consulte [Alternativas para chaves de acesso de longo prazo](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) no “Guia do usuário do IAM”.

Selecione um tópico para saber mais sobre as chaves de API do Amazon Bedrock. Há várias opções para diferentes tipos de chave do Amazon Bedrock e de métodos para personalizá-las. Para ver um tutorial de início rápido sobre como gerar uma chave de API de longo prazo do Amazon Bedrock e usá-la para fins exploratórios, consulte [Comece a usar as chaves de API do Amazon Bedrock: gere uma chave de trinta dias e faça sua primeira chamada de API](getting-started-api-keys.md).

**Topics**
+ [Como a API do Amazon Bedrock funciona](api-keys-how.md)
+ [Regiões suportadas e kits AWS de desenvolvimento de software (SDKs) para chaves de API do Amazon Bedrock](api-keys-supported.md)
+ [Gerar uma chave de API do Amazon Bedrock](api-keys-generate.md)
+ [Usar uma chave de API do Amazon Bedrock](api-keys-use.md)
+ [Modificar as permissões para chaves de API de longo e curto prazos do Amazon Bedrock](api-keys-modify.md)
+ [Lidar com chaves de API de longo e curto prazo comprometidas do Amazon Bedrock](api-keys-revoke.md)
+ [Controlar as permissões para gerar e usar as chaves de API do Amazon Bedrock](api-keys-permissions.md)

# Como a API do Amazon Bedrock funciona
<a name="api-keys-how"></a>

A seguinte imagem compara o processo padrão para obter credenciais para uso da chave de API do Amazon Bedrock:

![\[Processo de configuração de API padrão comparado ao processo de configuração de API usando a chave de API do Amazon Bedrock\]](http://docs.aws.amazon.com/pt_br/bedrock/latest/userguide/images/setup/setup-api.png)


O fluxo mais à esquerda no diagrama mostra o processo padrão de criação de uma identidade em no Centro de Identidade do AWS IAM ou no IAM. Com esse processo, você anexa políticas do IAM a essa identidade para fornecer permissões para realizar operações de API e gerar credenciais gerais da AWS para essa identidade. Em seguida, você pode usar as credenciais para fazer chamadas de API AWS.

Os nós azuis indicam mais dois fluxos para autenticação específica no Amazon Bedrock. Ambos os fluxos envolvem a criação de uma chave de API do Amazon Bedrock com a qual você pode se autenticar usando as ações do Amazon Bedrock. Gere um dos seguintes tipos de chave:
+ **Chave de curto prazo**: uma opção segura que permite acesso temporário ao uso do Amazon Bedrock.

  As chaves de curto prazo têm as seguintes propriedades:
  + São válidas para valores mais curtos do que os seguintes valores:
    + 12 horas
    + A duração da sessão gerada pela entidade principal do IAM usada para gerar a chave.
  + Herdam as permissões associadas à entidade principal usada para gerar a chave.
  + Só podem ser usadas na região AWS na qual você as gerou.
+ **Chave de longo prazo**: recomendada somente para exploração do Amazon Bedrock. É possível definir o tempo após o qual a chave expira. Quando você gera uma chave de longo prazo, ela cria subjacentemente um usuário do IAM que se destina a você, anexa as políticas do IAM que você seleciona e associa a chave ao usuário. Depois de gerar a chave, você pode usar o serviço do IAM para [modificar as permissões do usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html).
**Atenção**  
É altamente recomendável restringir o uso das chaves de API do Amazon Bedrock à exploração do Amazon Bedrock. Quando estiver tudo pronto para incorporar o Amazon Bedrock em aplicações com maiores requisitos de segurança, você deve mudar para credenciais de curto prazo. Para ter mais informações, consulte [Alternativas para chaves de acesso de longo prazo](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) no “Guia do usuário do IAM”.

# Regiões suportadas e kits AWS de desenvolvimento de software (SDKs) para chaves de API do Amazon Bedrock
<a name="api-keys-supported"></a>

A lista a seguir mostra os Regiões da AWS que suportam chaves de API:
+ ap-northeast-1
+ ap-northeast-2
+ ap-northeast-3
+ ap-south-1
+ ap-south-2
+ ap-southeast-1
+ ap-southeast-2
+ ca-central-1
+ eu-central-1
+ eu-central-2
+ eu-north-1
+ eu-south-1
+ eu-south-2
+ eu-west-1
+ eu-west-2
+ eu-west-3
+ sa-east-1
+ us-east-1
+ us-gov-east-1
+ us-gov-west-1
+ us-west-2

**nota**  
As chaves de API do Amazon Bedrock estão restritas às ações do [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) e do [Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html). Não é possível usar as seguintes operações de API:  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html).
Operações de API dos recursos [Agentes para Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) ou [Agentes para Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html).
Operações de API da [Automação de Dados para Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) ou do [Runtime para Automação de Dados do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation).

As chaves de API do Amazon Bedrock são compatíveis com o seguinte: AWS SDKs
+ Python
+ Javascript
+ Java

# Gerar uma chave de API do Amazon Bedrock
<a name="api-keys-generate"></a>

É possível gerar uma chave de API do Amazon Bedrock usando a API Console de gerenciamento da AWS ou AWS. Recomendamos que você use o Console de gerenciamento da AWS para gerar facilmente uma chave de API do Amazon Bedrock em apenas algumas etapas.

**Atenção**  
É altamente recomendável restringir o uso das chaves de API do Amazon Bedrock à exploração do Amazon Bedrock. Quando estiver tudo pronto para incorporar o Amazon Bedrock em aplicações com maiores requisitos de segurança, você deve mudar para credenciais de curto prazo. Para ter mais informações, consulte [Alternativas para chaves de acesso de longo prazo](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) no “Guia do usuário do IAM”.

**Topics**
+ [Gerar uma chave de API do Amazon Bedrock usando o console](#api-keys-generate-console)
+ [Gerar uma chave de API de longo prazo do Amazon Bedrock usando a API do Amazon Bedrock](#api-keys-generate-api-long-term)
+ [Gerar uma chave de API de curto prazo do Amazon Bedrock usando uma biblioteca de cliente](#api-keys-generate-short-term)
+ [Configurar a atualização automática de chaves de API de curto prazo do Amazon Bedrock](#api-keys-refresh-short-term)

## Gerar uma chave de API do Amazon Bedrock usando o console
<a name="api-keys-generate-console"></a>

Para gerar uma chave de API do Amazon Bedrock usando o console, faça o seguinte:

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console do Amazon Bedrock. Em seguida, abra o console do Amazon Bedrock em [https://console.aws.amazon.com/bedrock/](https://console.aws.amazon.com/bedrock).

1. No painel de navegação à esquerda, selecione **Chaves de API**.

1. Gere um dos seguintes tipos de chave:
   + **Chave de API de curto prazo**: na guia **Chaves de API de curto prazo**, escolha **Gerar chaves de API de curto prazo**. A chave expira quando a sessão do console expira (e no máximo em 12 horas) e permite que você faça chamadas para a Região da AWS onde você a gerou. É possível modificar a região diretamente na chave gerada.
   + **Chave de API de longo prazo**: na guia **Chaves de API de longo prazo**, escolha **Gerar chaves de API de longo prazo**.

     1. Na seção **Expiração da chave de API**, escolha um horário após o qual a chave expirará.

     1. (Opcional) Por padrão, a política [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) gerenciada pela AWS, que concede acesso às principais operações de API do Amazon Bedrock, é anexada ao usuário do IAM associado à chave. Para selecionar mais políticas para anexar ao usuário, expanda a seção **Permissões avançadas** e selecione as políticas que você deseja adicionar.

     1. Escolha **Gerar**.
**Atenção**  
É altamente recomendável restringir o uso das chaves de API do Amazon Bedrock à exploração do Amazon Bedrock. Quando estiver tudo pronto para incorporar o Amazon Bedrock em aplicações com maiores requisitos de segurança, você deve mudar para credenciais de curto prazo. Para ter mais informações, consulte [Alternativas para chaves de acesso de longo prazo](https://docs.aws.amazon.com/IAM/latest/UserGuide/security-creds-programmatic-access.html#security-creds-alternatives-to-long-term-access-keys) no “Guia do usuário do IAM”.



## Gerar uma chave de API de longo prazo do Amazon Bedrock usando a API do Amazon Bedrock
<a name="api-keys-generate-api-long-term"></a>

As etapas gerais para a criação de uma chave de API de longo prazo do Amazon Bedrock na API são as seguintes:

1. Crie um usuário do IAM enviando uma solicitação [CreateUser](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateUser.html) com um [endpoint do IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html).

1. Anexe a [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) ao usuário do IAM enviando uma solicitação [AttachUserPolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachUserPolicy.html) com um [endpoint do IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html). É possível repetir essa etapa para anexar outras políticas gerenciadas ou personalizadas ao usuário, conforme necessário.
**nota**  
Como prática recomendada de segurança, é altamente recomendável que você anexe políticas do IAM ao usuário do IAM para restringir o uso das chaves de API do Amazon Bedrock. Para ver exemplos de política de limite de tempo e restrição dos endereços IP que podem usar a chave, consulte [Controle o uso de chaves de acesso anexando uma política em linha a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-keys_inline-policy.html).

1. Gere a chave de API de longo prazo do Amazon Bedrock enviando uma solicitação [CreateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateServiceSpecificCredential.html.html) com um [endpoint do IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html) e especificando `bedrock.amazonaws.com` como `ServiceName`.
   + O `ServiceApiKeyValue` exibido na resposta é a chave de API de longo prazo do Amazon Bedrock.
   + O `ServiceSpecificCredentialId` exibido na resposta pode ser usado para realizar operações de API relacionadas à chave.

Para saber como gerar uma chave de API de longo prazo do Amazon Bedrock, escolha a guia do método de sua preferência e siga as etapas:

------
#### [ CLI ]

Para criar uma chave de API de longo prazo do Amazon Bedrock, use operações de API do AWS Identity and Access Management. Primeiro, é necessário atender aos pré-requisitos:

**Pré-requisito**  
Sua configuração deve permitir que a AWS CLI reconheça automaticamente suas credenciais da AWS. Para saber mais, consulte [Como definir as configurações da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

Abra um terminal e execute os seguintes comandos:

1. Criar um usuário do IAM. Você pode substituir o nome por um de sua preferência:

   ```
   aws iam create-user --user-name bedrock-api-user
   ```

1. Anexe [AmazonBedRockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) ao usuário. É possível repetir esta etapa com os ARNs de qualquer outra política gerenciada pela AWS ou personalizada que queira adicionar à chave de API:

   ```
   aws iam attach-user-policy --user-name bedrock-api-user --policy-arn arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess
   ```

1. Crie a chave de API de longo prazo do Amazon Bedrock, substituindo *\$1\$1NUMBER-OF-DAYS\$1* pelo número de dias durante os quais você deseja que a chave seja mantida:

   ```
   aws iam create-service-specific-credential \
       --user-name bedrock-api-user \
       --service-name bedrock.amazonaws.com \
       --credential-age-days ${NUMBER-OF-DAYS}
   ```

------
#### [ Python ]

Para criar uma chave de API de longo prazo do Amazon Bedrock, use operações de API do AWS Identity and Access Management. Primeiro, é necessário atender aos pré-requisitos:

**Pré-requisito**  
Sua configuração deve permitir que o Python reconheça automaticamente suas credenciais da AWS. Para saber mais, consulte [Como definir as configurações da AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

Execute o seguinte script para criar um usuário do IAM, anexar permissões para realizar ações do Amazon Bedrock e gerar uma chave de API de longo prazo do Amazon Bedrock para associá-la ao usuário:

```
import boto3
from datetime import datetime, timedelta

# Replace with name for your IAM user
username = "bedrock-api-user"
# Add any AWS-managed or custom policies that you want to the user
bedrock_policies = [
    "arn:aws:iam::aws:policy/AmazonBedrockLimitedAccess",        # Limited access
#    "arn:aws:iam::aws:policy/AmazonBedrockMarketplaceAccess",   # Optional: Access to Amazon Bedrock Marketplace actions
]
# Set the key expiration time to a number of your choice
expiration_time_in_days = 30

iam_client = boto3.client("iam")
    
# Create IAM user
user = iam_client.create_iam_user(username)

# Attach policies to user
for policy_arn in bedrock_policies:
    iam_client.attach_managed_policy(username, policy_arn)

# Create long-term Amazon Bedrock API key and return it
service_credentials = iam_client.create_service_specific_credential(
    user_name=username, 
    service_name="bedrock",
    credential_age_days=expiration_time_in_days
) 
api_key = service_credentials["ServiceApiKeyValue"]
print(api_key)
```

------

## Gerar uma chave de API de curto prazo do Amazon Bedrock usando uma biblioteca de cliente
<a name="api-keys-generate-short-term"></a>

As chaves de curto prazo têm as seguintes propriedades:
+ São válidas para valores mais curtos do que os seguintes valores:
  + 12 horas
  + A duração da sessão gerada pela entidade principal do IAM usada para gerar a chave.
+ Herdam as permissões associadas à entidade principal usada para gerar a chave.
+ Só podem ser usadas na região da AWS na qual você as gerou.

Para aplicações de longa execução, a biblioteca cliente [aws-bedrock-token-generator](https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md) pode criar chaves de API de curto prazo do Amazon Bedrock, conforme necessário, quando as credenciais são atualizadas. Para obter mais informações, consulte [Configurar a atualização automática de chaves de API de curto prazo do Amazon Bedrock](#api-keys-refresh-short-term).

**Pré-requisitos**
+ A entidade principal do IAM que você usa para gerar a chave deve estar configurada com as permissões adequadas para usar o Amazon Bedrock. Para experimentação, você pode anexar a política de acesso limitado [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess) gerenciada pela AWS à entidade principal. Você pode consultar [Práticas recomendadas de segurança no IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) para proteger suas credenciais.
+ Sua configuração deve permitir que o Python reconheça automaticamente suas credenciais da AWS. O método padrão pelo qual as credenciais são recuperadas segue uma hierarquia definida. Você pode ver a hierarquia de um SDK ou ferramenta específica nos provedores de credenciais em [Provedores de credenciais padronizadas de SDKs e ferramentas da AWS](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html).
+ Instale o gerador de tokens do Amazon Bedrock. Escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Python ]

Abra um terminal e execute o seguinte comando: 

```
pip install aws-bedrock-token-generator
```

------
#### [ Javascript ]

Abra um terminal e execute o seguinte comando: 

```
npm install @aws/bedrock-token-generator
```

------
#### [ Java ]

Se você usa o Maven, adicione a seguinte dependência ao `pom.xml`:

```
<dependency>
    <groupId>software.amazon.bedrock</groupId>
    <artifactId>aws-bedrock-token-generator</artifactId>
    <version>1.1.0</version>
</dependency>
```

Se você usa o Gradle, adicione o seguinte ao seu arquivo `build.gradle`:

```
implementation 'software.amazon.bedrock:aws-bedrock-token-generator:1.1.0'
```

------

**Exemplos**  
Para ver exemplos sobre como usar o gerador de tokens para gerar uma chave de API de curto prazo do Amazon Bedrock com suas credenciais padrão em diferentes linguagens, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Python ]

```
from aws_bedrock_token_generator import provide_token

token = provide_token()
print(f"Token: {token}")
```

------
#### [ Javascript ]

```
import { getTokenProvider } from "@aws/bedrock-token-generator";

// Create a token provider that uses default credentials and region providers.
// You can configure it to use other credential providers.
const provideToken = getTokenProvider();

async function example() {
    
  const token = await provideToken();

  // Use the token for API calls. The token has a default expiration of 12 hour.
  // If the expiresInSeconds parameter is specified during token creation, the 
  // expiration can be configured up to a maximum of 12 hours. However, the actual 
  // token validity period will always be the minimum of the requested expiration 
  // time and the AWS credentials' expiry time
  console.log(`Bearer Token: ${token}`);
}
```

------
#### [ Java ]

```
import software.amazon.bedrock.token.BedrockTokenGenerator;

// Credentials and region will be picked up from the default provider chain
BedrockTokenGenerator tokenGenerator = BedrockTokenGenerator.builder().build();
tokenGenerator.getToken();
```

------

Para ver mais exemplos de diferentes casos de uso ao gerar tokens, consulte os seguintes links:
+ [Python](https://github.com/aws/aws-bedrock-token-generator-python/blob/main/README.md)
+ [Javascript](https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md)
+ [Java](https://github.com/aws/aws-bedrock-token-generator-java/blob/main/README.md)

## Configurar a atualização automática de chaves de API de curto prazo do Amazon Bedrock
<a name="api-keys-refresh-short-term"></a>

É possível criar um script com a ajuda do pacote `aws-bedrock-token-generator` para regenerar programaticamente uma nova chave de curto prazo sempre que a atual expirar. Primeiro, é necessário atender aos pré-requisitos em [Gerar uma chave de API de curto prazo do Amazon Bedrock usando uma biblioteca de cliente](#api-keys-generate-short-term). Para ver exemplos de scripts que recuperam um token e fazem uma solicitação Converse, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Python ]

```
from aws_bedrock_token_generator import provide_token
import requests

def get_new_token():
    url = "https://bedrock-runtime.us-west-2.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"
    payload = {
        "messages": [
            {
                "role": "user",
                "content": [{"text": "Hello"}]
            }
        ]
    }

    # Create a token provider that uses default credentials and region providers.
    # You can configure it to use other credential providers.
    # https://github.com/aws/aws-bedrock-token-generator-python/blob/main/README.md
    # It can be used for each API call as it is inexpensive.
    token = provide_token()

    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {token}"
    }

    response = requests.post(url, headers=headers, json=payload)
    print(response.json())

if __name__ == "__main__":
    get_new_token()
```

------
#### [ Javascript ]

```
import { getTokenProvider } from "@aws/bedrock-token-generator";

// Create a token provider that uses default credentials and region providers.
// You can configure it to use other credential providers.
// https://github.com/aws/aws-bedrock-token-generator-js/blob/main/README.md
// This can be created just once. Use await provideToken() to fetch the token
const provideToken = getTokenProvider();

async function example() {
    const url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse";
    const payload = {
        messages: [
            {
                role: "user",
                content: [{ text: "Hello" }]
            }
        ]
    };
    const headers = {
        "Content-Type": "application/json",
        // provideToken retrieves a valid token. It can be used for each API call as it is inexpensive.
        "Authorization": `Bearer ${await provideToken()}`
    };
    await fetch(url, {
        method: 'POST',
        headers: headers,
        body: JSON.stringify(payload)
    })
}
```

------
#### [ Java ]

```
package com.amazon.bedrocktoken;

import software.amazon.bedrock.token.BedrockTokenGenerator;

import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class GetNewToken {
    public static void main(String[] args) throws Exception {
        // Use default credentials and region from environment/profile chain
        // Create a token generator that uses default credentials and region providers.
        // You can configure it to use other credential providers.
        // https://github.com/aws/aws-bedrock-token-generator-java/blob/main/README.md
        BedrockTokenGenerator tokenGenerator = BedrockTokenGenerator.builder().build();

        // getToken() retrieves a valid token. It can be used for each API call as it is inexpensive.
        String token = tokenGenerator.getToken();

        String url = "https://bedrock-runtime.us-west-2.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse";
        String payload = "{\n" +
                "    \"messages\": [\n" +
                "        {\n" +
                "            \"role\": \"user\",\n" +
                "            \"content\": [{ \"text\": \"Hello\" }]\n" +
                "        }\n" +
                "    ]\n" +
                "}";

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create(url))
            .header("Content-Type", "application/json")
            .header("Authorization", "Bearer " + token)
            .POST(HttpRequest.BodyPublishers.ofString(payload))
            .build();

        HttpClient client = HttpClient.newHttpClient();
        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());

        System.out.println(response.body());
    }
}
```

------

# Usar uma chave de API do Amazon Bedrock
<a name="api-keys-use"></a>

É possível usar sua chave de API do Amazon Bedrock das seguintes maneiras:
+ **Defina-a como variável de ambiente**: o serviço Amazon Bedrock reconhece a variável de ambiente `AWS_BEARER_TOKEN_BEDROCK`. Você tem as seguintes opções para definir a chave:
  + Abra um terminal para configurá-la:
    + **MacOS/Linux**

      ```
      export AWS_BEARER_TOKEN_BEDROCK=${api-key}
      ```
    + **Windows**

      ```
      setx AWS_BEARER_TOKEN_BEDROCK "${api-key}"
      ```
  + Defina-a como uma variável de ambiente em seu código antes de fazer a solicitação de API. Por exemplo, você poderia incluir as seguintes linhas antes de fazer a solicitação:
    + **Python**

      ```
      import os                      
      os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"
      ```
+ **Especifique-a em uma solicitação**: é possível incluir a chave de API do Amazon Bedrock no cabeçalho de autorização das seguintes formas (substitua *\$1AWS\$1BEARER\$1TOKEN\$1BEDROCK* pelo valor real):
  + **Em uma solicitação HTTP direta**: inclua o seguinte como cabeçalho de autorização:

    ```
    Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK
    ```
  + **Como parâmetro em um SDK compatível**: especifique o valor no parâmetro ao configurar o cliente. Por exemplo, você pode especificá-lo no campo `api_key` ao configurar um cliente com o [SDK Python da OpenAI](https://github.com/openai/openai-python?tab=readme-ov-file#usage).

**nota**  
As chaves de API do Amazon Bedrock estão restritas às ações do [Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock.html) e do [Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Amazon_Bedrock_Runtime.html). Não é possível usar as seguintes operações de API:  
[InvokeModelWithBidirectionalStream](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModelWithBidirectionalStream.html).
Operações de API dos recursos [Agentes para Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html) ou [Agentes para Amazon Bedrock Runtime](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Agents_for_Amazon_Bedrock.html).
Operações de API da [Automação de Dados para Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Data_Automation_for_Amazon_Bedrock.html) ou do [Runtime para Automação de Dados do Amazon Bedrock](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_Operations_Runtime_for_Amazon_Bedrock_Data_Automation).

Para ver um exemplo sobre como usar a chave de API para enviar uma solicitação [Converse](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html) para gerar uma resposta, escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Python ]

O exemplo a seguir mostra como enviar uma solicitação de API com o AWS SDK para Python (Boto3). Se você ainda não definiu a chave de API como a variável de ambiente`AWS_BEARER_TOKEN_BEDROCK`, especifique-a no lugar de *\$1\$1api-key\$1* no seguinte código:

```
import os
import boto3
                        
# If you already set the API key as an environment variable, you can comment this line out                        
os.environ['AWS_BEARER_TOKEN_BEDROCK'] = "${api-key}"

# Create an Amazon Bedrock client
client = boto3.client(
    service_name="bedrock-runtime",
    region_name="us-east-1" # If you've configured a default region, you can omit this line
)

# Define the model and message
model_id = "us.anthropic.claude-3-5-haiku-20241022-v1:0"
messages = [{"role": "user", "content": [{"text": "Hello"}]}]

response = client.converse(
    modelId=model_id,
    messages=messages,
)
```

------
#### [ HTTP Client (requests package in Python) ]

**Pré-requisito:** instale o pacote `requests` abrindo um terminal e executando o seguinte comando:

```
python3 -m pip install requests
```

O código de exemplo a seguir mostra como enviar diretamente uma solicitação de API com um cliente HTTP. Especifique a *\$1\$1api-key\$1* no cabeçalho.

```
import requests

url = "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse"

payload = {
    "messages": [
        {
            "role": "user",
            "content": [{"text": "Hello"}]
        }
    ]
}

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer ${api-key}"
}

response = requests.request("POST", url, json=payload, headers=headers)

print(response.text)
```

------
#### [ HTTP request using cURL ]

O código de exemplo a seguir mostra como enviar diretamente uma solicitação de API usando cURL. Se você não definiu a chave de API como a variável de ambiente AWS\$1BEARER\$1TOKEN\$1BEDROCK, precisará substituir `$AWS_BEARER_TOKEN_BEDROCK` no exemplo pelo valor literal da chave.

```
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/model/us.anthropic.claude-3-5-haiku-20241022-v1:0/converse" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $AWS_BEARER_TOKEN_BEDROCK" \
  -d '{
    "messages": [
        {
            "role": "user",
            "content": [{"text": "Hello"}]
        }
    ]
  }'
```

------

# Modificar as permissões para chaves de API de longo e curto prazos do Amazon Bedrock
<a name="api-keys-modify"></a>

Ao gerar uma chave de longo prazo da API do Amazon Bedrock, você cria um usuário do IAM associado à chave. Para alterar as permissões associadas à chave, modifique as permissões do usuário do IAM por meio do serviço IAM. Para ter mais informações, consulte [Adicionar e remover permissões de identidade do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html) no Guia do usuário do IAM.

**nota**  
Se você gerou a chave de longo prazo no Console de gerenciamento da AWS, ela [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)será anexada a ela por padrão. Se você planeja modificar as permissões, remova essa política antes de definir permissões personalizadas.

## Exemplo de modificação de permissões para chaves de API
<a name="api-keys-modify-example"></a>

O procedimento a seguir mostra como você pode [AmazonBedrockLimitedAccess](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonBedrockLimitedAccess)substituir o por um mais restritivo:

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. No painel de navegação à esquerda, selecione **Chaves de API**.

1. Selecione a guia **Chaves de API de longo prazo**.

1. Selecione a chave de API e escolha **Gerenciar no Console do IAM**.

1. Selecione a guia **Permissões**, escolha a **AmazonBedrockLimitedAccess**política e escolha **Remover**.
**nota**  
Neste momento, você removeu todas as permissões da APi chave e não poderá fazer nada com ela.

1. No painel **Políticas de permissões**, selecione **Criar política em linha** no menu suspenso **Adicionar permissões**.

1. Na seção **Editor de políticas**, escolha **JSON**. Cole a seguinte política no editor:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "bedrock:CallWithBearerToken"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "bedrock:InvokeModel*"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-west-2:111122223333:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "bedrock:InvokeModel*"
               ],
               "Resource": [
                   "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",
                   "arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-3-haiku-20240307-v1:0"
               ],
               "Condition": {
                   "StringLike": {
                       "bedrock:InferenceProfileArn": "arn:aws:bedrock:us-west-2:111122223333:inference-profile/us.anthropic.claude-3-haiku-20240307-v1:0"
                   }
               }
           }
       ]
   }
   ```

------

1. Escolha **Próximo**, forneça um **nome para a política** e selecione **Criar política**.

1. Com essa chave de API, um usuário agora só pode executar inferência com o perfil de inferência US Claude 3 Haiku da Anthropic no Oeste dos EUA (Oregon).

# Lidar com chaves de API de longo e curto prazo comprometidas do Amazon Bedrock
<a name="api-keys-revoke"></a>

Se sua chave de API for comprometida, você deverá revogar as permissões para usá-la. Há vários métodos que você pode usar para revogar as permissões de uma chave de API do Amazon Bedrock:
+ Para chaves de API Amazon Bedrock de longo prazo, você pode usar o [UpdateServiceSpecificCredential[ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html.html)](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html),, ou [DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html)para revogar permissões das seguintes maneiras:
  + Defina o status da chave como inativa. Você poderá reativar a chave posteriormente.
  + Redefina a chave. Essa ação gera uma nova senha para a chave.
  + Exclua a chave permanentemente.
**nota**  
Para realizar essas ações por meio da API, você deve se autenticar com AWS credenciais e não com uma chave de API do Amazon Bedrock.
+ Para chaves de API de longo e curto prazo do Amazon Bedrock, você pode anexar políticas do IAM para revogar permissões.

**Topics**
+ [Alterar o status de uma chave de API de longo prazo do Amazon Bedrock](#api-keys-change-status)
+ [Redefinir uma chave de API de longo prazo do Amazon Bedrock](#api-keys-reset)
+ [Excluir uma chave de API de longo prazo do Amazon Bedrock](#api-keys-delete)
+ [Anexar políticas do IAM para remover as permissões de uso de uma chave de API do Amazon Bedrock](#api-keys-iam-policies)

## Alterar o status de uma chave de API de longo prazo do Amazon Bedrock
<a name="api-keys-change-status"></a>

Se você precisar evitar que uma chave seja usada temporariamente, desative-a. Quando estiver tudo pronto para ela ser usada novamente, reative-a.

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como desativar uma chave**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. No painel de navegação à esquerda, selecione **Chaves de API**.

1. Na seção **Chaves de API de longo prazo**, escolha uma chave cujo **status** seja **inativa**.

1. Escolha **Ações**.

1. Selecione **Deactivate** (Desativar).

1. Para confirmar, selecione **Desativar chave de API**. O **status** da chave se torna **inativa**.

**Como reativar uma chave**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. No painel de navegação à esquerda, selecione **Chaves de API**.

1. Na seção **Chaves de API de longo prazo**, escolha uma chave cujo **status** seja **inativa**.

1. Escolha **Ações**.

1. Selecione **Ativar**.

1. Para confirmar, selecione **Ativar chave de API**. O **status** da chave se torna **ativa**.

------
#### [ Python ]

Para desativar uma chave usando a API, envie uma [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)solicitação com um [endpoint do IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html) e especifique as`Status`. `Inactive` Você pode usar o seguinte trecho de código para desativar uma chave, *\$1\$1ServiceSpecificCredentialId\$1* substituindo-a pelo valor retornado quando você criou a chave.

```
import boto3
                        
iam_client = boto3.client("iam")
                      
iam_client.update_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId},
    status="Inactive"
)
```

Para reativar uma chave usando a API, envie uma [UpdateServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateServiceSpecificCredential.html.html)solicitação com um [endpoint do IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html) e especifique as`Status`. `Active` Você pode usar o seguinte trecho de código para reativar uma chave, *\$1\$1ServiceSpecificCredentialId\$1* substituindo-a pelo valor retornado quando você criou a chave.

```
import boto3
                        
iam_client = boto3.client("iam")
                      
iam_client.update_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId},
    status="Active"
)
```

------

## Redefinir uma chave de API de longo prazo do Amazon Bedrock
<a name="api-keys-reset"></a>

Se o valor da chave tiver sido comprometido ou você não a tiver mais, redefina-a. A chave ainda não deve ter expirado. Se ela já tiver expirado, exclua a chave e crie outra.

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Como redefinir uma chave**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. No painel de navegação à esquerda, selecione **Chaves de API**.

1. Na seção **Chaves de API de longo prazo**, escolha uma chave.

1. Escolha **Ações**.

1. Selecione **Redefinir chave**.

1. Escolha **Próximo**.

------
#### [ Python ]

Para redefinir uma chave usando a API, envie uma [ResetServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ResetServiceSpecificCredential.html.html)solicitação com um [endpoint do IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html). Você pode usar o seguinte trecho de código para redefinir uma chave, *\$1\$1ServiceSpecificCredentialId\$1* substituindo-a pelo valor retornado quando você criou a chave.

```
import boto3
            
iam_client = boto3.client("iam")
          
iam_client.reset_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId}
)
```

------

## Excluir uma chave de API de longo prazo do Amazon Bedrock
<a name="api-keys-delete"></a>

Se você não precisar mais de uma chave ou ela tiver expirado, exclua-a.

Escolha a guia correspondente ao método de sua preferência e siga as etapas:

------
#### [ Console ]

**Para excluir uma chave**

1. Faça login no Console de gerenciamento da AWS com uma identidade do IAM que tenha permissões para usar o console Amazon Bedrock. Em seguida, abra o console Amazon Bedrock em [https://console.aws.amazon.com/bedrock.](https://console.aws.amazon.com/bedrock)

1. No painel de navegação à esquerda, selecione **Chaves de API**.

1. Na seção **Chaves de API de longo prazo**, escolha uma chave.

1. Escolha **Ações**.

1. Selecione **Excluir**.

1. Confirme a exclusão.

**Uma chave de API está vinculada a um usuário do IAM**  
A exclusão dessa chave de API não exclui o usuário do IAM que foi criado com essa chave como proprietário. Você pode excluir o usuário do IAM do console do IAM na próxima etapa.

------
#### [ Python ]

Para excluir uma chave usando a API, envie uma [DeleteServiceSpecificCredential](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceSpecificCredential.html.html)solicitação com um [endpoint do IAM](https://docs.aws.amazon.com/general/latest/gr/iam-service.html). Você pode usar o seguinte trecho de código para excluir uma chave, *\$1\$1ServiceSpecificCredentialId\$1* substituindo-a pelo valor retornado quando você criou a chave.

```
import boto3
            
iam_client = boto3.client("iam")
          
iam_client.delete_service_specific_credential(
    service_specific_credential_id=${ServiceSpecificCredentialId}
)
```

------

## Anexar políticas do IAM para remover as permissões de uso de uma chave de API do Amazon Bedrock
<a name="api-keys-iam-policies"></a>

Esta seção apresenta algumas políticas do IAM que você pode usar para restringir o acesso ao perfil de uma chave de API do Amazon Bedrock.

### Negar a uma identidade a possibilidade de fazer chamadas com uma chave de API do Amazon Bedrock
<a name="api-keys-iam-policies-deny-call-with-bearer-token"></a>

A ação que permite que uma identidade faça chamadas com uma chave de API do Amazon Bedrock é `bedrock:CallWithBearerToken`. Para evitar que uma identidade faça chamadas com a chave de API do Amazon Bedrock, você pode anexar uma política do IAM a uma identidade, dependendo do tipo de chave:
+ **Chave de longo prazo**: anexe a política ao usuário do IAM associado à chave.
+ **Chave de curto prazo**: anexe a política ao perfil do IAM usado para gerar a chave.

A política do IAM que você pode anexar à identidade do IAM é a seguinte:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "bedrock:CallWithBearerToken",
    "Resource": "*"
  }
}
```

------

### Invalidar sessão de um perfil do IAM
<a name="api-keys-iam-policies-invalidate-session"></a>

Se uma chave de curto prazo for comprometida, você poderá impedir que ela seja usada invalidando a sessão do perfil usada para gerar a chave. Para invalidar a sessão do perfil, anexe a política a seguir à identidade do IAM que gerou a chave. *2014-05-07T23:47:00Z*Substitua pelo tempo após o qual você deseja que a sessão seja invalidada.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"}
    }
  }
}
```

------

# Controlar as permissões para gerar e usar as chaves de API do Amazon Bedrock
<a name="api-keys-permissions"></a>

A geração e o uso das chaves de API do Amazon Bedrock são controlados por ações e chaves de condição nos serviços Amazon Bedrock e IAM.

**Controlar a geração de chaves de API do Amazon Bedrock**  
O [objetivo:](https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsidentityandaccessmanagementiam.html#awsidentityandaccessmanagementiam-actions-as-permissions) a CreateServiceSpecificCredential ação controla a geração de uma chave específica de serviço (como uma chave de API Amazon Bedrock de longo prazo). Você pode definir o escopo dessa ação para usuários do IAM como um recurso para limitar os usuários para os quais uma chave pode ser gerada.

É possível usar as seguintes chaves de condição para impor condições à permissão para a ação `iam:CreateServiceSpecificCredential`:
+ [iam: ServiceSpecificCredentialAgeDays](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) — Permite especificar, na condição, o tempo de expiração da chave em dias. Por exemplo, é possível usar essa chave de condição para permitir somente a criação de chaves de API que expirem em noventa dias.
+ [iam: ServiceSpecificCredentialServiceName](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#ck_ServiceSpecificCredentialAgeDays) — Permite especificar, na condição, o nome de um serviço. Por exemplo, é possível usar essa chave de condição para permitir somente a criação de chaves de API para o Amazon Bedrock e não para outros serviços.

**Controlar o uso de chaves de API do Amazon Bedrock**  
A [base:](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonbedrock.html#amazonbedrock-actions-as-permissions) a CallWithBearerToken ação controla o uso de uma chave de API Amazon Bedrock de curto ou longo prazo.

Você pode usar a chave de condição `bedrock:bearerTokenType` com [operadores de condição de string](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String) para especificar o tipo de token de portador ao qual aplicar a permissão `bedrock:CallWithBearerToken`. É possível especificar um dos seguintes valores:
+ `SHORT_TERM`: especifica chaves de API de curto prazo do Amazon Bedrock na condição.
+ `LONG_TERM`: especifica chaves de API de longo prazo do Amazon Bedrock na condição.

A seguinte tabela resume como impedir que uma identidade gere ou use as chaves de API do Amazon Bedrock:


****  

| Finalidade | Chave de longo prazo | Chave de curto prazo | 
| --- | --- | --- | 
| Impedir a geração de chaves | Anexe uma política que negue a ação iam:CreateServiceSpecificCredential a uma identidade do IAM. | N/D | 
| Impedir o uso de uma chave | Anexe uma política que negue a ação bedrock:CallWithBearerToken ao usuário do IAM associado à chave. | Anexe uma política que negue a ação bedrock:CallWithBearerToken às identidades do IAM que você não quer usem a chave. | 

**Atenção**  
Como uma chave de API do Amazon Bedrock de curto prazo usa credenciais existentes de uma sessão, é possível impedir o uso negando a ação `bedrock:CallWithBearerToken` na identidade que gerou a chave. No entanto, não é possível impedir a geração de uma chave de curto prazo.

## Exemplos de política para controlar a geração e o uso de chaves de API
<a name="api-keys-permissions-examples"></a>

Para ver exemplos de política do IAM para controlar a geração e o uso de chaves de API, selecione um dos seguintes tópicos:

**Topics**
+ [Impedir que uma identidade gere chaves de longo prazo e use as chaves de API do Amazon Bedrock](#api-keys-permissions-examples-prevent-generation-and-use)
+ [Impedir que uma identidade use chaves de API de curto prazo](#api-keys-permissions-examples-prevent-use-short-term)
+ [Impedir que uma identidade use chaves de API de longo prazo](#api-keys-permissions-examples-prevent-use-long-term)
+ [Impedir explicitamente que uma identidade use chaves de API de curto prazo](#api-keys-permissions-examples-deny-use-short-term-explicitly)
+ [Impedir explicitamente que uma identidade use chaves de API de longo prazo](#api-keys-permissions-examples-deny-use-long-term-explicitly)
+ [Permitir a criação de chaves do Amazon Bedrock somente se elas expirarem dentro de noventa dias](#api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days)

### Impedir que uma identidade gere chaves de longo prazo e use as chaves de API do Amazon Bedrock
<a name="api-keys-permissions-examples-prevent-generation-and-use"></a>

Para evitar que uma identidade do IAM gere chaves de API de longo prazo do Amazon Bedrock e use qualquer chave de API do Amazon Bedrock, anexe a seguinte política à identidade:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid":"DenyBedrockShortAndLongTermAPIKeys",
      "Effect": "Deny",
      "Action": [
        "iam:CreateServiceSpecificCredential",
        "bedrock:CallWithBearerToken"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
```

------

**Atenção**  
Mão é possível impedir a geração de chaves de curto prazo.
Essa política impedirá a criação de credenciais para todos os AWS serviços que oferecem suporte à criação de credenciais específicas do serviço. Para ter mais informações, consulte [Credenciais específicas do serviço para usuários do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_service-specific-creds.html).

### Impedir que uma identidade use chaves de API de curto prazo
<a name="api-keys-permissions-examples-prevent-use-short-term"></a>

Para evitar que uma identidade do IAM use chaves de API de curto prazo do Amazon Bedrock, anexe a seguinte política à identidade:

### Impedir que uma identidade use chaves de API de longo prazo
<a name="api-keys-permissions-examples-prevent-use-long-term"></a>

Para evitar que uma identidade do IAM use chaves de API de longo prazo do Amazon Bedrock, anexe a seguinte política à identidade:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:bearerTokenType": "LONG_TERM"
                }
            }
        }
    ]
}
```

------

### Impedir explicitamente que uma identidade use chaves de API de curto prazo
<a name="api-keys-permissions-examples-deny-use-short-term-explicitly"></a>

Para impedir explicitamente que uma identidade do IAM use chaves de API de curto prazo do Amazon Bedrock, mas permitir o uso de outras chaves de API, anexe a seguinte política à identidade:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:bearerTokenType": "SHORT_TERM"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*"
        }
    ]
}
```

------

### Impedir explicitamente que uma identidade use chaves de API de longo prazo
<a name="api-keys-permissions-examples-deny-use-long-term-explicitly"></a>

Para impedir explicitamente que uma identidade do IAM use chaves de API de longo prazo do Amazon Bedrock, mas permitir o uso de outras chaves de API, anexe a seguinte política à identidade:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "bedrock:bearerTokenType": "LONG_TERM"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "bedrock:CallWithBearerToken",
            "Resource": "*"
        }
    ]
}
```

------

### Permitir a criação de chaves do Amazon Bedrock somente se elas expirarem dentro de noventa dias
<a name="api-keys-permissions-examples-allow-bedrock-keys-expire-within-90-days"></a>

Para permitir que uma identidade do IAM crie uma chave de API de longo prazo somente se for para o Amazon Bedrock e se o prazo de expiração for de noventa dias ou menos, anexe a seguinte política à identidade:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Action": "iam:CreateServiceSpecificCredential",
           "Resource": "arn:aws:iam::123456789012:user/username",
           "Condition": {
               "StringEquals": {
                   "iam:ServiceSpecificCredentialServiceName": "bedrock.amazonaws.com"
               },
               "NumericLessThanEquals": {
                   "iam:ServiceSpecificCredentialAgeDays": "90"
               }
           }
       }
   ]
}
```

------