AWS IoT Core搭配界面 VPC 端點使用 - AWS IoT Core

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

AWS IoT Core搭配界面 VPC 端點使用

透過 AWS IoT Core,您可以使用界面 VPC 端點,在虛擬私有雲端 (VPC) 內建立 IoT 控制平面端點和 IoT 資料端點。 https://docs.aws.amazon.com//vpc/latest/userguide/vpce-interface.html#create-interface-endpoint介面 VPC 端點採用一種AWS技術AWS PrivateLink,可讓您使用AWS私有 IP 地址存取在 上執行的服務。如需詳細資訊,請參閱 Amazon Virtual Private Cloud

若要將遠端網路上 欄位中的裝置,例如公司網路連接到 Amazon VPC,請參閱Network-to-Amazon VPC 連線矩陣中列出的選項。

建立AWS IoT Core控制平面的 VPC 端點

您可以為AWS IoT Core控制平面 API 建立 VPC 端點,將裝置連線至 AWS IoT服務和其他 AWS服務。若要開始使用 VPC 端點,請建立介面 VPC 端點,然後選取 AWS IoT Core做為AWS服務。如果您使用的是 CLI,請先呼叫 describe-vpc-endpoint-services,以確保您選擇特定 中存在 AWS IoT Core的可用區域AWS 區域。例如,在 us-east-1 中,此命令將如下所示:

aws ec2 describe-vpc-endpoint-services --service-name com.amazonaws.us-east-1.iot.api

請參閱以下詳細說明,為AWS IoT Core控制平面建立 Amazon VPC 介面端點

為AWS IoT Core資料平面建立 VPC 端點

您可以為AWS IoT Core資料平面 API 建立 VPC 端點,將您的裝置連線至 AWS IoT服務和其他 AWS服務。若要開始使用 VPC 端點,請建立介面 VPC 端點,然後選取 AWS IoT Core做為AWS服務。如果您使用的是 CLI,請先呼叫 describe-vpc-endpoint-services,以確保您選擇特定 中存在 AWS IoT Core的可用區域AWS 區域。例如,在 us-east-1 中,此命令將如下所示:

aws ec2 describe-vpc-endpoint-services --service-name com.amazonaws.us-east-1.iot.data
注意

已停用自動建立 DNS 記錄的 VPC 功能。若要連接這些端點,您必須手動建立私有 DNS 記錄。如需有關私有 VPC DNS 記錄的詳細資訊,請參閱介面端點的私有 DNS。如需 AWS IoT CoreVPC 限制的詳細資訊,請參閱 限制

若要將 MQTT 用戶端連線至 VPC 端點介面:

  • 您必須手動在連接到 VPC 的私有託管區域中建立 DNS 記錄。若要開始使用,請參閱建立私有託管區域

  • 在私有託管區域內,為 VPC 端點的每個彈性網路介面 IP 建立別名記錄。如果多個 VPC 端點有多個網路介面 IP,請在所有加權記錄中建立具有相同權重的加權 DNS 記錄。依描述欄位中的 VPC 端點 ID 進行篩選時,可從 DescribeNetworkInterfaces API 呼叫中取得這些 IP 地址。

請參閱以下詳細說明,以建立 Amazon VPC 介面端點設定資料平面的私有託管區域。AWS IoT Core

為AWS IoT Core登入資料提供者建立 VPC 端點

您可以建立 VPC 端點AWS IoT Core登入資料提供者,使用用戶端憑證型身分驗證來連接裝置,並取得 AWSSignature 第 4 版格式的臨時AWS登入資料。若要開始使用AWS IoT Core登入資料提供者的 VPC 端點,請執行 create-vpc-endpoint CLI 命令來建立介面 VPC 端點,然後選取AWS IoT Core登入資料提供者做為AWS服務。為了確保您選擇特定 中存在AWS IoT Core的可用區域AWS 區域,請先執行 describe-vpc-endpoint-services 命令。例如,在 us-east-1 中,此命令將如下所示:

