本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为数据源配置 VPC 连接
一些数据源在无法通过公共互联网访问的私有资源上运行,例如您使用 VPC 中的内部负载均衡器预置的本地 Confluence 数据中心实例。要抓取这些数据源,您需要创建 VPC 配置。Amazon Bedrock 使用该配置为您的 VPC 预置私有网络路径并访问资源。
VPC 配置是您的知识库中的一种可重复使用的资源。您创建一次,然后通过一个或多个数据源中的 ID 对其进行引用。当您创建需要私有连接的数据源时,您可以选择现有的 VPC 配置或创建新的 VPC 配置。
注意
当 Amazon Bedrock 预置 VPC 配置时,它会承担与您的知识库关联的 AWS Identity and Access Management (IAM) 角色,在您的账户中创建少量网络资源。Amazon Bedrock 创建的每个资源都有标签ManagedBy=VPCProxyService,该角色只能对带有该标签的资源执行操作。请参阅知识库 IAM 角色权限。
你提供什么
要创建 VPC 配置,您需要提供以下内容:
| Input | 为什么需要它 |
|---|---|
| 一个 VPC 和一个或多个子网 | Amazon Bedrock 将网络入口点(私有网关)放置到您的 VPC 的位置。您提供来自所选 VPC 的 1—6 个子网。 |
| 资源目标和端口 | 您要访问的资源的私有 IP 地址或 DNS 名称(和端口)。 |
| 知识库 IAM 角色 | Amazon Bedrock 扮演这个角色是为了在您的账户中预置网络资源。请参阅知识库 IAM 角色权限。 |
您不提供安全组。Amazon Bedrock 使用您的 VPC 的默认安全组作为网关。确保默认安全组的出站(出口)规则允许在请求的端口上到达您的目标。请参阅从默认安全组退出。
网络要求
Amazon Bedrock 通过仅使用私有网络接口(没有公有 IP 地址)创建的私有网关访问您的资源。网关通过 VPC 的私有(本地)网络到达您的目标,无法访问公有 IP 地址。必须可以从 VPC 内部私下访问您的资源目标:
-
内部负载均衡器 (
scheme: internal),其 DNS 名称解析为私有地址(例如10.、x172.、或x192.168.)。x -
私有 IP 地址或解析为 VPC 内私有地址的私有 DNS 名称。
不支持面向互联网的负载均衡器。即使是 VPC 内的 DNS 查询,面向互联网的负载均衡器也会返回其公有 IP 地址,私有网关无法访问这些地址。如果您的资源目前仅通过面向互联网的负载均衡器公开,请在同一 VPC 中创建(或指向)内部负载均衡器,并使用其 DNS 名称作为资源目标。
创建 VPC 配置
协议、TLS 服务器名称和主机标头
这三个设置是最常见的错误配置。使用以下指南选择正确的值。
protocol-
选择
HTTP通过纯文本 HTTP 调用资源,或HTTPS通过 TLS 调用资源。 tlsServerName-
protocol为必填项HTTPS。这是调用期间与资源的 TLS 证书主题备用名称匹配的服务器名称。将其设置为颁发证书的主机名(例如,app.internal.example.com)。允许使用最左边的单个通配符(例如,)。*.example.com如果通过 IP 地址访问资源但提供了名称证书,则设置tlsServerName为该名称。如果证书不匹配,则调用将失败 TLS 身份检查。此值必须是没有端口的主机名。 hostHeader-
可选,并且是独立于的应用层问题。
tlsServerName仅当您的资源、上游路由器或入口通过 HTTPHost标头进行路由,并且该主机与您原本发送的主机不同时才进行设置。如果您的资源为单个站点提供服务且未经路由Host,请将其保持未设置状态。 resolutionMode-
PUBLIC选择资源目标是可公开解析的名称还是公有 IP 地址。选择IN_VPC何时资源目标仅在您的 VPC(私有 DNS 或私有 IP 地址)内解析,这是内部资源的常见情况。字面上的私有 IP 目标(例如10.0.5.20)可在任何一种模式下运行,因为没有 DNS 名称需要解析。
资源目标限制
Amazon Bedrock 会在您创建配置resourceTarget时进行验证,以防止服务针对自身或内部基础设施。以下目标被拒绝:
-
环回地址 (
127.0.0.0/8、::1) 和。localhost -
Link-local 地址 (
169.254.0.0/16,fe80::/10),包括实例元数据终端节点169.254.169.254。 -
通配符或任意本地地址 (
0.0.0.0,::) 和区块。0.0.0.0/8 -
多播地址。
-
IPv6 文字。网关已配置 IPv4-only,因此 IP 目标必须是点阵四边形的 IPv4 地址。
允许 DNS 名称。验证无法解决这些问题,因此必须仍然可以从您的网关子网访问目标。
从默认安全组退出
由于 Amazon Bedrock 使用您的 VPC 的默认安全组作为网关,因此该安全组的出口规则必须允许接通。resourceTarget port如果默认安全组被锁定,则创建会很快失败并显示明确的消息,而不是稍后超时。在创建配置之前,请确保出口规则允许流量从网关子网到目标和端口。
知识库 IAM 角色权限
Amazon Bedrock 承担与您的知识库关联的 IAM 角色来预置并随后拆除您账户中的网络资源。该角色必须授予以下创建和删除权限,以及允许重试删除的读取权限。Amazon Bedrock 创建的每个资源都有标签ManagedBy=VPCProxyService,破坏性权限受该标签的限制,因此该角色只能对该功能创建的资源采取行动。
-
创建 —
vpc-lattice:CreateResourceGateway、、vpc-lattice:CreateResourceConfiguration、vpc-lattice:TagResource、、vpc-lattice:PutResourcePolicyram:CreateResourceShareram:TagResourceram:AssociateResourceShare、和iam:CreateServiceLinkedRole(一次性创建,适用于 VPC Lattice 服务相关角色)。 -
删除 —
vpc-lattice:DeleteResourceGatewayvpc-lattice:DeleteResourceConfiguration、和ram:DeleteResourceShare。 -
读取(验证和函数)—
vpc-lattice:GetResourceGateway、、、vpc-lattice:GetResourceConfigurationram:GetResourceSharesec2:DescribeSubnets、ec2:DescribeSecurityGroups和。ec2:DescribeVpcs
重要
同时授予vpc-lattice:GetResourceGateway和vpc-lattice:GetResourceConfiguration。由于删除权限是标签范围的,因此删除已删除的资源会返回访问被拒绝的错误,而不是未找到的错误。Amazon Bedrock 使用这些未标记的读取权限来区分已删除的资源(视为成功)是否存在真正的权限问题。没有它们,在部分失败后重试的删除可能会卡住。
以下示例策略授予所需的权限。将 region 和 accountId 替换为您自己的值。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VpcProxyCreateTagged", "Effect": "Allow", "Action": [ "vpc-lattice:CreateResourceGateway", "vpc-lattice:CreateResourceConfiguration", "vpc-lattice:TagResource" ], "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourcegateway/*", "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ], "Condition": { "StringEquals": { "aws:RequestTag/ManagedBy": "VPCProxyService", "aws:ResourceTag/ManagedBy": "VPCProxyService" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["ManagedBy"] } } }, { "Sid": "VpcProxyPutResourcePolicy", "Effect": "Allow", "Action": "vpc-lattice:PutResourcePolicy", "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" } } }, { "Sid": "VpcProxyRamCreate", "Effect": "Allow", "Action": "ram:CreateResourceShare", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/ManagedBy": "VPCProxyService" }, "StringEqualsIfExists": { "ram:RequestedResourceType": "vpc-lattice:ResourceConfiguration" } } }, { "Sid": "VpcProxyRamAssociate", "Effect": "Allow", "Action": "ram:AssociateResourceShare", "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" } } }, { "Sid": "VpcProxyRamTagOnCreate", "Effect": "Allow", "Action": "ram:TagResource", "Resource": [ "arn:aws:ram:region:accountId:resource-share/*" ], "Condition": { "StringEquals": { "aws:RequestTag/ManagedBy": "VPCProxyService", "aws:ResourceTag/ManagedBy": "VPCProxyService" }, "ForAllValues:StringEquals": { "aws:TagKeys": ["ManagedBy"] } } }, { "Sid": "VpcProxyDeleteTagged", "Effect": "Allow", "Action": [ "vpc-lattice:DeleteResourceConfiguration", "vpc-lattice:DeleteResourceGateway" ], "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourcegateway/*", "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" } } }, { "Sid": "VpcProxyRamDeleteTagged", "Effect": "Allow", "Action": "ram:DeleteResourceShare", "Resource": [ "arn:aws:ram:region:accountId:resource-share/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/ManagedBy": "VPCProxyService" }, "StringLike": { "ram:ResourceShareName": "vpc-proxy-share-*" } } }, { "Sid": "VpcProxyGetResource", "Effect": "Allow", "Action": [ "vpc-lattice:GetResourceConfiguration", "vpc-lattice:GetResourceGateway" ], "Resource": [ "arn:aws:vpc-lattice:region:accountId:resourcegateway/*", "arn:aws:vpc-lattice:region:accountId:resourceconfiguration/*" ] }, { "Sid": "VpcProxyRamGetResourceShares", "Effect": "Allow", "Action": "ram:GetResourceShares", "Resource": "*" }, { "Sid": "VpcProxyEc2Describe", "Effect": "Allow", "Action": [ "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Sid": "VpcProxyLatticeServiceLinkedRole", "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": [ "arn:aws:iam::accountId:role/aws-service-role/vpc-lattice.amazonaws.com/*" ], "Condition": { "StringEquals": { "iam:AWSServiceName": "vpc-lattice.amazonaws.com" } } } ] }
生命周期
-
VPC 配置过渡
CREATING到CREATED或到CREATE_FAILED。当您将其删除时,状态为DELETING、或DELETE_FAILED。 -
创建和删除是异步的。投票
GetVpcConfiguration以追踪进度。失败时,statusMessage列出可采取行动的原因,例如缺少权限。 -
删除是等效的。部分完成的删除会在您重试时收缩。