Pillar 4 · Knowledge · Intermediate

Claude in Amazon Bedrock: Deployment + AWS Integration.

This 83-lesson course teaches the same Claude API surface as claude-api-foundations but accessed through Amazon Bedrock rather than the direct Anthropic API. The deployment-specific substance is the AWS boto3 SDK, IAM-bound auth, the Bedrock converse API shape, regional model availability with cross-region inference profiles, and Bedrock-only features (Guardrails, Knowledge Bases, Agents). Everything else (prompt engineering, evals, tool use, RAG, MCP) mirrors Course 6 lesson-for-lesson.

83 Skilljar lessons·~420 min on Skilljar·D5 + D2

Mirrors Anthropic's Claude with Amazon Bedrock course on Skilljar.

Original course83 lessons · ~420 min
Claude with Amazon Bedrock
Take it on Anthropic Skilljar ↗
Claude in Amazon Bedrock: Deployment + AWS Integration, painterly hero showing the course's central concept with the Loop mascot as guide.
01 · What you'll learn

You'll walk away with

  1. How to enable Claude models in Bedrock and authenticate via AWS IAM (access keys, IAM roles, or SSO)
  2. How the boto3 bedrock-runtime client and the converse API differ from the direct Anthropic SDK
  3. What inference profiles are and how cross-region inference solves Bedrock's regional availability problem
  4. Which Claude features ride on top of Bedrock unchanged (prompt caching, vision, PDF support, tool use, extended thinking) and which are AWS-specific add-ons (Guardrails, Knowledge Bases, Bedrock Agents)
  5. How AWS-native controls (IAM, VPC endpoints, CloudTrail, KMS) fit into a Bedrock-hosted Claude deployment
  6. When to choose Bedrock vs the direct Anthropic API vs Vertex AI for a given workload
02 · Prerequisites

Read these first

03 · The course mirror

Lesson outline

Every lesson from Claude with Amazon Bedrock with our one-line simplification. The Skilljar course is the source; we summarize.