aws ec2 describe-vpc-endpoint-services --service-name com.amazonaws.us-east-1.iot.credentials
注意

已停用自動建立 DNS 記錄的 VPC 功能。若要連接這些端點,您必須手動建立私有 DNS 記錄。如需有關私有 VPC DNS 記錄的詳細資訊,請參閱介面端點的私有 DNS。如需 AWS IoT CoreVPC 限制的詳細資訊,請參閱 限制

若要將 HTTP 用戶端連線至 VPC 端點介面:

  • 您必須手動在連接到 VPC 的私有託管區域中建立 DNS 記錄。若要開始使用,請參閱建立私有託管區域

  • 在私有託管區域內,為 VPC 端點的每個彈性網路介面 IP 建立別名記錄。如果多個 VPC 端點有多個網路介面 IP,請在所有加權記錄中建立具有相同權重的加權 DNS 記錄。依描述欄位中的 VPC 端點 ID 進行篩選時,可從 DescribeNetworkInterfaces API 呼叫中取得這些 IP 地址。

請參閱以下詳細說明,以建立 Amazon VPC 介面端點設定登入資料提供者的私有託管區域。AWS IoT Core

建立 Amazon VPC 介面端點

您可以建立介面 VPC 端點,以連線至由 提供支援AWS的服務AWS PrivateLink。使用下列程序建立連線至AWS IoT Core資料平面或AWS IoT Core憑證提供者的介面 VPC 端點。如需詳細資訊,請參閱使用介面 VPC 端點存取 AWS服務

注意

為AWS IoT Core資料平面和AWS IoT Core登入資料提供者建立 Amazon VPC 介面端點的程序類似,但您必須進行端點特定變更,才能使連線正常運作。

使用 VPC 端點主控台建立介面 VPC 端點

  1. 導覽至 VPC 端點主控台,在左側選單的虛擬私有雲端下,選擇端點,然後選擇建立端點

  2. 建立端點頁面中,指定下列資訊。

    • 選擇服務類別AWS 服務

    • 針對 Service Name (服務名稱),輸入關鍵字 iot 進行搜尋。在顯示的 iot 服務清單中,選擇端點。

      如果您為AWS IoT Core控制平面建立 VPC 端點,請選擇 的AWS IoT Core控制平面 API 端點AWS 區域。端點的格式為 com.amazonaws.region.iot.api

      如果您為AWS IoT Core資料平面建立 VPC 端點,請選擇您區域AWS IoT Core的資料平面 API 端點。端點的格式為 com.amazonaws.region.iot.data

      如果您為AWS IoT Core登入資料提供者建立 VPC 端點,請選擇您區域的AWS IoT Core登入資料提供者端點。端點的格式為 com.amazonaws.region.iot.credentials

      如果您為聯邦資訊處理標準 (FIPS) 區域建立 VPC 端點,請選擇 的 FIPS API 端點AWS 區域。端點的格式為 com.amazonaws.region.iot-fips.api。這僅適用於控制平面。

      注意

      中國區域中AWS IoT Core資料平面的服務名稱格式為 cn.com.amazonaws.region.iot.data。中國區域中AWS IoT Core控制平面的服務名稱格式為 com.amazonaws.region.iot.api

    • 針對 VPCSubnets (子網路),選擇要在其中建立端點的 VPC,以及要在其中建立端點網路的可用區域 (AZ)。

    • 針對啟用 DNS 名稱,請確定未針對AWS IoT Core資料平面和AWS IoT Core憑證提供者選取此端點的啟用。AWS IoT Core資料平面和AWS IoT Core登入資料提供者都不支援私有 DNS 名稱。

      對於AWS IoT Core控制平面,預設會選取啟用 DNS 名稱。這可確保對控制平面公有AWS IoT Core端點的任何請求都會改為透過 VPC 端點路由。啟用此功能時,您不需要設定私有託管區域。

    • 針對 Security group (安全群組),選擇要與端點網路介面建立關聯的安全群組。

    • 您可以選擇性地新增或移除標籤。標籤是您用來與端點建立關聯的名稱值對。

  3. 若要建立 VPC 端點,請選擇 Create endpoint (建立端點)。

