Amazon Bedrock
OpenClaw는 pi-ai의 Bedrock Converse 스트리밍 프로바이더를 통해 Amazon Bedrock 모델을 사용할 수 있습니다. Bedrock 인증은 API 키가 아닌 AWS SDK 기본 자격 증명 체인을 사용합니다.
pi-ai 지원 범위
- 프로바이더:
amazon-bedrock - API:
bedrock-converse-stream - 인증: AWS 자격 증명 (환경 변수, 공유 설정 또는 인스턴스 역할)
- 리전:
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 프로바이더 이름과 매칭됩니다(예:anthropic).refreshInterval은 초 단위이며,0으로 설정하면 캐싱이 비활성화됩니다.defaultContextWindow(기본값:32000) 및defaultMaxTokens(기본값:4096)는 검색된 모델에 사용됩니다(모델 제한을 알고 있다면 재정의하세요).
온보딩
- 게이트웨이 호스트에서 AWS 자격 증명을 사용할 수 있는지 확인합니다:
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_REGION="us-east-1"
# 선택 사항:
export AWS_SESSION_TOKEN="..."
export AWS_PROFILE="your-profile"
# 선택 사항 (Bedrock API 키/Bearer 토큰):
export AWS_BEARER_TOKEN_BEDROCK="..."
- 설정에 Bedrock 프로바이더와 모델을 추가합니다(
apiKey불필요):
{
models: {
providers: {
"amazon-bedrock": {
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
api: "bedrock-converse-stream",
auth: "aws-sdk",
models: [
{
id: "us.anthropic.claude-opus-4-6-v1:0",
name: "Claude Opus 4.6 (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/us.anthropic.claude-opus-4-6-v1:0" },
},
},
}
EC2 인스턴스 역할
IAM 역할이 연결된 EC2 인스턴스에서 OpenClaw를 실행할 때, AWS SDK는 자동으로 인스턴스 메타데이터 서비스(IMDS)를 사용하여 인증합니다. 그러나 OpenClaw의 자격 증명 감지는 현재 환경 변수만 확인하며 IMDS 자격 증명은 확인하지 않습니다.
해결 방법: AWS_PROFILE=default를 설정하여 AWS 자격 증명이 사용 가능함을 알립니다. 실제 인증은 여전히 IMDS를 통한 인스턴스 역할을 사용합니다.
# ~/.bashrc 또는 셸 프로필에 추가
export AWS_PROFILE=default
export AWS_REGION=us-east-1
EC2 인스턴스 역할에 필요한 IAM 권한:
bedrock:InvokeModelbedrock:InvokeModelWithResponseStreambedrock:ListFoundationModels(자동 검색용)
또는 관리형 정책 AmazonBedrockFullAccess를 연결합니다.
빠른 설정 (AWS 방식)
# 1. IAM 역할 및 인스턴스 프로필 생성
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. EC2 인스턴스에 연결
aws ec2 associate-iam-instance-profile \
--instance-id i-xxxxx \
--iam-instance-profile Name=EC2-Bedrock-Access
# 3. EC2 인스턴스에서 검색 활성화
openclaw config set models.bedrockDiscovery.enabled true
openclaw config set models.bedrockDiscovery.region us-east-1
# 4. 해결 방법 환경 변수 설정
echo 'export AWS_PROFILE=default' >> ~/.bashrc
echo 'export AWS_REGION=us-east-1' >> ~/.bashrc
source ~/.bashrc
# 5. 모델 검색 확인
openclaw models list
참고 사항
- Bedrock를 사용하려면 AWS 계정/리전에서 모델 접근이 활성화되어 있어야 합니다.
- 자동 검색에는
bedrock:ListFoundationModels권한이 필요합니다. - 프로필을 사용하는 경우 게이트웨이 호스트에
AWS_PROFILE을 설정하세요. - OpenClaw는 다음 순서로 자격 증명 소스를 확인합니다:
AWS_BEARER_TOKEN_BEDROCK, 이후AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY, 이후AWS_PROFILE, 이후 기본 AWS SDK 체인. - 추론(reasoning) 지원은 모델에 따라 다릅니다. 현재 기능은 Bedrock 모델 카드를 확인하세요.
- 관리형 키 방식을 선호하는 경우, Bedrock 앞에 OpenAI 호환 프록시를 배치하고 OpenAI 프로바이더로 설정할 수도 있습니다.