View a markdown version of this page

設定資料來源的 VPC 連線 - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

設定資料來源的 VPC 連線

有些資料來源會在無法透過公有網際網路連線的私有資源上執行,例如您在 VPC 中使用內部負載平衡器前置的現場部署 Confluence 資料中心執行個體。若要編目這些資料來源,您可以建立 VPC 組態。Amazon Bedrock 使用 組態將私有網路路徑佈建到您的 VPC 並連接 資源。

VPC 組態是知識庫上的可重複使用資源。您建立一次,然後透過來自一或多個資料來源的 ID 來參考它。當您建立需要私有連線的資料來源時,您可以選取現有的 VPC 組態或建立新的組態。

注意

當 Amazon Bedrock 佈建 VPC 組態時,它會擔任與您的知識庫相關聯的 AWS Identity and Access Management (IAM) 角色,在您的帳戶中建立一組小型聯網資源。Amazon Bedrock 建立的每個資源都會標記 ManagedBy=VPCProxyService,而且角色只能對帶有該標籤的資源採取行動。請參閱 知識庫 IAM 角色許可

您提供的內容

若要建立 VPC 組態,請提供下列項目:

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 名稱。

不支援面向網際網路的負載平衡器。面向網際網路的負載平衡器會將其公有 IP 地址傳回至 VPC 內 DNS 查詢,而私有閘道無法連線到這些地址。如果您的資源目前僅透過面向網際網路的負載平衡器公開,請在相同的 VPC 中建立 (或指向) 內部負載平衡器,並使用其 DNS 名稱做為資源目標。

建立 VPC 組態

Console
新增 VPC 組態
  1. 在資料來源組態中,在 VPC 組態下,選擇新增 VPC 組態。如果適當的組態已存在,請選取它,以在資料來源之間重複使用它。

  2. (選用) 輸入組態的名稱描述

  3. 針對 VPC ID,選取要用於連線的 VPC。

  4. 針對子網路 IDs,從選擇的 VPC 選取一或多個子網路。

  5. 針對資源目標,輸入資源的主機名稱或 IP 地址 (例如 10.0.1.50confluence.internal.example.com)。

  6. 針對連接埠,輸入要連線的連接埠號碼 (例如, 4438090)。

  7. 針對通訊協定,選擇 HTTPSHTTP

  8. 針對解析模式,選擇資源目標地址的解析方式:

    • 有 – 資源目標為可公開解析的主機名稱或 IP 地址。

    • 在 VPC 中 – 資源目標只能在 VPC 內解析。這是內部資源的常見案例。

  9. (選用) 對於主機標頭,輸入要與請求一起傳送的Host標頭值。只有當您的資源 (或上游路由器) 依 HTTP Host標頭路由時,才設定此選項。

  10. (HTTPS 必要) 針對 TLS 伺服器名稱,輸入資源的預期 TLS 憑證身分 (主體別名)。允許單一最左邊萬用字元 (例如 *.example.com)。

  11. 選擇建立

API

若要建立 VPC 組態,請傳送CreateVpcConfiguration請求。透過knowledgeBaseId路徑參數將所有操作範圍限定為知識庫;請求內文不包含帳戶 ID 或角色 ARN,因為 Amazon Bedrock 從知識庫解析這些操作。

POST /knowledgebases/knowledgeBaseId/vpcconfigurations/

請求內文使用下列欄位。

CreateVpcConfiguration 欄位
欄位 必要 描述
vpcId VPC 的 ID。符合 ^vpc-[a-zA-Z0-9]+$,最多 64 個字元。
subnetIds 來自指定 VPC 的 1–6 IDs。每個 都符合 ^subnet-[a-zA-Z0-9]+$
resourceTarget 資源的 IPv4 地址或 DNS 名稱 (1-255 個字元)。請參閱 資源目標限制
port 要連線的連接埠 (1–65535)。
protocol HTTPHTTPS
resolutionMode PUBLICIN_VPC 當目標僅在 VPC 內解析IN_VPC時,請使用 。
tlsServerName 有條件 protocol為 時為必要HTTPS。主機名稱符合資源的 TLS 憑證 (最多 253 個字元)。允許單一最左邊萬用字元。不得包含連接埠。
hostHeader 要傳送的 HTTP Host標頭值 (最多 255 個字元)。只有在您的資源依 Host標頭路由時才設定 。
name 人類可讀的名稱 (1-128 個字元)。
description 描述 (最多 512 個字元)。
clientToken 等冪符記。

