主题
自带 IAM 角色(AWS)
为 LangSmith BYOC 创建客户管理的 IAM 角色,从预置角色中移除 IAM 管理权限,并使用现有角色进行部署。
自带 IAM(BYOIAM)让你创建和管理 LangSmith BYOC 数据平面所使用的 AWS IAM 资源。你控制角色、策略和权限边界,而 LangChain 使用这些资源来预置和运维数据平面。
如果你希望由 LangChain 管理 IAM 资源,请遵循标准的 BYOC 入门指南。
开始之前
完成 BYOC 先决条件,以获得一个已启用 BYOC 的 LangSmith 组织。
创建 IAM 资源
byoiam Terraform 模块创建共享的数据平面角色、策略和 Karpenter 实例配置文件。对使用这些角色的所有区域和数据平面,每个 AWS 账户应用一次。
要创建 IAM 资源:
- 为计划部署数据平面的账户配置 AWS 服务商。
- 将该模块添加到你的 Terraform 配置中。将
regions设置为这些角色需要运行的受支持 AWS 区域。 - (可选)将
permissions_boundary_arn设置为你的 IAM 权限边界策略的 ARN。该模块会将它应用于其创建的所有角色,服务关联角色除外。 - 使用
service_linked_roles_to_create创建缺失的服务关联角色。默认情况下不会创建任何服务关联角色。省略现有角色,或先将它们导入 Terraform。 - 初始化 Terraform,审核计划,并在你的账户中应用它。
以下配置为两个区域创建共享 IAM 资源:
hcl
module "byoiam" {
source = "github.com/langchain-ai/terraform//modules/byoc/aws/byoiam?ref=main"
regions = ["us-east-1", "us-west-1"]
}从预置角色中移除 IAM 管理权限
langsmith-byoc-role Terraform 模块创建 LangChain 用于管理你的数据平面时承担的跨账户角色。
创建 IAM 资源后,配置预置角色:
- 使用 Settings > Data Planes 中 Data Planes 标题旁的按钮复制外部 ID。将其作为
external_id传递给角色模块。该角色的信任策略必须在其ExternalId条件中使用此值。 - 在你的
langsmith-byoc-role模块配置中设置allow_iam_management_permissions = false。 - 审核并应用 Terraform 更改。保留
crossplane_role_arn输出以供创建数据平面时使用。
设置 allow_iam_management_permissions = false 会更改该角色的权限:
- 已移除:IAM 创建、修改和删除权限,包括服务关联角色创建。
- 已保留:IAM 读取权限、限定范围的
iam:PassRole,以及用于使用和验证你现有资源的iam:SimulatePrincipalPolicy。
启用 allow_delete_permissions 不会恢复 IAM 管理权限。
如果你还想自带 VPC,请设置 allow_vpc_creation_permissions = false,并在 vpc_ids 中提供 VPC ID。
使用现有角色部署数据平面
WARNING
你必须使用 byoiam Terraform 模块来创建 LangSmith 所需的准确 IAM 角色。LangSmith 在部署数据平面之前会对这些 IAM 资源进行大量验证。
Use existing IAM roles 复选框将数据平面配置为使用你创建的 IAM 资源。
要部署数据平面:
- 前往 Settings > Data Planes 并创建一个数据平面。
- 提供 BYOC 入门中描述的名称、AWS 区域、网络配置和负载均衡器访问方式。选择一个包含在该模块
regions输入中的区域。 - 将预置角色的
crossplane_role_arn输出用于 AWS IAM role ARN。 - 在提交请求前选择 Use existing IAM roles。
在入门指南中继续了解预置和私有连接。