

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

# AWS Client VPN 授權規則
授權規則

授權規則做為授與存取網路的防火牆規則。透過新增授權規則，您可以授與特定的用戶端存取至指定的網路。您應該要有每個欲授與存取權之網路的授權規則。您可以使用主控台和 AWS CLI，將授權規則新增至 Client VPN 端點。

**注意**  
評估授權規則時，Client VPN 會使用最長字首比對。請參閱[《Amazon VPC 使用者指南》](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#route-tables-priority)中的故障診斷主題 [故障診斷 AWS Client VPN：Active Directory 群組的授權規則未如預期運作](ad-group-auth-rules.md) 和*路由優先順序*以取得更多詳細資訊。

## 了解授權規則的要點
重點

以下幾點解釋了授權規則的一些行為：
+ 若要允許存取目的地網路，必須明確新增授權規則。預設行為是拒絕存取。
+ 您無法將授權規則新增至*限制*存取目的地網路。
+ `0.0.0.0/0` CIDR 會作為特殊情況來處理。不論建立授權規則的順序為何，這都是最後處理。
+ `0.0.0.0/0` CIDR 可以被視為「任何目的地」或「未由其他授權規則定義的任何目的地」。
+ 最長字首相符是優先執行的規則。

**Topics**
+ [重點](#key-points-summary)
+ [範例方案](#auth-rule-example-scenarios)
+ [新增授權規則](cvpn-working-rule-authorize-add.md)
+ [移除授權規則](cvpn-working-rule-remove.md)
+ [檢視授權規則](cvpn-working-rule-view.md)

## Client VPN 授權規則的範例案例
範例方案

本節說明授權規則的運作方式 AWS Client VPN。其中包括了解授權規則的要點、範例架構，以及對應至範例架構的範例案例討論。

**案例**
+ [授權規則案例的範例架構](#example-arch-auth-rules)
+ [存取單一目的地](#auth-rules1)
+ [使用任何目的地 (0.0.0.0/0) CIDR](#auth-rules2)
+ [較長的 IP 字首比對](#auth-rules3)
+ [重疊 CIDR （相同群組）](#auth-rules4)
+ [其他 0.0.0.0/0 規則](#auth-rules5)
+ [新增 192.168.0.0/24 的規則](#auth-rules6)
+ [SAML 聯合身分驗證](#auth-rules7)
+ [所有使用者群組的存取權](#auth-rules8)

### 授權規則案例的範例架構
範例架構

下圖顯示用於本節中範例案例的範例架構。

![\[Client VPN 架構範例\]](http://docs.aws.amazon.com/zh_tw/vpn/latest/clientvpn-admin/images/cvpn-auth-rules.png)


### 存取單一目的地



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  S-xxxxx14  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  S-xxxxx15  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取 Client VPN VPC  |  S-xxxxx16  |  False  |  192.168.0.0/24  | 

**產生行為**
+ 工程群組只能存取 `172.16.0.0/24`。
+ 開發群組只能存取 `10.0.0.0/16`。
+ 管理員群組只能存取 `192.168.0.0/24`。
+ 所有其他流量都會由 Client VPN 端點捨棄。

**注意**  
在這個案例中，沒有使用者群組可以存取公有網際網路。

### 使用任何目的地 (0.0.0.0/0) CIDR



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  S-xxxxx14  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  S-xxxxx15  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取任何目的地  |  S-xxxxx16  |  False  |  0.0.0.0/0  | 

**產生行為**
+ 工程群組只能存取 `172.16.0.0/24`。
+ 開發群組只能存取 `10.0.0.0/16`。
+ 管理員群組可以存取公有網際網路*和* `192.168.0.0/24`，但無法存取 `172.16.0.0/24` 或 `10.0.0/16`。

**注意**  
在這個案例中，因為沒有任何規則參考 `192.168.0.0/24`，對該網路的存取也由 `0.0.0.0/0` 規則提供。  
無論規則的建立順序為何，包含 `0.0.0.0/0` 的規則一律最後評估。因此，請記住，在 `0.0.0.0/0` 之前評估的規則，會在決定 `0.0.0.0/0` 存取授予哪些網路方面發揮作用。

### 較長的 IP 字首比對



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  S-xxxxx14  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  S-xxxxx15  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取任何目的地  |  S-xxxxx16  |  False  |  0.0.0.0/0  | 
|  提供管理員群組存取開發 VPC 中的單一主機  |  S-xxxxx16  |  False  |  10.0.2.119/32  | 

**產生行為**
+ 工程群組只能存取 `172.16.0.0/24`。
+ 開發群組可以存取 `10.0.0.0/16`，*除了*單一主機 `10.0.2.119/32`。
+ 管理員群組可以存取公有網際網路 `192.168.0.0/24` 以及開發 VPC 內的單一主機 (`10.0.2.119/32`)，但無法存取 `172.16.0.0/24` 或開發 VPC 中的其餘主機。

**注意**  
在這裡，您會看到具有較長 IP 字首的規則如何優先於具有較短 IP 字首的規則。如果您希望開發群組可以存取 `10.0.2.119/32`，則需新增授予開發團隊存取 `10.0.2.119/32` 的額外規則。

### 重疊 CIDR （相同群組）



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  S-xxxxx14  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  S-xxxxx15  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取任何目的地  |  S-xxxxx16  |  False  |  0.0.0.0/0  | 
|  提供管理員群組存取開發 VPC 中的單一主機  |  S-xxxxx16  |  False  |  10.0.2.119/32  | 
|  提供工程群組存取內部部署網路中較小的子網路  |  S-xxxxx14  |  False  |  172.16.0.128/25  | 

**產生行為**
+ 開發群組可以存取 `10.0.0.0/16`，*除了*單一主機 `10.0.2.119/32`。
+ 管理員群組可以存取公有網際網路 `192.168.0.0/24` 以及 `10.0.0.0/16` 網路內的單一主機 (`10.0.2.119/32`)，但無法存取 `172.16.0.0/24` 或 `10.0.0.0/16` 網路中的其餘主機。
+ 工程群組可存取 `172.16.0.0/24`，包括更明確的子網路 `172.16.0.128/25`。

### 其他 0.0.0.0/0 規則



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  S-xxxxx14  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  S-xxxxx15  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取任何目的地  |  S-xxxxx16  |  False  |  0.0.0.0/0  | 
|  提供管理員群組存取開發 VPC 中的單一主機  |  S-xxxxx16  |  False  |  10.0.2.119/32  | 
|  提供工程群組存取內部部署網路中較小的子網路  |  S-xxxxx14  |  False  |  172.16.0.128/25  | 
|  提供工程群組存取任何目的地  |  S-xxxxx14  |  False  |  0.0.0.0/0  | 

**產生行為**
+ 開發群組可以存取 `10.0.0.0/16`，*除了*單一主機 `10.0.2.119/32`。
+ 管理員群組可以存取公有網際網路 `192.168.0.0/24` 以及 `10.0.0.0/16` 網路內的單一主機 (`10.0.2.119/32`)，但無法存取 `172.16.0.0/24` 或 `10.0.0.0/16` 網路中的其餘主機。
+ 工程群組可以存取公有網際網路 `192.168.0.0/24` 以及 `172.16.0.0/24`，包括更明確的子網路 `172.16.0.128/25`。

**注意**  
請注意，工程和管理員群組現在都可以存取 `192.168.0.0/24`。這是因為兩個群組都可以存取 `0.0.0.0/0` (任何目的地) *且*沒有其他規則正在參考 `192.168.0.0/24`。

### 新增 192.168.0.0/24 的規則



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  S-xxxxx14  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  S-xxxxx15  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取任何目的地  |  S-xxxxx16  |  False  |  0.0.0.0/0  | 
|  提供管理員群組存取開發 VPC 中的單一主機  |  S-xxxxx16  |  False  |  10.0.2.119/32  | 
|  提供工程群組存取內部部署網路中的子網路  |  S-xxxxx14  |  False  |  172.16.0.128/25  | 
|  提供工程群組存取任何目的地  |  S-xxxxx14  |  False  |  0.0.0.0/0  | 
|  提供管理員群組存取 Client VPN VPC  |  S-xxxxx16  |  False  |  192.168.0.0/24  | 

**產生行為**
+ 開發群組可以存取 `10.0.0.0/16`，*除了*單一主機 `10.0.2.119/32`。
+ 管理員群組可以存取公有網際網路 `192.168.0.0/24` 以及 `10.0.0.0/16` 網路內的單一主機 (`10.0.2.119/32`)，但無法存取 `172.16.0.0/24` 或 `10.0.0.0/16` 網路中的其餘主機。
+ 工程組可以存取公有網際網路 `172.16.0.0/24` 以及 `172.16.0.128/25`。

**注意**  
請注意，為管理員群組新增存取 `192.168.0.0/24` 的規則如何導致開發群組不再具有該目的地網路的存取權限。

### SAML 聯合身分驗證



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  工程設計  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  開發人員  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取 Client VPN VPC  |  管理員  |  False  |  192.168.0.0/24  | 

**產生行為**
+ 使用「工程」群組屬性透過 SAML 驗證的使用者只能存取 `172.16.0.0/24`。
+ 使用「開發人員」群組屬性透過 SAML 驗證的使用者只能存取 `10.0.0.0/16`。
+ 使用「Managers」群組屬性透過 SAML 驗證的使用者只能存取 `192.168.0.0/24`。
+ 所有其他流量都會由 Client VPN 端點捨棄。

**注意**  
使用 SAML 聯合身分驗證時，群組 ID 欄位會對應至識別使用者群組成員資格的 SAML 屬性值。此屬性是在 SAML 身分提供者中設定，並在身分驗證期間傳遞給 Client VPN。

### 所有使用者群組的存取權



| 規則說明 | 群組 ID | 允許所有使用者存取 | 目的地 CIDR | 
| --- | --- | --- | --- | 
|  提供工程群組存取內部部署網路  |  S-xxxxx14  |  False  |  172.16.0.0/24  | 
|  提供開發群組存取開發 VPC  |  S-xxxxx15  |  False  |  10.0.0.0/16  | 
|  提供管理員群組存取任何目的地  |  S-xxxxx16  |  False  |  0.0.0.0/0  | 
|  提供管理員群組存取開發 VPC 中的單一主機  |  S-xxxxx16  |  False  |  10.0.2.119/32  | 
|  提供工程群組存取內部部署網路中的子網路  |  S-xxxxx14  |  False  |  172.16.0.128/25  | 
|  提供工程群組存取所有網路  |  S-xxxxx14  |  False  |  0.0.0.0/0  | 
|  提供管理員群組存取 Client VPN VPC  |  S-xxxxx16  |  False  |  192.168.0.0/24  | 
|  提供所有群組的存取權  |  N/A  |  True  |  0.0.0.0/0  | 

**產生行為**
+ 開發群組可以存取 `10.0.0.0/16`，*除了*單一主機 `10.0.2.119/32`。
+ 管理員群組可以存取公有網際網路 `192.168.0.0/24` 以及 `10.0.0.0/16` 網路內的單一主機 (`10.0.2.119/32`)，但無法存取 `172.16.0.0/24` 或 `10.0.0.0/16` 網路中的其餘主機。
+ 工程組可以存取公有網際網路 `172.16.0.0/24` 以及 `172.16.0.128/25`。
+ 任何其他使用者群組 (例如「admin group」) 都可以存取公有網際網路，但不能存取其他規則中定義的任何其他目的地網路。

# 將授權規則新增至 AWS Client VPN 端點
新增授權規則

您可以使用 新增授權規則，以授予或限制對 Client VPN 端點的存取 AWS 管理主控台。您可以使用 Amazon VPC 主控台或使用命令列或 API 將授權規則新增至 Client VPN 端點。

**使用 將授權規則新增至 Client VPN 端點 AWS 管理主控台**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **Client VPN Endpoints** (Client VPN 端點)。

1. 選取要新增授權規則的 Client VPN 端點，選擇 **Authorization rules** (授權規則)，然後選擇 **Add authorization rule** (新增授權規則)。

1. 對於 **Destination network to enable access** (要啟用存取權限的目的地網路)，請以 CIDR 標記法輸入您希望使用者存取的網路 IP 地址 (例如 VPC 的 CIDR 區塊)。

1. 指定允許哪些用戶端存取指定的網路。對於 **For grant access to** (將存取權授與)，請執行以下其中一項：
   + 若准許所有用戶端存取，請選擇 **Allow access to all users** (允許所有使用者存取)。
   + 若要限制特定用戶端的存取權，請選擇 **Allow access to users in a specific access group** (允許特定存取群組中使用者的存取權)，然後在 **Access group ID** (存取群組 ID)中，輸入要授與存取權的群組 ID。例如，Active Directory 群組的安全性識別符 (SID)，或在 SAML 型身分提供者 (IdP) 中定義的群組 ID/名稱。
     + (Active Directory) 若要取得 SID，您可以使用 Microsoft Powershell [Get-ADGroup](https://learn.microsoft.com/en-us/powershell/module/activedirectory/get-adgroup) cmdlet，例如：

       ```
       Get-ADGroup -Filter 'Name -eq "<Name of the AD Group>"'
       ```

       或者，開啟 Active Directory 使用者和電腦工具，檢視群組的內容，移至「屬性編輯器」索引標籤，然後取得 `objectSID` 的值。如有必要，請先選擇**檢視**、**進階功能**以啟用「屬性編輯器」標籤。
     + (SAML 型聯合身分驗證) 群組 ID/名稱應與 SAML 聲明中傳回的群組屬性資訊相符。

1. 對於 **Description** (描述)，輸入授權規則的簡短描述。

1. 選擇 **Add authorization rule** (新增授權規則)。

**將授權規則新增至用戶端 VPN 端點 (AWS CLI)**  
使用 [authorize-client-vpn-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-client-vpn-ingress.html) 命令。

# 從 AWS Client VPN 端點移除授權規則
移除授權規則

您可以使用 主控台和 移除特定 Client VPN 端點的授權規則 AWS CLI。

**移除授權規則 （主控台）**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **Client VPN Endpoints** (Client VPN 端點)。

1. 選取新增授權規則的 Client VPN 端點，然後選擇**授權規則**。

1. 選取要刪除的授權規則，選擇**移除授權規則**，然後再次選擇**移除授權規則**以確認刪除。

**移除授權規則 (AWS CLI)**  
使用 [revoke-client-vpn-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-client-vpn-ingress.html) 命令。

# 檢視 AWS Client VPN 授權規則
檢視授權規則

您可以使用主控台和 AWS CLI檢視特定 Client VPN 端點的授權規則。

**檢視授權規則 (主控台)**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽窗格中，選擇 **Client VPN Endpoints** (Client VPN 端點)。

1. 選取要檢視授權規則的 Client VPN 端點，然後選擇 **Authorization rules** (授權規則)。

**檢視授權規則 (AWS CLI)**  
使用 [describe-client-vpn-authorization-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-client-vpn-authorization-rules.html) 命令。