Show all 83 lessons
#Skilljar lessonOur simplification
1Introduction to the courseCourse intro; originally produced for AWS employees, now public. Same Claude API content via Bedrock.
2Overview of Claude modelsModel family overview; same models, accessed via Bedrock.
3Accessing the APIRequest lifecycle: client to server to Bedrock to model and back; never call from browser.
4Making a requestDEPLOYMENT-SPECIFIC: boto3.client('bedrock-runtime'), model id vs inference profile, converse API, regional availability.
5Multi-turn conversationsAppend assistant + user messages to maintain dialogue state; mirrors Course 6 with Bedrock content-block shape.
6Chat bot exerciseHands-on: build a minimal chat loop against Bedrock.
7System promptsDEPLOYMENT-SPECIFIC: Bedrock converse takes system=[{"text": "..."}] (list of blocks) instead of a plain string.
8System prompt exerciseHands-on: experiment with system prompts on Bedrock.
9TemperatureSampling control via inferenceConfig.temperature parameter on converse.
10StreamingDEPLOYMENT-SPECIFIC: Bedrock uses converse_stream (different method) returning EventStream.
11Controlling model outputmax_tokens via inferenceConfig.maxTokens; stop sequences via stopSequences.
12Structured dataCoax JSON via prompting; introduce schema thinking before tool use.
13Structured data exerciseHands-on: extract structured fields with prompted JSON.
14Quiz on working with the APISection quiz on Bedrock API mechanics.
15Prompt evaluationWhy systematic eval beats vibes; same content as Course 6.
16A typical eval workflowTest set + grader + iteration loop; canonical pattern.
17Generating test datasetsUse Claude itself (via Bedrock) to synthesize test inputs at scale.
18Running the evalLoop the test set through your prompt and capture outputs.
19Model-based gradingLLM-as-judge: rubric-driven grading with a separate Claude call.
20Code-based gradingDeterministic graders for format, regex, schema validation.
21Exercise on prompt evalsHands-on: stand up a small eval harness.
22Quiz on prompt evaluationsSection quiz on eval workflow.
23Prompt engineeringIntro to the canonical Anthropic prompt-engineering techniques.
24Being clear and directState the task plainly; ambiguity costs more than verbosity.
25Being specificSpecificity collapses the response space; vague asks invite drift.
26Structure with XML tagsXML tags as structural anchors Claude attends to reliably.
27Providing examplesFew-shot examples in the prompt steer style and format.
28Exercise on promptingHands-on: refactor a weak prompt using the four techniques.
29Quiz on prompt engineeringSection quiz on the prompting toolkit.
30Introducing tool useTools let Claude call your functions; Bedrock converse uses toolConfig shape.
31Tool functionsDefine the Python functions Claude will call.
32JSON schema for toolsJSON schema for tool inputs; the model only sees this schema.
33Handling tool use responsesIterate the response content blocks (text + toolUse) and dispatch.
34Running tool functionsExecute the tool function with the model-supplied arguments.
35Sending tool resultsAppend toolResult content blocks and re-call converse to continue.
36Multi-turn conversations with toolsMaintain the agentic loop across multiple tool calls.
37Adding multiple toolsRegister a tool list in toolConfig.tools; let Claude pick the right one per turn.
38Batch tool useSubmit many tool-use requests at once for cost-and-throughput wins.
39Structured data with toolsTool schemas as the cleanest path to structured outputs.
40Flexible tool extractionPatterns for parsing tool use across varied inputs.
41The text editor toolBuilt-in text-editor tool for file-edit workflows.
42Quiz on tool useSection quiz on tool-use mechanics.
43Introducing retrieval-augmented generationRAG = retrieve relevant docs and add them to context; Knowledge mitigation.
44Text chunking strategiesFixed-size, sentence-boundary, and semantic chunking tradeoffs.
45Text embeddingsDense vector representations for semantic search; on AWS often Bedrock-hosted Titan or Cohere embeddings.
46The full RAG flowEmbed -> store -> retrieve top-k -> augment prompt -> generate.
47Implementing the RAG flowHands-on RAG pipeline. Note: Bedrock Knowledge Bases provides a managed alternative.
48BM25 lexical searchKeyword/term-frequency retrieval as a complement to embedding search.
49A multi-search RAG pipelineCombine BM25 + embeddings with reciprocal rank fusion.
50Reranking resultsCross-encoder rerank of top-k retrievals before context insertion.
51Contextual retrievalAnthropic's contextual retrieval: prepend a chunk-aware summary before embedding.
52Quiz on retrieval-augmented generationSection quiz on RAG components.
53Extended thinkingReasoning mode where the model thinks before answering; surfaced as a content block.
54Image supportVision: pass images as base64 or S3 references in content blocks.
55PDF supportNative PDF inputs; large docs feed the Working Memory cliff.
56CitationsBuilt-in citations: model returns spans tying claims back to source docs.
57Prompt cachingCache stable prefixes (system prompt, RAG context) for major cost wins.
58Rules of prompt cachingTTLs, breakpoints, minimum sizes; cache-hit accounting on Bedrock.
59Prompt caching in actionHands-on: measure cache-hit savings on a realistic workload.
60Quiz on features of ClaudeSection quiz on cross-cutting features.
61Introducing MCPModel Context Protocol: standard for connecting tools/data to Claude.
62MCP clientsClaude Desktop, Claude Code, custom clients; all speak the same protocol.
63Project setupStand up an MCP server scaffold for the section.
64Defining tools with MCPExpose tools through MCP rather than per-app tool schemas.
65The server inspectorAnthropic's MCP inspector for debugging server output.
66Implementing a clientBuild a custom MCP client around Claude on Bedrock.
67Defining resourcesMCP resources: model-pull data sources.
68Accessing resourcesWire resources into the client and let Claude read them.
69Defining promptsMCP prompts: server-provided prompt templates.
70Prompts in the clientSurface MCP-served prompts in client UI.
71MCP reviewRecap of tools/resources/prompts split.
72Quiz on Model Context ProtocolSection quiz on MCP architecture.
73Agents overviewAgentic loop intro. Note: Bedrock Agents is an AWS-managed alternative not covered in detail here.
74Claude Code setupInstall + configure Claude Code; can be configured against Bedrock-backed deployments.
75Claude Code in actionLive coding session demoing common workflows.
76Enhancements with MCP serversPlug MCP servers into Claude Code for repo/db/issue access.
77Parallelizing Claude Codegit worktrees + multiple sessions for parallel feature work.
78Automated debuggingSubagent-driven bug repro and fix loop.
79Computer useComputer-use tool: Claude controls a virtual desktop via screenshots + actions.
80How computer use worksAction loop: screenshot -> reason -> click/type -> repeat.
81Qualities of agentsWhat makes agents reliable vs brittle: scope, tools, evaluation, escalation.
82Final assessment quizEnd-of-course assessment across all sections.
83Course wrap-upRecap and pointers to deeper Bedrock + Anthropic resources.
04 · Our simplification

