Amazon Web Services · 23 September 2026
Kiro workshop — LASD Field Support Bureau. Amazon Irvine SNA16, room 01.105 (Arctic), 10:00 AM – 1:30 PM.
lasd07) and a
one-time password. That is the fallback — use it only if Builder ID
fails or you run out of free credits. See
If Builder ID does not work for you.| Windows | Click Start, type PowerShell, press Enter. A window
opens with a prompt starting PS C:\ |
|---|---|
| macOS | Press Command+Space, type Terminal, press Enter. |
| Linux | Open your usual terminal application. |
Type the command exactly, then press Enter. If a command is not recognised right after you install something, close the window and open a new one — that reloads the list of available commands.
Kiro is a few hundred megabytes. Start the download first and read Step 2 while it runs.
This is the method the workshop itself uses. An AWS Builder ID is a free personal profile, separate from any AWS account. On the free tier Kiro costs nothing.
Three things commonly stop a Builder ID being created in a room like this:
Any of those — stop and use the slip instead. It needs no email and no verification code, and it carries Kiro Pro Max rather than the free tier, so credits will not run out.
LASDWorkshopBedrock role; Applications lists Kiro, which
confirms the licence is active.If that address will not load at all, try the alternate portal.
If you already signed in to Kiro with a Builder ID, sign out first — open the Command
Palette and run Kiro: Sign Out.
Start URL: https://d-90667e4749.awsapps.com/start
Region: us-east-1On this route your licence is Kiro Pro Max. If Kiro says you have no subscription, tell the instructor rather than signing up personally.
DCVUrl, DCVUsername and
DCVUserPassword values — Event Outputs on the
workshop-windows-desktop stack.DCVUrl in your browser (HTTPS on port 8443).DCVUsername (Administrator) and DCVUserPassword. A
Visual Studio Code shortcut opens the workshop folder.workshop-setup-OK.txt. Once it appears, Claude Code is
configured and signed in — skip to the verify step.workshop-setup-OK.txt can take up to 15 minutes to appear, because the desktop keeps
installing in the background after it becomes reachable. If you get
workshop-setup-FAILED.txt, or neither file after ~15 minutes, sign out and back in to
retrigger it; if it still does not appear, tell the instructor. Claude Cowork needs its one-time
configuration import either way.
The AWS CLI is what gives Claude Code and the Agent Toolkit permission to talk to AWS. Check whether you already have it:
aws --version
You want version 2.35 or newer. If you see something like
aws-cli/2.33.15 it is too old for Step 6 — install the current version over the
top. If you see “command not found” or “not recognized”, it is not
installed yet.
aws --versionaws --versionIf you already use Homebrew, brew install awscli works too.
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version
Run this and answer the prompts. Same command on every operating system:
aws configure sso
| SSO session name | lasd |
|---|---|
| SSO start URL | https://d-90667e4749.awsapps.com/start |
| SSO region | us-east-1 |
| SSO registration scopes | sso:account:access |
| Account | 179201403914 (LASD Kiro Workshop Backup) |
| Role | LASDWorkshopBedrock |
| CLI default client Region | us-east-1 |
| CLI default output format | json |
| CLI profile name | lasd |
A browser window opens so you can approve the request. Then confirm it worked:
aws sso login --profile lasd
aws sts get-caller-identity --profile lasd
The second command should print account 179201403914 and a role name containing
LASDWorkshopBedrock. If it errors about credentials, run the
aws sso login line again.
Claude Code runs in the terminal. It does not need Node.js — the installer downloads a self-contained program.
irm https://claude.ai/install.ps1 | iex
If you get 'irm' is not recognized, you are in the older Command Prompt rather than
PowerShell. Either open PowerShell, or run this instead:
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
curl -fsSL https://claude.ai/install.sh | bash
claude --version
That should print a version number. claude doctor prints a diagnostic report
without starting a session.
The Agent Toolkit gives your coding agent current AWS documentation and tested, step-by-step AWS skills, so it stops guessing at APIs from memory. It is free. One command sets it up and it detects Kiro and Claude Code for you:
aws configure agent-toolkit
This needs AWS CLI 2.35 or newer (Step 3). On an older CLI it fails with:
aws: [ERROR]: argument subcommand: Found invalid choice 'agent-toolkit'
The toolkit also needs a small helper called uv. If the command complains that uv is missing, install it and run the command again:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
curl -LsSf https://astral.sh/uv/install.sh | sh
Your workshop credentials can create real AWS resources — S3 buckets, Lambda functions, DynamoDB tables, API Gateway APIs, CloudFormation stacks, CloudWatch logs — so the toolkit's skills work end to end, not just its documentation search.
A few things are deliberately blocked so one person cannot disrupt the workshop or run up a large bill. If your agent hits an “explicit deny” on any of these, the guardrail is working:
Roles your agent creates must carry the LASDWorkshopBoundary permissions boundary.
The agent normally handles this; if it reports that it cannot create a role, ask it to attach that
boundary and try again.
Do not set environment variables by hand. The workshop ships a setup script that does the whole
job: it reads the workshop's CloudFormation outputs, signs you in to the workshop's Cognito user
pool, and writes an AWS profile named workshop, your ~/.claude/settings.json
with the right model IDs and telemetry, and a Claude Cowork configuration file for later.
aws sts get-caller-identity
must succeed), and your Cognito username and password — published as Event Outputs
CognitoUsername and CognitoPassword on the
workshop-cognito stack. The instructor will show you where.
irm "https://ws-assets-prod-iad-r-iad-ed304a55c2ca1aee.s3.us-east-1.amazonaws.com/3cc53475-900a-4801-bc5b-21ed15439675/laptop-setup/setup.ps1" -OutFile setup.ps1
powershell -ExecutionPolicy Bypass -File setup.ps1
curl -fsSL "https://ws-assets-prod-iad-r-iad-ed304a55c2ca1aee.s3.us-east-1.amazonaws.com/3cc53475-900a-4801-bc5b-21ed15439675/laptop-setup/setup.sh" -o setup.sh
bash setup.sh
The script prints the resources it found, prompts for your Cognito username (an email address) and password, then tells you to restart Claude Code.
No long-lived AWS keys ever land on your laptop. The script installs a credential helper; each time Claude Code needs Bedrock it signs in to Cognito, exchanges the token through AWS STS for temporary credentials, and calls Bedrock with those. They refresh on their own. Because they are minted per person, every request is attributed to you rather than to a shared key — which is the whole point of this session.
| Primary model | global.anthropic.claude-sonnet-4-6 |
|---|---|
| Small / fast model | global.anthropic.claude-haiku-4-5-20251001-v1:0 |
| Heavy-reasoning model | global.anthropic.claude-opus-4-6-v1 |
| AWS profile created | workshop |
| Files written | ~/.aws/config, ~/.claude/settings.json,
~/claude-cowork-config.json |
All three models were tested in a real workshop account on the morning of the session and all three answered.
claude "What are the benefits of Amazon Bedrock?"
A sensible answer means Claude Code is installed, routed through Bedrock, and your credentials
are good. AccessDeniedException usually means the Cognito sign-in failed — re-run
the script and retype the password.
The setup script only works against the workshop's own account, because it looks up that
account's CloudFormation stacks. On the prepared account from the paper slip there is no Cognito to
sign in to, so configure Claude Code by hand. On macOS or Linux paste these; on Windows PowerShell
use $env:NAME = "value" in place of export NAME=value.
export AWS_PROFILE=lasd
export CLAUDE_CODE_USE_BEDROCK=1
export AWS_REGION=us-east-1
export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-5'
export ANTHROPIC_DEFAULT_SONNET_MODEL='us.anthropic.claude-sonnet-4-5-20250929-v1:0'
claude
Set both model lines. Pin only the Opus one and Claude Code sends its small background tasks to Opus too, which costs far more than it needs to.
Two differences on Bedrock either way: the web-search tool is unavailable, and
/logout does nothing because AWS handles sign-in. Reference:
Claude Code on Amazon Bedrock.
| Kiro says “There was an error signing you in” | Sign out (Command Palette → Kiro: Sign Out) and try again. For the
Kiro lab choose AWS Builder ID. Only on the paper-slip route do you choose
AWS IAM Identity Center, and then the Start URL must be entered exactly as printed. |
|---|---|
| Builder ID: no verification email arrives | Check spam, and check you can receive mail on this laptop at all. If it will not come through, switch to the paper slip — it needs no email. |
| Builder ID: “Additional verification required” | AWS asks for this when many people register from one location at once. Follow the prompt if you can; if it wants an authenticator app or security key you do not have, switch to the paper slip. |
| Builder ID: the sign-up page is blocked | Your laptop may filter the AWS sign-in domains. Nothing you can fix in the room — switch to the paper slip. |
| Kiro says you are out of credits | The free tier is 50 credits a month. Switch to the paper slip, which carries Kiro Pro Max. Do not buy credits. |
| Your one-time password is rejected | One-time passwords work once. If you already used it, or mistyped it several times, ask the instructor for a new one. |
aws: command not found |
Either the AWS CLI is not installed (Step 3), or you need to close the terminal and open a new one. |
Found invalid choice 'agent-toolkit' |
Your AWS CLI is older than 2.35. Reinstall from Step 3 and check
aws --version. |
| “on-demand throughput isn't supported” | The model was given without its us. prefix. Use
us.anthropic.claude-opus-5. |
| “Session token not found or invalid” | Your session expired — it lasts 12 hours. Run
aws sso login --profile lasd |
| Claude Code cannot find AWS credentials | AWS_PROFILE=lasd must be set in the same terminal you launched
claude from. |
| “The token '&&' is not a valid statement separator” | You ran the Command Prompt version of a command inside PowerShell. Use the PowerShell line. |
| Your agent reports an explicit deny | Check the blocked list in Step 6 — those denials are deliberate. |
| AWS account | 179201403914 (LASD Kiro Workshop Backup) |
|---|---|
| Region | us-east-1 |
| Access portal | https://d-90667e4749.awsapps.com/start |
| Access portal (alternate) | https://ssoins-7223c4f91f99f0d8.portal.us-east-1.app.aws |
| Permission set / role | LASDWorkshopBedrock |
| Permissions boundary | LASDWorkshopBoundary |
| Kiro lab sign-in | AWS Builder ID, free tier (50 credits/month) |
| Fallback sign-in | AWS IAM Identity Center + paper slip (Kiro Pro Max) |
| Claude model | us.anthropic.claude-opus-5 |
| Background model | us.anthropic.claude-sonnet-4-5-20250929-v1:0 |
| AWS CLI profile | lasd |