建立AWS PrivateLink端點之後,您會在端點的詳細資訊索引標籤中看到 DNS 名稱清單。您可以使用您在本節中建立的其中一個 DNS 名稱來設定私有託管區域。如果您使用的是AWS IoT Core控制平面,則不需要設定私有託管區域。

設定私有託管區域

注意

如果您使用AWS IoT Core控制平面並選取啟用 DNS 名稱,則不需要設定私有託管區域。如果您停用它,則必須遵循此程序來設定私有託管區域。

您可以使用您在上一節中建立的其中一個 DNS 名稱來設定私有託管區域。

對於AWS IoT Core資料平面

DNS 名稱必須是您的網域組態名稱或IoT:Data-ATS端點。DNS 名稱範例可以是: xxx-ats.data.iot.region.amazonaws.com

對於AWS IoT Core登入資料提供者

DNS 名稱必須是您的iot:CredentialProvider端點。DNS 名稱範例可以是: xxxx.credentials.iot.region.amazonaws.com

對於AWS IoT Core控制平面

DNS 名稱必須是您的AWS IoT Core控制平面端點。AWS IoT Core控制平面的範例 DNS 名稱為 xxxx.api.iot.region.amazonaws.com

注意

為AWS IoT Core資料平面和AWS IoT Core登入資料提供者設定私有託管區域的程序類似,但您必須進行端點特定變更,才能使連線正常運作。

建立私有託管區域

使用 Route 53 主控台建立私有託管區域

  1. 導覽至 Route 53 Hosted zones (託管區域) 主控台,然後選擇 Create hosted zone (建立託管區域)。

  2. Create hosted zone (建立託管區域) 頁面中,指定下列資訊。

    • 針對網域名稱,輸入 iot:Data-ATS或 端點的iot:CredentialProvider端點地址。下列 AWSCLI 命令顯示如何透過公有網路取得端點: aws iot describe-endpoint --endpoint-type iot:Data-ATSaws iot describe-endpoint --endpoint-type iot:CredentialProvider

      注意

      如果您使用自訂網域,請參閱搭配使用自訂網域與 VPC 端點。AWS IoT Core登入資料提供者不支援自訂網域。

    • 針對 Type (類型),選擇 Private Hosted Zone (私有託管區域)。

    • 或者,您可以新增或移除要與託管區域建立關聯的標籤。

  3. 若要建立私有託管區域,請選擇 Create hosted zone (建立託管區域)。

如需詳細資訊,請參閱建立私有託管區域

建立記錄

在建立了私有託管區域之後,您可以建立記錄,告訴 DNS 您想要流量路由至該網域的方式。

