OpenAI-совместимый API Amazon Bedrock: base URL, аутентификация, модели и код (2026)
Да. У Amazon Bedrock есть OpenAI-совместимый API. Укажите в OpenAI SDK адрес https://bedrock-runtime.{region}.amazonaws.com/openai/v1, авторизуйтесь с помощью API-ключа Bedrock (или AWS SigV4) и передайте ID модели Bedrock, например openai.gpt-oss-120b-1:0. Так Bedrock обслуживает и Chat Completions API, и Responses API. Для новых приложений AWS рекомендует эндпоинт bedrock-runtime, а bedrock-mantle оставляет как вариант для совместимости. Важный нюанс: bedrock-runtime не реализует GET /models. Все сведения взяты из официальной документации Bedrock по Chat Completions и проверены 20 октября 2026 года.
В этом руководстве — оба эндпоинта, два типа API-ключей, ID моделей, код на curl, Python и Node, Guardrails, цены, ошибки, с которыми вы столкнётесь, и случаи, когда Bedrock подходит лучше, чем мультипровайдерный шлюз.
Краткая справка
| Параметр | Значение (на 20 октября 2026 г.) |
|---|---|
| Рекомендуемый base URL | https://bedrock-runtime.{region}.amazonaws.com/openai/v1 |
| Base URL для совместимости | https://bedrock-mantle.{region}.api.aws/v1 (некоторые модели используют /openai/v1) |
| Поддерживаемые API OpenAI | Chat Completions, Responses (в зависимости от модели), а также Anthropic Messages API |
| Аутентификация | API-ключ Bedrock в виде Authorization: Bearer … или AWS SigV4 |
| Примеры ID моделей | openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol |
Список моделей через /models |
Только на bedrock-mantle. На bedrock-runtime используйте ListFoundationModels |
| Регион | Ключи и эндпоинты привязаны к региону |
Источники: Chat Completions API, эндпоинты инференса, быстрый старт.
bedrock-runtime или bedrock-mantle: какой эндпоинт выбрать
По словам AWS, оба эндпоинта «используют один и тот же движок инференса Mantle». Название обозначает интерфейс эндпоинта, а не отдельный движок. Различаются они возможностями:
bedrock-runtime (рекомендуется) |
bedrock-mantle (совместимость) |
|
|---|---|---|
| Base URL | bedrock-runtime.{region}.amazonaws.com/openai/v1 |
bedrock-mantle.{region}.api.aws/v1 |
| API | InvokeModel, Converse, Chat Completions, Responses, Messages | Chat Completions, Responses, Messages |
GET /models |
Не реализован (404 UnknownOperationException) |
Поддерживается |
| Guardrails, интеллектуальная маршрутизация промптов, межрегиональный инференс | Да | См. карточку модели |
| Серверные инструменты (например, веб-поиск), фоновый инференс, Projects, Workspaces | Нет | Да |
| Квоты | Квоты по моделям для этого эндпоинта | Отдельные квоты по моделям |
Практическое правило от AWS: начинайте с bedrock-runtime. Переходите на bedrock-mantle, только если нужная модель или функция доступна исключительно там. На bedrock-mantle префикс пути зависит от модели. Запрос с неверным префиксом завершится ошибкой «model … isn't supported on this route», поэтому сверяйтесь с таблицей Programmatic Access в карточке модели.
Аутентификация: API-ключи Bedrock или SigV4
API-ключи Bedrock позволяют OpenAI SDK авторизоваться bearer-токеном, а не подписывать запросы учётными данными AWS (документация по API-ключам, 20 октября 2026 г.):
| Тип ключа | Срок действия | Основан на | Рекомендация AWS |
|---|---|---|---|
| Краткосрочный | До 12 часов (или длительность сессии) | Права IAM-субъекта, который его создал | Продакшн |
| Долгосрочный | До заданной даты истечения | Отдельный IAM-пользователь с прикреплёнными политиками | Только для экспериментов |
Практические советы:
- Генерируйте краткосрочные ключи в коде с помощью
pip install aws-bedrock-token-generator(Python) илиnpm install @aws/bedrock-token-generator(Node) и вызывайте провайдер перед каждым запросом. Пока токен действителен, возвращается кэшированный. - Долгосрочные ключи работают только в том регионе, где они созданы. Вызов в другом регионе завершится ошибкой
Credential should be scoped to a valid region. - Ограничивайте использование ключей IAM-действиями
bedrock:CallWithBearerTokenиbedrock-mantle:CallWithBearerToken. - Вызовы API записываются в CloudTrail. Сами ключи не логируются.
- В boto3 переменная
AWS_BEARER_TOKEN_BEDROCKтребует boto3 версии 1.39.0 или новее (быстрый старт).
Код: вызов Bedrock через OpenAI SDK
curl (API-ключ)
export OPENAI_API_KEY="<bedrock-api-key>"
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{"model": "openai.gpt-oss-120b-1:0",
"messages": [{"role": "user", "content": "Hello from Bedrock"}]}'
curl (SigV4, без API-ключа)
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
--aws-sigv4 "aws:amz:us-east-1:bedrock" \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
-d '{"model": "openai.gpt-oss-120b-1:0", "messages": [{"role": "user", "content": "Hello"}]}'
Python с автоматическим обновлением краткосрочных ключей
from aws_bedrock_token_generator import provide_token # pip install aws-bedrock-token-generator openai
from openai import OpenAI
REGION = "us-east-1"
def bedrock_client() -> OpenAI:
# provide_token() returns a cached token or mints a fresh short-term key (<= 12h)
return OpenAI(base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
api_key=provide_token())
r = bedrock_client().chat.completions.create(
model="openai.gpt-oss-120b-1:0",
messages=[{"role": "user", "content": "Explain Bedrock API keys in one sentence."}],
)
print(r.choices[0].message.content, r.usage)
Node.js
import OpenAI from "openai";
import { getTokenProvider } from "@aws/bedrock-token-generator";
const provideToken = getTokenProvider();
const client = new OpenAI({
baseURL: "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1",
apiKey: await provideToken(),
});
const r = await client.chat.completions.create({
model: "openai.gpt-oss-20b-1:0",
messages: [{ role: "user", content: "Name two Bedrock endpoints." }],
});
console.log(r.choices[0].message.content);
Список моделей
client.models.list() возвращает 404 на bedrock-runtime. Выполните aws bedrock list-foundation-models --region us-east-1 или направьте SDK на bedrock-mantle, чтобы получить список моделей:
curl -s "https://bedrock-mantle.us-east-1.api.aws/v1/models" -H "Authorization: Bearer $OPENAI_API_KEY"
Как добавить Bedrock Guardrail в запрос в стиле OpenAI
Guardrails передаются через дополнительные заголовки. Необязательное поле в теле запроса включает разметку входных данных:
r = bedrock_client().chat.completions.create(
model="openai.gpt-oss-20b-1:0",
messages=[{"role": "user", "content": "What is the weather like today?"}],
extra_headers={
"X-Amzn-Bedrock-GuardrailIdentifier": "GR12345",
"X-Amzn-Bedrock-GuardrailVersion": "DRAFT",
"X-Amzn-Bedrock-Trace": "ENABLED",
},
extra_body={"amazon-bedrock-guardrailConfig": {"tagSuffix": "xyz"}},
)
Названия заголовков взяты из официального примера guardrail.
Какие модели работают с OpenAI-совместимым API?
Поддержка API зависит от модели и от эндпоинта, поэтому проверяйте карточку каждой модели (таблица совместимости API). Примеры из документации AWS на 20 октября 2026 г.:
| Модель | Chat Completions на runtime | Responses на runtime | Примечания |
|---|---|---|---|
openai.gpt-oss-120b-1:0 / -20b-1:0 |
Да | Нет (Responses только на mantle) | GPT OSS с открытыми весами |
global.openai.gpt-5.6-sol |
Да | Да | Указана в быстром старте AWS, глобальный профиль инференса |
| Семейство GPT-6, GPT-5.x | По карточке модели | По карточке модели | Перечислены в разделе OpenAI таблицы совместимости |
| Anthropic Claude | Используйте Messages API (/anthropic) |
н/д | ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic |
Цены Bedrock на OpenAI-совместимые вызовы
Вы платите обычную потокенную ставку Bedrock за модель. За OpenAI-совместимый интерфейс доплаты нет. Примеры со страницы цен Bedrock, 20 октября 2026 г., за 1 млн токенов:
| Модель | Регион | Вход | Выход |
|---|---|---|---|
| gpt-oss-20b | Азиатско-Тихоокеанский (Сидней) | $0.0721 | $0.3090 |
| gpt-oss-120b | Азиатско-Тихоокеанский (Сидней) | $0.1545 | $0.6180 |
| GPT OSS Safeguard 20B | США Восток/Запад | $0.07 | $0.20 |
| GPT OSS Safeguard 120B | США Восток/Запад | $0.15 | $0.60 |
Ставки зависят от региона; кроме того, у Bedrock есть уровни Priority, Flex и Batch. Точную ставку смотрите через выбор региона на странице цен.
Типичные ошибки и их решение
| Ошибка | Причина | Решение |
|---|---|---|
404 UnknownOperationException на /models |
bedrock-runtime не реализует Models API |
Используйте ListFoundationModels или вызывайте /models на bedrock-mantle |
model … isn't supported on this route |
Неверный префикс пути на bedrock-mantle |
Проверьте в карточке модели: /v1 или /openai/v1 |
Credential should be scoped to a valid region |
Долгосрочный ключ используется вне своего региона | Создайте ключ в целевом регионе |
Unable to locate credentials |
boto3 старше 1.39.0 игнорирует AWS_BEARER_TOKEN_BEDROCK |
pip install --upgrade boto3 |
| Responses API не поддерживается для GPT OSS | GPT OSS поддерживает Responses только на bedrock-mantle |
Используйте Chat Completions или смените эндпоинт |
AccessDenied |
Нет доступа к модели или запрещён CallWithBearerToken |
Включите доступ к модели и проверьте политики IAM |
Bedrock, OpenAI напрямую или мультипровайдерный шлюз
| Задача | OpenAI-совместимый Bedrock | Прямой API провайдера | Мультипровайдерный шлюз (например, Flatkey) |
|---|---|---|---|
| Оставаться в аккаунте AWS, с IAM и CloudTrail | Лучший вариант | Нет | Нет |
| Использовать кредиты AWS или обязательства Enterprise Discount Program (EDP) | Да | Нет | Нет |
| Guardrails и контроль на уровне VPC | Да | Зависит от провайдера | Зависит от шлюза |
| Новейшая модель в день релиза | Зависит от модели | Обычно первым | По-разному |
| Один ключ для OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot, Zhipu | Только модели, размещённые в Bedrock | Нет | Да |
| Управление ключами по регионам | Обязательно | Нет | Нет |
Если вся ваша инфраструктура на AWS, OpenAI-совместимый API Bedrock — самый чистый вариант. Если нужны ещё и модели, которых нет в Bedrock, оставьте тот же код OpenAI SDK и просто смените base URL. С Flatkey один ключ на https://router.flatkey.ai/v1 открывает доступ к GPT, Claude, Gemini, Qwen, DeepSeek, Kimi и GLM:
import os
from openai import OpenAI
ROUTES = {
"bedrock": OpenAI(base_url="https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1",
api_key=os.environ["AWS_BEARER_TOKEN_BEDROCK"]),
"flatkey": OpenAI(base_url="https://router.flatkey.ai/v1",
api_key=os.environ["FLATKEY_API_KEY"]),
}
def ask(route, model, prompt):
r = ROUTES[route].chat.completions.create(model=model, messages=[{"role": "user", "content": prompt}])
return r.choices[0].message.content
print(ask("bedrock", "openai.gpt-oss-120b-1:0", "hi"))
print(ask("flatkey", "qwen3.8-max", "hi")) # same SDK, different provider
print(ask("flatkey", "claude-sonnet-5-5", "hi"))
На 20 октября 2026 г. страница gpt-6-sol на Flatkey указывает $1.20 за вход и $6.00 за выход на 1 млн токенов — это акционная цена при прейскурантной $2 / $10. Сравните её со своей ставкой Bedrock для той же модели. Подробнее: base URL для OpenAI-совместимых API, прямые аккаунты у провайдеров или AI API-шлюз и чек-лист корпоративного AI API-шлюза.
Чек-лист миграции: с OpenAI на Bedrock
- Выберите регион и подтвердите доступ к модели в консоли Bedrock.
- Замените
OPENAI_BASE_URLнаhttps://bedrock-runtime.{region}.amazonaws.com/openai/v1. - Замените ключ на провайдер краткосрочных API-ключей Bedrock. Не используйте долгосрочные ключи в продакшне.
- Сопоставьте названия моделей с ID Bedrock, например
gpt-oss-120b→openai.gpt-oss-120b-1:0. - Уберите вызовы
client.models.list()или перенесите их наbedrock-mantle. - Проверьте стриминг, вызовы инструментов и структурированный вывод по карточке каждой модели.
- Добавьте заголовки guardrail там, где этого требует политика.
- Проверьте квоты выбранного эндпоинта (обработка лимитов запросов).
- Отслеживайте расходы по моделям и командам (распределение затрат).
Частые вопросы
Поддерживает ли Amazon Bedrock API OpenAI?
Да. Bedrock реализует OpenAI Chat Completions и Responses API по адресу https://bedrock-runtime.{region}.amazonaws.com/openai/v1, поэтому существующий код на OpenAI SDK работает после замены base URL, API-ключа и ID модели.
Какой base URL у OpenAI-совместимого API Bedrock?
Рекомендуемый адрес — https://bedrock-runtime.{region}.amazonaws.com/openai/v1, например https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. Эндпоинт для совместимости — https://bedrock-mantle.{region}.api.aws/v1.
Как авторизовать OpenAI SDK в Bedrock?
Используйте API-ключ Amazon Bedrock в качестве api_key; он отправляется как Authorization: Bearer. Для продакшна AWS рекомендует краткосрочные ключи (до 12 часов). Подпись SigV4 на bedrock-runtime тоже работает.
Почему models.list() не работает в Bedrock?
Эндпоинт bedrock-runtime не реализует операцию OpenAI GET /models и возвращает 404 UnknownOperationException. Используйте ListFoundationModels или вызывайте /models на bedrock-mantle.
Можно ли использовать GPT OSS с Responses API в Bedrock?
Не на bedrock-runtime. Там GPT OSS поддерживает Chat Completions, а Responses API для GPT OSS доступен только на bedrock-mantle.
Есть ли доплата за OpenAI-совместимый эндпоинт?
AWS не указывает отдельной платы за этот интерфейс. Вы платите стандартную потокенную цену Bedrock за модель в своём регионе и на своём уровне.
Итог
Чтобы использовать OpenAI SDK в AWS, задайте base URL bedrock-runtime.{region}.amazonaws.com/openai/v1, используйте краткосрочные API-ключи Bedrock, сопоставьте ID моделей и откажитесь от models.list(). Если вашему стеку нужны и модели вне Bedrock, тот же подход с SDK работает с одним ключом через роутер Flatkey.
Последнее обновление: 20 октября 2026 г. · Flatkey Team. Сведения приведены по официальной документации AWS, ссылки на которую даны в тексте.