The course in 7 paragraphs

This course is the platform-agnostic Claude API course (Course 6 `claude-api-foundations`) wrapped in AWS; same prompt engineering, same eval workflow, same tool-use mechanics, same RAG patterns, same MCP protocol. If you have done Course 6, roughly 75 of the 83 lessons will feel familiar verbatim. The ~8 lessons that *justify a separate Knowledge page* are the deployment seam: how you authenticate, which API shape you call, how regions and inference profiles work, and how AWS-native enterprise features (Guardrails, Knowledge Bases, IAM, VPC endpoints, CloudTrail, KMS) fit on top. This page focuses on those seams; for everything else, lean on claude-api-foundations as the canonical reference.

Authentication on Bedrock is IAM-bound, not API-key-bound. You get credentials the AWS way: an IAM user with access keys for development (set via aws configure or environment variables), or an IAM role attached to your compute (EC2 instance profile, ECS task role, Lambda execution role) for production. The boto3.client('bedrock-runtime', region_name='us-west-2') call picks up credentials from the standard AWS credential chain automatically. There is no `ANTHROPIC_API_KEY`; auth is bound to an AWS principal, which means your IAM policy is the security boundary. Grant bedrock:InvokeModel and bedrock:InvokeModelWithResponseStream on the specific model ARNs you need, scope by region, and rotate via IAM Identity Center or short-lived STS credentials.

The SDK and API shape diverge from the direct Anthropic SDK in three load-bearing ways. First, the client: boto3.client('bedrock-runtime') instead of Anthropic() or AnthropicBedrock() (the latter exists as an Anthropic convenience wrapper, but the course uses raw boto3). Second, the API method: client.converse(modelId=..., messages=...) rather than messages.create(...). Third, the message shape: Bedrock's converse uses lists-of-content-blocks even for plain text, so a user message is {"role": "user", "content": [{"text": "What is 1+1?"}]} rather than the direct API's flat string. The system prompt is a list of blocks too: system=[{"text": "You are a helpful assistant."}]. Tool use uses toolConfig and toolUse/toolResult blocks. The semantics are identical to the direct API; the wrapping is verbose.

Regional model availability is the single biggest operational gotcha, and inference profiles are the AWS-specific fix. Not every Claude model is hosted in every AWS region; Claude Sonnet might be in us-west-2 while you are calling from us-east-1 and you will get a cryptic model not found error. The pre-2024 fix was to manually pin every call to the right region. The current AWS-native solution is inference profiles: a profile id (look under Cross-region inference in the Bedrock console, not under the main model catalog) that AWS automatically routes to a region where the model exists. You pass the inference profile id as modelId and AWS handles regional load balancing. This is a Bedrock-only concept; there is no analogue on Vertex or the direct API, so it is one of the most exam-relevant deployment-specific facts in the course.

