Skip to content

Commit efc960b

Browse files
Vapi Taskerclaude
andcommitted
fix: correct External ID documentation - it's optional, not Vapi-generated
- External ID is optional, Vapi does NOT generate it - Added tabs showing trust policy with and without External ID - Removed step about updating trust policy with Vapi-generated ID - Updated troubleshooting section Co-Authored-By: Claude <noreply@anthropic.com>
1 parent ba3261b commit efc960b

1 file changed

Lines changed: 51 additions & 61 deletions

File tree

fern/providers/model/anthropic-bedrock.mdx

Lines changed: 51 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -37,35 +37,57 @@ Before configuring Anthropic Bedrock with Vapi, ensure you have:
3737
</Step>
3838

3939
<Step title="Attach the Trust Policy">
40-
Configure the trust policy to allow Vapi's AWS account to assume this role. Use the following trust policy:
40+
Configure the trust policy to allow Vapi's AWS account to assume this role.
4141

42-
```json title="Trust Policy"
43-
{
44-
"Version": "2012-10-17",
45-
"Statement": [
42+
<Tabs>
43+
<Tab title="Without External ID">
44+
Use this simpler policy if you don't need the additional security of an External ID:
45+
46+
```json title="Trust Policy (Basic)"
4647
{
47-
"Effect": "Allow",
48-
"Principal": {
49-
"AWS": "arn:aws:iam::533267069243:root"
50-
},
51-
"Action": "sts:AssumeRole",
52-
"Condition": {
53-
"StringEquals": {
54-
"sts:ExternalId": "YOUR_EXTERNAL_ID"
48+
"Version": "2012-10-17",
49+
"Statement": [
50+
{
51+
"Effect": "Allow",
52+
"Principal": {
53+
"AWS": "arn:aws:iam::533267069243:root"
54+
},
55+
"Action": "sts:AssumeRole"
5556
}
56-
}
57+
]
5758
}
58-
]
59-
}
60-
```
59+
```
60+
</Tab>
61+
<Tab title="With External ID">
62+
Use this policy if you want the additional security of an External ID:
6163

62-
<Warning>
63-
**About External ID**: The External ID provides an additional layer of security for cross-account access. You can either:
64-
- Provide your own External ID when creating the Vapi credential
65-
- Let Vapi generate one for you (returned in `authenticationArtifact.externalId`)
64+
```json title="Trust Policy (With External ID)"
65+
{
66+
"Version": "2012-10-17",
67+
"Statement": [
68+
{
69+
"Effect": "Allow",
70+
"Principal": {
71+
"AWS": "arn:aws:iam::533267069243:root"
72+
},
73+
"Action": "sts:AssumeRole",
74+
"Condition": {
75+
"StringEquals": {
76+
"sts:ExternalId": "YOUR_EXTERNAL_ID"
77+
}
78+
}
79+
}
80+
]
81+
}
82+
```
6683

67-
If Vapi generates the External ID, you must update this trust policy with the generated value after creating the credential.
68-
</Warning>
84+
Replace `YOUR_EXTERNAL_ID` with your chosen value. You'll use the same value when creating the Vapi credential.
85+
</Tab>
86+
</Tabs>
87+
88+
<Note>
89+
**About External ID**: The External ID is an optional security feature that provides an additional layer of protection for cross-account access. If you choose to use one, specify the same value in both your IAM trust policy and the Vapi credential configuration.
90+
</Note>
6991
</Step>
7092

7193
<Step title="Attach the Permissions Policy">
@@ -155,43 +177,11 @@ Before configuring Anthropic Bedrock with Vapi, ensure you have:
155177
| `region` | AWS region where Bedrock is enabled (e.g., `us-east-1`) |
156178
| `authenticationPlan.type` | Must be `aws-sts` for role assumption |
157179
| `authenticationPlan.roleArn` | The ARN of the IAM role you created |
158-
| `authenticationPlan.externalId` | Optional: Your chosen External ID. If omitted, Vapi generates one |
180+
| `authenticationPlan.externalId` | Optional: Your chosen External ID for additional security |
159181

160-
<Note>
161-
If you omit `externalId`, Vapi will generate one and return it in the response under `authenticationArtifact.externalId`. You must then update your IAM trust policy with this value.
162-
</Note>
163-
</Step>
164-
165-
<Step title="Update Trust Policy with Generated External ID (if applicable)">
166-
If Vapi generated an External ID for you, update your IAM role's trust policy:
167-
168-
1. Go to the **IAM Console** and select your role
169-
2. Click the **Trust relationships** tab
170-
3. Click **Edit trust policy**
171-
4. Replace `YOUR_EXTERNAL_ID` with the value from `authenticationArtifact.externalId`
172-
5. Save the changes
173-
174-
Your trust policy should now look like this:
175-
176-
```json title="Updated Trust Policy" {10}
177-
{
178-
"Version": "2012-10-17",
179-
"Statement": [
180-
{
181-
"Effect": "Allow",
182-
"Principal": {
183-
"AWS": "arn:aws:iam::533267069243:root"
184-
},
185-
"Action": "sts:AssumeRole",
186-
"Condition": {
187-
"StringEquals": {
188-
"sts:ExternalId": "vapi-generated-external-id-here"
189-
}
190-
}
191-
}
192-
]
193-
}
194-
```
182+
<Tip>
183+
If you don't need an External ID, you can remove the `Condition` block from your trust policy entirely.
184+
</Tip>
195185
</Step>
196186
</Steps>
197187

@@ -235,8 +225,8 @@ Here is a complete example of a Vapi credential configuration for Anthropic Bedr
235225
- **Solution**: Verify the trust policy includes Vapi's AWS account ID (`533267069243`) and the correct External ID
236226

237227
### Common error: "Invalid External ID"
238-
- **Cause**: The External ID in your trust policy doesn't match the one used by Vapi
239-
- **Solution**: Check the `authenticationArtifact.externalId` in your credential and update your trust policy accordingly
228+
- **Cause**: The External ID in your trust policy doesn't match the one in your Vapi credential
229+
- **Solution**: Ensure the `externalId` value in your Vapi credential exactly matches the `sts:ExternalId` in your IAM trust policy. If you're not using an External ID, remove the `Condition` block from your trust policy
240230

241231
### Common error: "Model access denied"
242232
- **Cause**: The IAM permissions policy doesn't grant access to the requested model, or model access isn't enabled in Bedrock

0 commit comments

Comments
 (0)