Amazon Bedrock
OpenClaw는 pi‑ai의 Bedrock Converse 스트리밍 Provider를 통해 Amazon Bedrock 모델을 사용할 수 있습니다. Bedrock 인증은 API 키가 아닌 AWS SDK 기본 자격 증명 체인을 사용합니다.
pi‑ai가 지원하는 항목
- Provider: amazon-bedrock
- API: bedrock-converse-stream
- Auth: AWS 자격 증명 (환경 변수, 공유 설정 또는 인스턴스 역할)
- Region: AWS_REGION 또는 AWS_DEFAULT_REGION (기본값: us-east-1)
자동 모델 검색
AWS 자격 증명이 감지되면 OpenClaw는 스트리밍과 텍스트 출력을 지원하는 Bedrock 모델을 자동으로 검색할 수 있습니다. 검색은 bedrock:ListFoundationModels를 사용하며 캐시됩니다 (기본값: 1시간).
설정 옵션은 models.bedrockDiscovery 하위에 있습니다:
{
models: {
bedrockDiscovery: {
enabled: true,
region: "us-east-1",
providerFilter: ["anthropic", "amazon"],
refreshInterval: 3600,
defaultContextWindow: 32000,
defaultMaxTokens: 4096
}
}
}
참고사항:
- enabled는 AWS 자격 증명이 있을 때 기본적으로 true입니다.
- region은 AWS_REGION 또는 AWS_DEFAULT_REGION, 그 다음 us-east-1로 기본 설정됩니다.
- providerFilter는 Bedrock Provider 이름과 일치합니다 (예: anthropic).
- refreshInterval은 초 단위이며, 0으로 설정하면 캐싱이 비활성화됩니다.
- defaultContextWindow (기본값: 32000)와 defaultMaxTokens (기본값: 4096)는 검색된 모델에 사용됩니다 (모델 제한을 알고 있다면 재정의하세요).
설정 (수동)
- Gateway 호스트에서 AWS 자격 증명을 사용할 수 있는지 확인하세요:
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
# Optional:
export AWS_SESSION_TOKEN="..."
export AWS_PROFILE="your-profile"
# Optional (Bedrock API key/bearer token):
export AWS_BEARER_TOKEN_BEDROCK="..."
- 설정에 Bedrock Provider와 모델을 추가합니다 (apiKey는 필요 없음):
{
models: {
providers: {
"amazon-bedrock": {
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
api: "bedrock-converse-stream",
auth: "aws-sdk",
models: [
{
id: "anthropic.claude-opus-4-5-20251101-v1:0",
name: "Claude Opus 4.5 (Bedrock)",
reasoning: true,
input: ["text", "image"],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 200000,
maxTokens: 8192
}
]
}
}
},
agents: {
defaults: {
model: { primary: "amazon-bedrock/anthropic.claude-opus-4-5-20251101-v1:0" }
}
}
}
EC2 Instance 역할
IAM 역할이 연결된 EC2 인스턴스에서 OpenClaw를 실행할 때, AWS SDK는 인증을 위해 인스턴스 메타데이터 서비스 (IMDS)를 자동으로 사용합니다. 그러나 OpenClaw의 자격 증명 감지는 현재 환경 변수만 확인하고 IMDS 자격 증명은 확인하지 않습니다.
해결 방법: AWS 자격 증명이 사용 가능함을 알리기 위해 AWS_PROFILE=default를 설정하세요. 실제 인증은 여전히 IMDS를 통해 인스턴스 역할을 사용합니다.
# ~/.bashrc 또는 셸 프로필에 추가
export AWS_PROFILE=default
export AWS_REGION=us-east-1
EC2 인스턴스 역할에 필요한 IAM 권한:
- bedrock:InvokeModel
- bedrock:InvokeModelWithResponseStream
- bedrock:ListFoundationModels (자동 검색용)
또는 관리형 정책 AmazonBedrockFullAccess를 연결하세요.
빠른 설정:
# 1. Create IAM role and instance profile
aws iam create-role --role-name EC2-Bedrock-Access \
--assume-role-policy-document '{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {"Service": "ec2.amazonaws.com"},
"Action": "sts:AssumeRole"
}]
}'
aws iam attach-role-policy --role-name EC2-Bedrock-Access \
--policy-arn arn:aws:iam::aws:policy/AmazonBedrockFullAccess
aws iam create-instance-profile --instance-profile-name EC2-Bedrock-Access
aws iam add-role-to-instance-profile \
--instance-profile-name EC2-Bedrock-Access \
--role-name EC2-Bedrock-Access
# 2. Attach to your EC2 instance
aws ec2 associate-iam-instance-profile \
--instance-id i-xxxxx \
--iam-instance-profile Name=EC2-Bedrock-Access
# 3. On the EC2 instance, enable discovery
openclaw config set models.bedrockDiscovery.enabled true
openclaw config set models.bedrockDiscovery.region us-east-1
# 4. Set the workaround env vars
echo 'export AWS_PROFILE=default' >> ~/.bashrc
echo 'export AWS_REGION=us-east-1' >> ~/.bashrc
source ~/.bashrc
# 5. Verify models are discovered
openclaw models list
참고사항
- Bedrock는 AWS 계정/리전에서 모델 액세스가 활성화되어 있어야 합니다.
- 자동 검색에는 bedrock:ListFoundationModels 권한이 필요합니다.
- 프로필을 사용하는 경우 Gateway 호스트에서 AWS_PROFILE을 설정하세요.
- OpenClaw는 다음 순서로 자격 증명 소스를 표시합니다: AWS_BEARER_TOKEN_BEDROCK, 그 다음 AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY, 그 다음 AWS_PROFILE, 그 다음 기본 AWS SDK 체인.
- Reasoning 지원은 모델에 따라 다릅니다. 현재 기능은 Bedrock 모델 카드를 확인하세요.
- 관리형 키 흐름을 선호하는 경우 Bedrock 앞에 OpenAI 호환 프록시를 배치하고 대신 OpenAI Provider로 구성할 수도 있습니다.