AWS-side bonuses come in two flavors: managed services and enterprise controls. The managed-service tier sits on top of Bedrock and has no analogue on the direct API or Vertex: Bedrock Guardrails for content filters, PII redaction, and topic restrictions; Bedrock Knowledge Bases as managed RAG (ingest from S3, OpenSearch Serverless or Aurora as vector store); Bedrock Agents as higher-level agent orchestration with action groups, knowledge bases, and AWS-handled control flow. The Skilljar course teaches you the underlying primitives (tool use, RAG, agents) at the API level; the AWS-managed services are *alternatives* you can use instead of rolling your own. The control tier is the main reason regulated customers pick Bedrock: VPC endpoints (PrivateLink) keep traffic off the public internet, CloudTrail logs every InvokeModel call with caller identity, AWS KMS Customer-Managed Keys wrap inputs and outputs, AWS Config tracks compliance drift. The compliance story is `Bedrock's, not Anthropic's directly`: SOC, ISO, HIPAA-eligible (with a BAA), FedRAMP High in GovCloud, IRAP for Australia. Both tiers slot into existing AWS landing zones rather than requiring parallel security review.

Feature parity is high but not perfect, and the gaps move over time. Prompt caching, vision, PDF support, citations, extended thinking, and tool use generally land on Bedrock within weeks of the direct API release; the message-format protocol is identical though more verbose. The exceptions tend to be at the *tool* layer: the built-in web search tool and computer use have shipped with deployment-specific availability gates and may lag the direct API. The batch API is exposed as Bedrock's separate Batch Inference job runner rather than as inline messages.batches calls. Pricing is set by AWS and is typically priced per 1K input/output tokens at parity with the direct API, billed through your AWS invoice. Cache hits get the same multipliers; reserved throughput is an AWS-specific provisioned-capacity option for predictable high-volume workloads.

When to choose Bedrock vs the direct Anthropic API vs Vertex AI. Pick Bedrock when your stack is already on AWS; IAM, VPC endpoints, CloudTrail, KMS, billing, and your security review consolidate, and you avoid a second vendor relationship. The AWS-only managed services (Guardrails, Knowledge Bases, Agents) are real bonuses for regulated industries. Pick the direct Anthropic API when you want fastest access to new models and features, simpler key-based auth, and no cloud lock-in. Pick Vertex when you are on Google Cloud for the symmetric reasons. The application code is roughly 95% portable across all three; the differences are auth, the API method shape, the message wrapping, regional/inference-profile mechanics, and AWS-specific managed services. Picking a deployment platform is mostly an organizational decision (where your landing zone lives), not a technical one; and the exam expects you to recognize that.

05 · Listicle pattern

6 things that change when you move from the direct Anthropic API to Bedrock

If you already know the direct API (Course 6), these are the deltas you actually need to internalize. Everything else is unchanged.

  1. Auth: IAM, not API key

    No ANTHROPIC_API_KEY. Use aws configure, IAM roles on EC2/ECS/Lambda, or short-lived STS credentials. Auth is bound to an AWS principal and IAM policy is your security boundary. Required permission: bedrock:InvokeModel on the model ARN.

  2. Client: boto3 `bedrock-runtime`

    client = boto3.client('bedrock-runtime', region_name='us-west-2'). Use AWS standard credential chain. The Anthropic SDK ships an AnthropicBedrock convenience wrapper, but the official Skilljar course teaches raw boto3.

  3. Method: `converse`, not `messages.create`

    client.converse(modelId=..., messages=[user_message]). Streaming uses converse_stream. Response shape: response['output']['message']['content'][0]['text']. The semantics map 1:1 to the direct API but the wrapper is more verbose.

  4. Content blocks are always lists

    User message: {'role': 'user', 'content': [{'text': '...'}]}. System prompt: system=[{'text': '...'}]. The list shape is so multimodal content (images, documents) can be mixed; plain text just looks more verbose.

  5. Inference profiles for cross-region routing

    Models exist in specific regions. Use cross-region inference profiles (under Cross-region inference in the Bedrock console) so AWS auto-routes to a region where the model is available. Pass the profile id as modelId. Bedrock-only concept; no analogue on Vertex or direct API.

    Concept: tool-calling
  6. AWS-managed bonuses: Guardrails, Knowledge Bases, Agents

    Bedrock Guardrails for content controls, Bedrock Knowledge Bases for managed RAG, Bedrock Agents for managed agent orchestration. These are alternatives to rolling your own; useful for regulated industries that want managed compliance and operations.

