Skip to content

Commit 845a19a

Browse files
committed
fix: allow Bedrock provider to use AWS SDK default credential chain
Remove hard requirement for explicit AWS credentials in Bedrock provider. When access key and secret key are not provided, the AWS SDK automatically falls back to its default credential chain (env vars, instance profile, ECS task role, EKS IRSA, SSO). Closes #3694 Signed-off-by: majiayu000 <1835304752@qq.com>
1 parent e270756 commit 845a19a

File tree

2 files changed

+16
-19
lines changed

2 files changed

+16
-19
lines changed

apps/sim/blocks/blocks/agent.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -367,9 +367,9 @@ Return ONLY the JSON array.`,
367367
title: 'AWS Access Key ID',
368368
type: 'short-input',
369369
password: true,
370-
placeholder: 'Enter your AWS Access Key ID',
370+
placeholder: 'Optional - uses AWS default credential chain if empty',
371371
connectionDroppable: false,
372-
required: true,
372+
required: false,
373373
condition: {
374374
field: 'model',
375375
value: providers.bedrock.models,
@@ -380,9 +380,9 @@ Return ONLY the JSON array.`,
380380
title: 'AWS Secret Access Key',
381381
type: 'short-input',
382382
password: true,
383-
placeholder: 'Enter your AWS Secret Access Key',
383+
placeholder: 'Optional - uses AWS default credential chain if empty',
384384
connectionDroppable: false,
385-
required: true,
385+
required: false,
386386
condition: {
387387
field: 'model',
388388
value: providers.bedrock.models,

apps/sim/providers/bedrock/index.ts

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,6 @@ export const bedrockProvider: ProviderConfig = {
5050
executeRequest: async (
5151
request: ProviderRequest
5252
): Promise<ProviderResponse | StreamingExecution> => {
53-
if (!request.bedrockAccessKeyId) {
54-
throw new Error('AWS Access Key ID is required for Bedrock')
55-
}
56-
57-
if (!request.bedrockSecretKey) {
58-
throw new Error('AWS Secret Access Key is required for Bedrock')
59-
}
60-
6153
const region = request.bedrockRegion || 'us-east-1'
6254
const bedrockModelId = getBedrockInferenceProfileId(request.model, region)
6355

@@ -67,13 +59,18 @@ export const bedrockProvider: ProviderConfig = {
6759
region,
6860
})
6961

70-
const client = new BedrockRuntimeClient({
71-
region,
72-
credentials: {
73-
accessKeyId: request.bedrockAccessKeyId || '',
74-
secretAccessKey: request.bedrockSecretKey || '',
75-
},
76-
})
62+
const clientConfig: {
63+
region: string
64+
credentials?: { accessKeyId: string; secretAccessKey: string }
65+
} = { region }
66+
if (request.bedrockAccessKeyId && request.bedrockSecretKey) {
67+
clientConfig.credentials = {
68+
accessKeyId: request.bedrockAccessKeyId,
69+
secretAccessKey: request.bedrockSecretKey,
70+
}
71+
}
72+
73+
const client = new BedrockRuntimeClient(clientConfig)
7774

7875
const messages: BedrockMessage[] = []
7976
const systemContent: SystemContentBlock[] = []

0 commit comments

Comments
 (0)