建立是非同步的。 會CreateVpcConfiguration傳回狀態為 vpcConfigurationId且為 的202回應CREATING。輪詢GetVpcConfiguration直到狀態為 CREATED(或 CREATE_FAILED,在此情況下為原因statusMessage命名)。使用 ListVpcConfigurations 列出組態,並使用 DeleteVpcConfiguration 移除組態。

注意

如果您在具有相同子網路集的相同 VPC 中建立多個組態,它們會共用一個閘道。一組不同的子網路會佈建個別的閘道。

通訊協定、TLS 伺服器名稱和主機標頭

這三個設定是最常見的設定錯誤。使用下列指引來選擇正確的值。

protocol

選擇透過純文字 HTTP HTTP叫用資源,或透過 TLS HTTPS叫用資源。

tlsServerName

protocol為 時為必要HTTPS。這是叫用期間與資源的 TLS 憑證主體別名相符的伺服器名稱。將其設定為憑證發行的主機名稱 (例如 app.internal.example.com)。允許單一最左邊萬用字元 (例如 *.example.com)。如果 IP 地址到達資源,但顯示名稱的憑證,請將 tlsServerName設定為該名稱。如果憑證不相符,呼叫 TLS 身分檢查會失敗。此值必須是沒有連接埠的主機名稱。

hostHeader

選用,以及獨立於 的應用程式層考量tlsServerName。只有當您的資源或上游路由器或輸入透過 HTTP Host標頭路由,且該主機與您原本要傳送的內容不同時,才進行設定。如果您的資源為單一網站提供服務,但未透過 路由Host,請將其取消設定。

resolutionMode

選擇資源目標是可公開解析的名稱或公有 IP 地址PUBLIC的時間。選擇資源目標僅在 VPC (私有 DNS 或私有 IP 地址) 內解析IN_VPC的時間,這是內部資源的常見案例。常值私有 IP 目標 (例如 10.0.5.20) 可在任一模式下運作,因為沒有 DNS 名稱可解析。

資源目標限制

Amazon Bedrock 會在您建立組態resourceTarget時驗證,以防止服務被導向至本身或內部基礎設施。下列目標會遭到拒絕:

  • 回送地址 (127.0.0.0/8::1) 和 localhost

  • 連結本機地址 (169.254.0.0/16fe80::/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:CreateResourceGatewayvpc-lattice:CreateResourceConfigurationvpc-lattice:TagResourcevpc-lattice:PutResourcePolicyram:CreateResourceShareram:TagResourceram:AssociateResourceShareiam:CreateServiceLinkedRole(VPC Lattice 服務連結角色一次性)。

  • 刪除vpc-lattice:DeleteResourceGatewayvpc-lattice:DeleteResourceConfigurationram:DeleteResourceShare

  • 讀取 (驗證和冪等性)vpc-lattice:GetResourceGatewayvpc-lattice:GetResourceConfigurationram:GetResourceSharesec2:DescribeSubnetsec2:DescribeSecurityGroupsec2:DescribeVpcs

重要

同時授予 vpc-lattice:GetResourceGatewayvpc-lattice:GetResourceConfiguration。由於刪除許可是標籤範圍,刪除已刪除的資源會傳回拒絕存取的錯誤,而不是找不到的錯誤。Amazon Bedrock 使用這些未標記的讀取許可,從真正的許可問題中告知已刪除的資源 (視為成功)。如果沒有它們,在部分故障之後重試的刪除可能會卡住。

下列範例政策會授予所需的許可。將 regionaccountId 取代為您的值。

{ "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 組態會轉換CREATINGCREATED,或轉換到 CREATE_FAILED。刪除時,狀態為 DELETING、 或 DELETE_FAILED

  • 建立和刪除是非同步的。輪詢GetVpcConfiguration以追蹤進度。失敗時,請statusMessage命名可採取動作的原因,例如缺少許可。

  • 刪除是等冪的。部分完成的刪除會在您重試時收斂。