Skip to content

Commit 12d9e35

Browse files
committed
improve enterprise permissions docs
1 parent 40b2e9c commit 12d9e35

File tree

1 file changed

+56
-1
lines changed

1 file changed

+56
-1
lines changed

docs/enterprise/deployment-permissions.mdx

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,32 @@ Create an IAM role in your AWS account with the policy below. Make sure to repla
6060
}
6161
```
6262

63+
In addition to these role permissions, make sure this role also has a Trust Relationship policy that allows the Kubernetes service account to assume it.
64+
65+
Below, you can see an example of a Trust Relationship policy using IRSA (IAM Roles for Service Accounts) to allow the `briefer-pull` Kubernetes service account to assume the role. Make sure to replace the placeholders with the actual values for your AWS account and EKS cluster.
66+
67+
```json
68+
{
69+
"Version": "2012-10-17",
70+
"Statement": [
71+
{
72+
"Effect": "Allow",
73+
"Principal": {
74+
"Federated": "arn:aws:iam::111111111111:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/ABC11111111111111111111111111111"
75+
},
76+
"Action": ["sts:TagSession", "sts:AssumeRoleWithWebIdentity"],
77+
"Condition": {
78+
"StringEquals": {
79+
"oidc.eks.us-east-1.amazonaws.com/id/11111111111111111111111111111111:sub": [
80+
"system:serviceaccount:<your-briefer-namespace-here>:briefer-pull"
81+
]
82+
}
83+
}
84+
}
85+
]
86+
}
87+
```
88+
6389
<Note>
6490
This permission allows the CronJob to assume a cross-account role in our AWS account and pull enterprise container images from our private ECR.
6591

@@ -72,6 +98,8 @@ Once the role is properly configured, the CronJob will handle authentication and
7298

7399
To enable Briefer's AI capabilities, your deployment role must have permission to invoke specific foundation models on AWS Bedrock.
74100

101+
First, make sure that you enable the desired models (Claude 3.5, Claude 3.7 and Titan) in your AWS account. You can do this by going to the AWS Bedrock console and enabling the models you want to use, [as explained in the AWS docs here](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access-modify.html).
102+
75103
The following policy grants the required access:
76104

77105
```json
@@ -85,7 +113,8 @@ The following policy grants the required access:
85113
"bedrock:InvokeModelWithResponseStream"
86114
],
87115
"Resource": [
88-
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-7-sonnet-20250219-v1:0"
116+
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-7-sonnet-20250219-v1:0",
117+
"arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-embed-text-v2:0"
89118
]
90119
},
91120
{
@@ -97,6 +126,32 @@ The following policy grants the required access:
97126
}
98127
```
99128

129+
Just like the ECR permissions, make sure this role also has a Trust Relationship policy that allows the Kubernetes service account to assume it.
130+
131+
As an example, here is a Trust Relationship policy using IRSA (IAM Roles for Service Accounts) to allow the `briefer-api` service account to assume the role. Make sure to replace the placeholders with the actual values for your AWS account and EKS cluster.
132+
133+
```json
134+
{
135+
"Version": "2012-10-17",
136+
"Statement": [
137+
{
138+
"Effect": "Allow",
139+
"Principal": {
140+
"Federated": "arn:aws:iam::111111111111:oidc-provider/oidc.eks.us-east-1.amazonaws.com/id/ABC11111111111111111111111111111"
141+
},
142+
"Action": ["sts:TagSession", "sts:AssumeRoleWithWebIdentity"],
143+
"Condition": {
144+
"StringEquals": {
145+
"oidc.eks.us-east-1.amazonaws.com/id/11111111111111111111111111111111:sub": [
146+
"system:serviceaccount:<your-briefer-namespace-here>:briefer-api"
147+
]
148+
}
149+
}
150+
}
151+
]
152+
}
153+
```
154+
100155
<Note>
101156
Make sure that you enable the Bedrock service in your AWS account and that you have access to the models you want to use.
102157
</Note>

0 commit comments

Comments
 (0)