06 · Key takeaways

6 takeaways with cross-pillar bridges

Bedrock deployment is the same Claude API surface as claude-api-foundations plus a different auth, API method, and message shape; about 75 of 83 lessons mirror Course 6 verbatim.

Authentication is AWS IAM (access keys, IAM roles, or STS short-lived credentials), not an API key; production uses an IAM role with bedrock:InvokeModel and the policy is the security boundary.

Bedrock uses boto3's bedrock-runtime client and the converse API; messages and system prompts are lists of content blocks even for plain text, which makes the API more verbose than the direct Anthropic SDK.

Cross-region inference profiles are the AWS-specific solution to regional model availability; pass an inference profile id as modelId and AWS routes to a region where the model exists. No analogue on Vertex or the direct API.

Bedrock-only managed services (Guardrails, Knowledge Bases, Agents) are alternatives to rolling your own; useful for regulated industries needing managed compliance, but the underlying primitives the exam tests are still tool use, RAG, and agents.

Application code is roughly 95% portable across direct API, Bedrock, and Vertex; choosing a deployment platform is mostly an organizational decision (where your AWS or GCP landing zone lives), not a technical one.

07 · Exam mapping

How this maps to the CCA-F exam

Domains
D5 Context + Reliability · D2 Tool Design + Integration
Blueprint
15% (D5) + 18% (D2)
What it advances
Maps directly to D5 task statements about deploying Claude in customer-managed cloud environments, IAM-bound auth, regional model availability, cross-region inference profiles, and quota management on AWS. The API/prompt/tool/RAG/MCP/agent content is the same as Course 6, so this page focuses on what differs at the deployment seam.
08 · Curated supplementary sources

3 hand-picked extras

These amplify the Skilljar course beyond what the course itself covers. Each was picked for a specific reason.

09 · Concepts wired

Concepts in this course

10 · Scenarios in play

Where you'll see this in production

11 · Sibling Knowledge

Other course mirrors you may want next

12 · AEO FAQ

8 questions answered

Phrased as the way real students search. Tagged by intent so you can scan to what you actually need.

