Skip to content

Commit 3fee439

Browse files
majiayu000waleedlatif1
authored andcommitted
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 dcebe3a commit 3fee439

2 files changed

Lines changed: 16 additions & 19 deletions

File tree

apps/sim/blocks/blocks/agent.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -370,9 +370,9 @@ Return ONLY the JSON array.`,
370370
title: 'AWS Access Key ID',
371371
type: 'short-input',
372372
password: true,
373-
placeholder: 'Enter your AWS Access Key ID',
373+
placeholder: 'Optional - uses AWS default credential chain if empty',
374374
connectionDroppable: false,
375-
required: true,
375+
required: false,
376376
condition: {
377377
field: 'model',
378378
value: BEDROCK_MODELS,
@@ -383,9 +383,9 @@ Return ONLY the JSON array.`,
383383
title: 'AWS Secret Access Key',
384384
type: 'short-input',
385385
password: true,
386-
placeholder: 'Enter your AWS Secret Access Key',
386+
placeholder: 'Optional - uses AWS default credential chain if empty',
387387
connectionDroppable: false,
388-
required: true,
388+
required: false,
389389
condition: {
390390
field: 'model',
391391
value: 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)