

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

# 為 Amazon Chime SDK 會議設定您的網路
<a name="network-config"></a>

當您將 Amazon Chime 開發套件整合到您的用戶端應用程式時，開發套件會連線至其後端服務，以傳送和接收音訊、影片、內容共用和資料訊息。如果您使用者的網路封鎖流向 Amazon Chime SDK 服務的流量，其使用該服務的能力將會受到影響。網路管理員可以使用此資訊來重新設定其網路，以允許存取 Amazon Chime SDK 服務。

**注意**  
當您設定網路時，預設必須啟用 DNS (EDNS0) 的延伸機制。這可讓您的應用程式透過確保主機資訊是 UDP 封包的正確大小來連接 Amazon Chime SDK 服務。

**Topics**
+ [

## 針對媒體和訊號設定
](#media-signaling)
+ [

## 為 Amazon Voice Focus 設定
](#voice-focus-config)
+ [

## 設定 以降低回音
](#echo-reduction)
+ [

## 設定背景替換和模糊
](#config-blur)
+ [

## 設定瀏覽器內容安全政策
](#configure-browser-policy)
+ [

# 針對 Amazon Chime SDK 使用 AppKeys 和 TenantIDs
](app-keys-tenant-ids.md)

## 針對媒體和訊號設定
<a name="media-signaling"></a>

Amazon Chime SDK 音訊、影片和內容會盡可能使用使用者資料包通訊協定 (UDP) 傳輸。如果 UDP 遭到封鎖，Amazon Chime SDK 會嘗試建立用於雙向媒體傳輸的 Transport Layer Security (TLS) 連線。Amazon Chime SDK 訊號和資料訊息使用傳輸控制通訊協定 (TCP) 和 WebSocket 連線。

下圖顯示具有執行 Amazon Chime SDK 應用程式的一般網路。

![\[設定為執行 Amazon Chime SDK 應用程式的網路，可在 SDK 與會議之間進行雙向通訊。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/net-config-diagram.png)


Amazon Chime SDK 使用下列目的地和連接埠進行媒體和訊號傳送。


| 網域 | IPv4 子網路 | IPv6 子網路 | 連接埠 | 
| --- | --- | --- | --- | 
| \$1.chime.aws | 99.77.128.0/18 | 2600：f0f0：4100：：/40 | TCP:443 UDP:3478 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CHIME_MEETINGS`的服務。

## 為 Amazon Voice Focus 設定
<a name="voice-focus-config"></a>

適用於 iOS 和 Android 的 Amazon Chime SDK 用戶端程式庫包含 Amazon Voice Focus 模組。適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫會從 Amazon CloudFront 下載 Amazon Voice Focus 模組。適用於 Windows 的 Amazon Chime SDK 用戶端程式庫不支援 Voice Focus。

Amazon Voice Focus 使用以下目的地和連接埠。


| 網域 | 連接埠 | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CLOUDFRONT`的服務。

## 設定 以降低回音
<a name="echo-reduction"></a>

適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫會從 Amazon CloudFront 下載回聲消除模組。

回音縮減使用下列目的地和連接埠。


| 網域 | 連接埠 | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CLOUDFRONT`的服務。

## 設定背景替換和模糊
<a name="config-blur"></a>

適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫會從 Amazon CloudFront 下載背景替換和模糊模組。

背景替換和模糊使用下列目的地和連接埠。


| 網域 | 連接埠 | 
| --- | --- | 
| \$1.sdkassets.chime.aws | TCP:443 | 

此子網路是 [AWS IP 地址範圍內](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)`CLOUDFRONT`的服務。

## 設定瀏覽器內容安全政策
<a name="configure-browser-policy"></a>

當您使用適用於 JavaScript 的 Amazon Chime SDK 用戶端程式庫建置應用程式時，您需要在應用程式中設定瀏覽器內容安全政策。如需詳細資訊，請參閱 GitHub 上的[內容安全政策指南](https://aws.github.io/amazon-chime-sdk-js/modules/contentsecurity_policy.html)。

# 針對 Amazon Chime SDK 使用 AppKeys 和 TenantIDs
<a name="app-keys-tenant-ids"></a>

您可以使用 AppKeys 和 TenantIDs限制*從網路*到特定應用程式的 Amazon Chime SDK WebRTC 媒體工作階段的存取。

開發人員使用 Amazon Chime 開發套件來建立應用程式，透過 UDP 傳送和接收即時影片。應用程式使用者需要 UDP 存取[https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html](https://docs.aws.amazon.com/general/latest/gr/aws-ip-ranges.html)子網路。Organizations （網路擁有者） 可以使用 AppKeys 和 TenantIDs將網路的存取限制為僅限特定應用程式的 WebRTC 媒體工作階段。

**範例 1：使用 AppKeys**  
如果 App-A 和 App-B 使用 Amazon Chime SDK，組織可以允許 App-A 從其網路存取 WebRTC 媒體工作階段，但會封鎖 App-B 和任何其他使用 Amazon Chime SDK 的應用程式。組織可以使用 App-A 的 AppKey 和 HTTPS 代理來執行此操作。如需詳細資訊[限制對特定應用程式的存取](#limit-app-access)，請參閱本主題稍後的 。

**範例 2：使用 AppKeys和 TenantIDs**  
如果 App-A 可公開使用，且許多客戶使用，則組織可能希望允許 App-A 僅在其使用者屬於工作階段的一部分時，才從其網路存取 WebRTC 媒體工作階段，並封鎖對所有其他 App-A 工作階段的存取。組織可以使用應用程式的 AppKey、組織的 TenantID 和 HTTPS 代理來執行此操作。如需詳細資訊，請參閱本主題[限制對特定租用戶的存取](#limit-tenant-access)稍後的 。

若要使用 AppKeys 和 TenantIDs您必須具有 HTTPS 代理伺服器，允許將 HTTPS 標頭新增至請求。下圖顯示 AppKeys 和 TenantIDs 的運作方式。

![\[圖表顯示 AppKeys 和 TenantIDs如何控制應用程式和租戶對 WebRTC 工作階段的存取。\]](http://docs.aws.amazon.com/zh_tw/chime-sdk/latest/dg/images/app-key-diagram.png)


在映像中，App-A 具有租用戶 A-1 和 A-2，而 App-B 具有租用戶 B-1 和 B-2。在此情況下，AppKey 僅允許 App-A 連線至 WebRTC 媒體工作階段，而租戶 ID 僅允許租戶 A-1 連線至工作階段。

**Topics**
+ [

## 限制對特定應用程式的存取
](#limit-app-access)
+ [

## 限制對特定租用戶的存取
](#limit-tenant-access)
+ [

## HTTPS 標頭範例
](#header-examples)

## 限制對特定應用程式的存取
<a name="limit-app-access"></a>

*AppKey* 是 Amazon Chime 為每個 AWS 帳戶建立的一致且唯一的 256 位元值。如果您沒有 AppKey，您可以從 Amazon Support 請求。如果您有多個 AWS 帳戶，您可以為所有帳戶請求通用 AppKey。

**注意**  
您可以安全地公開共用您的 AppKeys並讓其他組織限制從其網路存取。

Amazon Chime SDK 會根據用於建立工作階段 AWS 的帳戶 ID，自動將每個 WebRTC 媒體工作階段與 AppKey 建立關聯。若要限制*從網路*存取特定應用程式，請執行下列動作：

1. 透過 HTTPS Proxy 伺服器將所有傳出請求路由到`CHIME_MEETINGS`子網路。

1. 設定代理伺服器，將下列標頭新增至`CHIME_MEETINGS`子網路的所有傳出請求：

   `X-Amzn-Chime-App-Keys:` *允許 AppKeys 的逗號分隔清單*。

   例如， `X-Amzn-Chime-App-Keys:AppKey-A,AppKey-B,AppKey-C` 允許與這些 AppKeys 相關聯的應用程式存取子網路。

Amazon Chime SDK 會檢查 `X-Amzn-Chime-App-Keys`標頭的傳入 WebRTC 媒體工作階段連線，並套用下列邏輯：

1. 如果`X-Amzn-Chime-App-Keys`標頭存在並包含工作階段的 AppKey，請接受連線。

1. 如果`X-Amzn-Chime-App-Keys`標頭存在，但不包含工作階段的 AppKey，請拒絕 403 錯誤的連線。

1. 如果`X-Amzn-Chime-App-Keys`標頭不存在，請接受連線。如果使用者可以從組織網路外部存取應用程式，他們也可以存取工作階段。

## 限制對特定租用戶的存取
<a name="limit-tenant-access"></a>

*TenantID* 是由開發人員建立的不透明識別符。請記住下列有關 TenantIDs的事項：
+ TenantIDs 不保證應用程式之間是唯一的，因此您必須為每個 TenantID 清單指定 AppKey。
+ TenantIDs 具有大小寫意義。完全依照開發人員的處方輸入。
+ 組織可以限制對多個應用程式的存取，但只能為其中一些應用程式指定 TenantIDs。沒有 TenantIDs的應用程式可以連線至所有 WebRTC 媒體工作階段。

若要將媒體工作階段與 TenantIDs建立關聯，開發人員必須先將 `TenantIds` 屬性和 TenantIDs清單新增至 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeeting.html)或 [https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html](https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_CreateMeetingWithAttendees.html)請求。

例如：

`CreateMeeting(..., TenantIds : [ tenantId1, tenantId2 ] )`

若要在特定應用程式中限制從組織網路到其 WebRTC 媒體工作階段的存取，請執行下列動作：

1. 請遵循 [限制對特定應用程式的存取](#limit-app-access) 中的步驟。

1. 設定 HTTPS Proxy 伺服器，在傳出連線上新增 `X-Amzn-Chime-Tenants` 標頭。包含 AppKeys 和 TenantIDs的清單，如本範例所示進行分隔： `X-Amzn-Chime-Tenants: AppKey-A:tenantId-A-1,tenantId-A-2;AppKey-B:tenantId-B-1,tenantId-B-2`

Amazon Chime SDK 會檢查 `X-Amzn-Chime-Tenants`標頭的傳入 WebRTC 媒體工作階段連線，並套用下列邏輯：
+ 如果 標頭包含工作階段的 `AppKey:tenantId`，請接受連線。
+ 如果標頭包含工作階段的 ，`AppKey`但沒有相符的 `tenantId`，請拒絕具有 403 錯誤的連線。
+ 如果標頭*不包含*工作階段的 `AppKey`，請接受連線。
+ 如果標頭包含工作階段的 `AppKey`，但工作階段沒有至少一個允許的 `tenantId`，請拒絕具有 403 錯誤的連線。這可能是開發人員錯誤。
+ 如果標頭不存在，請接受連線。如果使用者可以從組織網路外部存取應用程式，他們也可以存取所有工作階段。

## HTTPS 標頭範例
<a name="header-examples"></a>

下列範例顯示使用 HTTPS 標頭中的 AppKeys 和 TenantIDs 的一些方法。

**一個具有一個租用戶的應用程式**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:orgId`  
使用者只能在指定的應用程式中存取組織的 WebRTC 媒體工作階段。所有其他應用程式都會遭到封鎖。

**一個具有兩個租用戶的應用程式**  
`X-Amzn-Chime-App-Keys: AppKey`  
`X-Amzn-Chime-Tenants: AppKey:engineeringId,salesId`  
使用者只能在指定的應用程式中存取用於工程和銷售的媒體工作階段。所有其他應用程式都會遭到封鎖。

**兩個應用程式，一個僅限租用戶**  
`X-Amzn-Chime-App-Keys: AppKey1,AppKey2`  
`X-Amzn-Chime-Tenants: AppKey1:orgId`  
使用者只能存取應用程式 1 中的組織媒體工作階段，以及應用程式 2 中的任何工作階段。所有其他應用程式都會遭到封鎖。