ComparisonWhat is the difference between using Claude through the Anthropic API and through Amazon Bedrock?
The application code is roughly 95% identical; the differences are at the deployment seam. Bedrock uses AWS IAM instead of an ANTHROPIC_API_KEY, calls boto3.client('bedrock-runtime').converse(...) instead of Anthropic().messages.create(...), wraps content in lists of blocks even for plain text, uses inference profiles for cross-region availability, and gives you AWS-managed extras (Guardrails, Knowledge Bases, Agents). Choose Bedrock when your stack is on AWS; choose direct API for simpler auth and fastest access to new features.
How-toHow do I authenticate with Claude on Amazon Bedrock?
Use AWS standard credentials. In dev, run aws configure with an access key + secret. In production, attach an IAM role to your compute (EC2 instance profile, ECS task role, Lambda execution role); boto3 picks up the role automatically. Required permission is `bedrock:InvokeModel` (and bedrock:InvokeModelWithResponseStream for streaming) on the specific model ARN. There is no API key; auth is bound to an AWS principal and IAM policy is your security boundary.
TroubleshootWhy does my Bedrock request return a model-not-found error when the model exists?
Almost always a regional availability mismatch. Not every Claude model is hosted in every AWS region; for example, Claude Sonnet might be in us-west-2 while you are calling from us-east-1. The fix is to use a cross-region inference profile rather than the raw model id. Look under Cross-region inference in the Bedrock console (not the main model catalog), copy the profile id, and pass it as modelId. AWS will route the request to a region where the model is available.
DefinitionWhat is a Bedrock inference profile and when should I use one?
An inference profile is an AWS-Bedrock-specific abstraction that bundles a model with one or more regions where it can be served. Use one whenever you do not want to manually track model-region availability; which in practice means almost always in production. Pass the profile id as modelId and AWS automatically routes your request to a region with capacity. There is no analogue on Vertex AI or the direct Anthropic API; this is a Bedrock-only concept and a frequent exam topic for D5 deployment questions.
ComparisonShould I use Bedrock Knowledge Bases or build my own RAG pipeline on Bedrock?
Knowledge Bases is AWS's managed RAG service: it handles S3 ingestion, chunking, embedding (Titan or Cohere), vector storage (OpenSearch Serverless or Aurora), and retrieval. Use it when you want managed operations and your corpus lives in S3. Build your own when you need custom chunking strategies, contextual retrieval, hybrid BM25+embeddings with reranking, or non-S3 sources. The Skilljar course teaches the underlying primitives so you can do either; Knowledge Bases is the managed shortcut, your own pipeline is the precision option.
ScopeDoes prompt caching work on Claude through Amazon Bedrock?
Yes. Prompt caching, vision, PDF support, citations, extended thinking, and tool use all work on Bedrock with the same TTLs, breakpoint rules, and pricing multipliers as the direct API. The message-format protocol is identical (just wrapped in content-block lists). The features that occasionally lag are at the tool layer; built-in web search and computer use have shipped with deployment-specific availability gates. The batch API is exposed as Bedrock's separate Batch Inference jobs rather than inline messages.batches.
How-toHow do I install and use the boto3 SDK for Bedrock with Claude?
Run pip install boto3 (which most AWS Python projects already have). Then: `client = boto3.client('bedrock-runtime', region_name='us-west-2')`. Call client.converse(modelId=..., messages=...) to send a request. Extract the response with response['output']['message']['content'][0]['text']. For streaming, use client.converse_stream(...) and iterate the EventStream. There is also an AnthropicBedrock SDK from Anthropic that wraps boto3 with a more familiar Anthropic-style API surface; pick whichever feels more natural to your codebase.
ScopeCan I use HIPAA, FedRAMP, or IRAP-compliant Claude through Bedrock?
Yes; the compliance posture is AWS's, and Claude on Bedrock inherits it. SOC 1/2/3, ISO 27001, HIPAA-eligible (with a BAA), FedRAMP High in GovCloud regions, and IRAP for Australia all extend to Anthropic models served through Bedrock. The compliance story is `Bedrock's, not Anthropic's directly`, which is one of the main reasons regulated industries pick Bedrock over the direct API. Confirm the specific certifications in the AWS compliance program for your target region before going to production.
Last reviewed: 2026-05-06·Refresh cadence: 60 days; deployment-platform features (regional availability, inference profiles, Bedrock-managed services, IAM scopes, feature parity) shift faster than the platform-agnostic API surface, so refresh more aggressively than Course 6·View on Skilljar ↗
K · Intermediate · D5 · Context + Reliability

Claude in Amazon Bedrock: Deployment + AWS Integration, complete.

You've covered the full ten-section breakdown for this primitive, definition, mechanics, code, false positives, comparison, decision tree, exam patterns, and FAQ. One technical primitive down on the path to CCA-F.

Share your win →