建立記錄

  1. 在顯示的託管區域清單,選擇您先前建立的私有託管區域,然後選擇 Create record (建立記錄)。

  2. 使用精靈方法來建立記錄。如果主控台呈現 Quick create (快速建立) 方法,請選擇 Switch to wizard (切換至精靈)。

  3. Routing policy (路由政策) 選擇 Simple Routing (簡易路由),然後選擇 Next (下一步)。

  4. Configure records (設定記錄) 頁面中,選擇 Define simple record (定義簡易記錄)。

  5. Define simple record (定義簡易記錄) 頁面中:

    • 記錄名稱中,輸入iot:Data-ATS端點或iot:CredentialProvider端點。這必須與私有託管區域名稱相同。

    • 對於記錄類型,如果您只想要 IPv4 支援,請將值保留為 A - Routes traffic to an IPv4 address and someAWSresources。如果您只想要 IPv6 支援,請將值保留為 AAAA - Routes traffic to an IPv6 address and someAWSresources。如果您想要雙堆疊支援 (IPv4 和 IPv6),請使用相同的記錄名稱和值/路由流量AAAA在託管區域中建立兩個記錄 (A 和 。

    • 針對 Value/Route traffic to (值/路由流量至),選擇 Alias to VPC endpoint (VPC 端點的別名)。接著,選擇您的 Region (區域),然後從顯示的端點清單中選擇您先前建立的端點,如建立 Amazon VPC 介面端點所述。

  6. 選擇 Define simple record (定義簡易記錄) 來建立您的記錄。

透過 VPC AWS IoT Core端點控制對 的存取

您可以使用 VPC 條件內容金鑰,將裝置存取限制AWS IoT Core為僅允許透過 VPC 端點存取 。 AWS IoT Core支援下列 VPC 相關內容金鑰:

注意

AWS IoT Core不支援 VPC 端點的端點政策

例如,以下政策授予許可,以AWS IoT Core使用符合物件名稱的用戶端 ID 連線至 ,並發佈至物件名稱前綴的任何主題,條件是連接至具有特定 VPC 端點 ID 之 VPC 端點的裝置。此政策會拒絕與公有 IoT 資料端點的連線嘗試。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:Connect" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:client/${iot:Connection.Thing.ThingName}" ], "Condition": { "StringEquals": { "aws:SourceVpce": "vpce-1a2b3c4d" } } }, { "Effect": "Allow", "Action": [ "iot:Publish" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:topic/${iot:Connection.Thing.ThingName}/*" ] } ] }

限制

AWS IoT Core控制平面端點AWS IoT Core資料端點AWS IoT Core登入資料提供者端點目前支援 VPC 端點。只有在使用AWS IoT Core控制平面時,聯邦資訊處理標準 (FIPS) 端點才支援 VPC 端點

IoT 控制平面 VPC 端點的限制

本節涵蓋 IoT 控制平面 VPC 端點的限制。

  • VPC 端點只會提供 ATS 憑證。

  • 控制平面端點不支援自訂網域。

  • 如需 FIPS 安全政策的相關資訊,請參閱 FIPS 安全政策

IoT 資料 VPC 端點的限制

本節涵蓋 IoT 資料 VPC 端點的限制。

  • MQTT 持續作用期間限制為 230 秒。保持存活期間超過自動減少到 230 秒的時間。

  • 每個 VPC 端點支援總共 100,000 個並行連網裝置。如果您需要更多連線,請參閱 使用 擴展 VPC 端點AWS IoT Core

  • VPC 端點只會為 ATS 憑證提供服務,但自訂網域除外。

  • 不支援 VPC 端點政策

  • 對於為AWS IoT Core資料平面建立的 VPC 端點,AWS IoT Core 不支援使用區域或區域公有 DNS 記錄。

登入資料提供者端點的限制

本節涵蓋登入資料提供者 VPC 端點的限制。

  • VPC 端點只會提供 ATS 憑證

  • 不支援 VPC 端點政策

  • 登入資料提供者端點不支援自訂網域。

  • 對於為AWS IoT Core登入資料提供者建立的 VPC 端點, AWS IoT Core不支援使用區域或區域公有 DNS 記錄。

使用 擴展 VPC 端點AWS IoT Core

AWS IoT Core介面 VPC 端點透過單一介面端點限制為 100,000 個連線裝置。如果您的使用案例要求更多並行連線到代理程式,則我們建議使用多個 VPC 端點,並跨您的介面端點手動路由裝置。建立私有 DNS 記錄以將流量路由到 VPC 端點時,請確保建立的加權記錄數量與 VPC 端點數量一樣多,以將流量分配到多個端點。

搭配使用自訂網域與 VPC 端點

如果您想要搭配 VPC 端點使用自訂網域,您必須在私有託管區域中建立自訂網域名稱記錄,並在 Route53 中建立路由記錄。如需詳細資訊,請參閱建立私有託管區域

注意

只有AWS IoT Core資料端點才支援自訂網域。

的 VPC 端點可用性AWS IoT Core

AWS IoT Core介面 VPC 端點可在所有AWS IoT Core支援的區域中使用。中國區域和 不支援憑證提供者的AWS IoT CoreAWS IoT Core介面 VPC 端點AWS GovCloud (US) Regions。