

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

# 管理 Amazon Virtual Private Cloud 的安全責任
<a name="security"></a>

的雲端安全性 AWS 是最高優先順序。身為 AWS 客戶，您可以受益於資料中心和網路架構，這些架構專為滿足最安全敏感組織的需求而建置。

安全性是 AWS 與您之間的共同責任。[共同責任模式](https://aws.amazon.com/compliance/shared-responsibility-model/)將其描述為雲端*的*安全性，和雲端*中*的安全性：
+ **雲端的安全性** – AWS 負責保護在 AWS Cloud 中執行 AWS 服務的基礎設施。 AWS 也為您提供可安全使用的服務。在[AWS 合規計畫](https://aws.amazon.com/compliance/programs/)中，第三方稽核人員會定期測試和驗證我們的安全有效性。若要了解適用於 Amazon Virtual Private Cloud 的合規計劃，請參閱[AWS 合規計劃的 服務範圍](https://aws.amazon.com/compliance/services-in-scope/)。
+ **雲端的安全性** – 您的責任取決於您使用 AWS 的服務。您也必須對其他因素負責，包括資料的機密性、您公司的要求和適用法律和法規。

本文件有助於您了解如何在使用 Amazon VPC 時套用共同責任模型。下列各主題將說明如何配置 Amazon VPC，以達成您的安全性與合規目標。您也會了解如何使用其他 AWS 服務來協助您監控和保護 Amazon VPC 資源。

**Topics**
+ [確保 Amazon Virtual Private Cloud 中的資料保護](data-protection.md)
+ [強制執行傳輸中的 VPC 加密](vpc-encryption-controls.md)
+ [Amazon VPC 的身分和存取管理](security-iam.md)
+ [Amazon VPC 的基礎設施安全性](infrastructure-security.md)
+ [使用安全群組控制 AWS 資源的流量](vpc-security-groups.md)
+ [使用網路存取控制清單控制子網路流量](vpc-network-acls.md)
+ [Amazon Virtual Private Cloud 的恢復能力](disaster-recovery-resiliency.md)
+ [Amazon Virtual Private Cloud 的合規驗證](VPC-compliance.md)
+ [封鎖對 VPC 和子網路的公開存取](security-vpc-bpa.md)
+ [VPC 的安全最佳實務](vpc-security-best-practices.md)

# 確保 Amazon Virtual Private Cloud 中的資料保護
<a name="data-protection"></a>

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 Amazon Virtual Private Cloud 中的資料保護。如此模型所述， AWS 負責保護執行所有 的全域基礎設施 AWS 雲端。您負責維護在此基礎設施上託管內容的控制權。您也同時負責所使用 AWS 服務 的安全組態和管理任務。如需資料隱私權的詳細資訊，請參閱[資料隱私權常見問答集](https://aws.amazon.com/compliance/data-privacy-faq/)。如需有關歐洲資料保護的相關資訊，請參閱*AWS 安全性部落格*上的[AWS 共同責任模型和 GDPR](https://aws.amazon.com/blogs/security/the-aws-shared-responsibility-model-and-gdpr/) 部落格文章。

基於資料保護目的，我們建議您保護 AWS 帳戶 登入資料，並使用 AWS IAM Identity Center 或 AWS Identity and Access Management (IAM) 設定個別使用者。如此一來，每個使用者都只會獲得授與完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 使用 設定 API 和使用者活動記錄 AWS CloudTrail。如需有關使用 CloudTrail 追蹤擷取 AWS 活動的資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 CloudTrail 追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-trails.html)。
+ 使用 AWS 加密解決方案，以及其中的所有預設安全控制 AWS 服務。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Amazon S3 的敏感資料。
+ 如果您在 AWS 透過命令列界面或 API 存取 時需要 FIPS 140-3 驗證的密碼編譯模組，請使用 FIPS 端點。如需有關 FIPS 和 FIPS 端點的更多相關資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-3](https://aws.amazon.com/compliance/fips/)。

我們強烈建議您絕對不要將客戶的電子郵件地址等機密或敏感資訊，放在標籤或自由格式的文字欄位中，例如**名稱**欄位。這包括當您使用 Amazon VPC 或使用主控台、API AWS CLI或 AWS SDKs的其他 AWS 服務 時。您在標籤或自由格式文字欄位中輸入的任何資料都可能用於計費或診斷日誌。如果您提供外部伺服器的 URL，我們強烈建議請勿在驗證您對該伺服器請求的 URL 中包含憑證資訊。

# 確保 Amazon VPC 中的網際網路流量隱私權
<a name="VPC_Security"></a>

Amazon Virtual Private Cloud 提供可用來提高和監控 Virtual Private Cloud (VPC) 安全的功能：
+ **安全群組**：安全群組會允許資源層級 (例如 EC2 執行個體) 的特定傳入與傳出流量。啟動執行個體時，您可將其與一個或多個安全群組建立關聯。VPC 中的每個執行個體可能隸屬不同的安全群組。若您並未在啟動執行個體時指定安全群組，則執行個體會自動與其 VPC 的預設安全群組建立關聯。如需詳細資訊，請參閱[Security groups (安全群組)](vpc-security-groups.md)。
+ **網路存取控制清單 (ACL)**：網路 ACL 會允許或拒絕子網層級的特定傳入與傳出流量。如需詳細資訊，請參閱[使用網路存取控制清單控制子網路流量](vpc-network-acls.md)。
+ **流量日誌**：流量日誌可擷取您 VPC 中傳入和傳出網路介面之 IP 流量資訊。您可以建立 VPC、子網路或個別網路介面的流量日誌。流量日誌資料會發佈至 CloudWatch Logs 或 Amazon S3，並可協助您診斷過度限制或過度寬鬆的安全群組和網路 ACL 規則。如需詳細資訊，請參閱 [使用 VPC 流量日誌來記錄 IP 流量](flow-logs.md)。
+ **流量鏡射**：您可以從 Amazon EC2 執行個體的彈性網路介面複製網路流量。然後，您可以將流量傳送至頻外安全性和監控設備。如需詳細資訊，請參閱[流量鏡射指南](https://docs.aws.amazon.com/vpc/latest/mirroring/)。

# 強制執行傳輸中的 VPC 加密
<a name="vpc-encryption-controls"></a>

VPC 加密控制是一項安全與合規功能，可讓您集中進行授權控制，以監控流量的加密狀態、協助您識別允許純文字通訊的資源，並最終為您提供機制，以強制執行區域內跨 VPCs傳輸中的加密

VPC Encryption Controls 同時使用應用程式層加密和 nitro AWS 系統硬體的內建傳輸中加密功能，以確保加密強制執行。此功能也會將原生硬體層加密延伸至現代 Nitro 執行個體以外的 AWS 其他服務，包括 Fargate、Application Load Balancer、Transit Gateways 等。

此功能專為想要確保可見性和控制所有流量加密狀態的任何人而設計。在資料加密對於符合 HIPAA、FedRamp 和 PCI DSS 等合規標準至關重要的產業中特別有用。安全管理員和雲端架構師可以使用它，在其 AWS 環境中集中執行傳輸政策中的加密

此功能可用於兩種模式：監控模式和強制執行模式。

## 加密控制模式
<a name="encryption-controls-modes"></a>

**監控模式**  
在監控模式中，Encryption Controls 可讓您了解 VPCs 內外 AWS 資源之間流量的加密狀態。它還可協助您識別未強制執行傳輸中加密的 VPC 資源。您可以設定 VPC 流程日誌以發出富集欄位 `encryption-status` - -，告訴您流量是否已加密。您也可以使用主控台或`GetVpcResourcesBlockingEncryptionEnforcement`命令來識別未強制執行傳輸中加密的資源。

**注意**  
現有的 VPCs 只能先在監控模式中啟用。這可讓您了解允許或可能允許純文字流量的資源。只有在這些資源開始強制執行加密 （或您為其建立排除） 時，您才能在 VPC 上開啟強制執行模式。

**強制執行模式**  
在強制執行模式中，VPC 加密控制可防止您使用允許 VPC 邊界內未加密流量的任何功能或服務。您無法在現有 VPCs 上直接在強制模式下啟用加密控制。您必須先在監控模式中開啟加密控制、識別和修改不合規的資源，以強制執行傳輸中的加密，然後開啟強制執行模式。不過，您可以在建立期間為新 VPCs 以強制模式開啟加密控制。

啟用時，強制模式會防止您建立或連接未加密的 VPC 資源，例如不支援原生內建加密的舊 EC2 執行個體，或網際網路閘道等。如果您想要在加密強制執行的 VPC 中執行不合規的資源，您必須建立該資源的排除。

## 監控流量流程的加密狀態
<a name="monitoring-encryption-status"></a>

您可以使用 VPC 流程日誌中的 `encryption-status` 欄位，稽核 VPC 內流量的加密狀態。可包含下列值：
+ `0` = 未加密
+ `1` = nitro 加密 （由 VPC 加密控制管理）
+ `2` = 應用程式加密 
  +  界面端點到 AWS 服務的 TCP 連接埠 443 上的流程 \$1 
  +  閘道端點的 TCP 連接埠 443 上的流程 \$1 
  +  透過 VPC 端點流向加密 Redshift 叢集 \$1\$1 
+ `3` = 同時加密 nitro AND 應用程式
+ `(-)` = 加密狀態 未知或 VPC 加密控制已關閉

**請注意：**

\$1 對於介面和閘道端點， AWS 不會查看封包資料來判斷加密狀態，而是依賴用來擔任加密狀態的連接埠。

\$1\$1 對於指定的 AWS 受管端點， 會根據服務組態中的 TLS 需求來 AWS 確定加密狀態。

**VPC 流程日誌限制**
+ 若要啟用 VPC Encryption Controls 的流程日誌，您需要使用 encryption-status 欄位手動建立新的流程日誌。加密狀態欄位不會自動新增至現有的流程日誌。
+ 建議您將 \$1\$1traffic-path\$1 和 \$1\$1flow-direction\$1 欄位新增至流程日誌，以取得流程日誌中更多詳細資訊。

  範例：

  ```
  aws ec2 create-flow-logs \
  --resource-type VPC \
  --resource-ids vpc-12345678901234567 \
  --traffic-type ALL \
  --log-group-name my-flow-logs \
  --deliver-logs-permission-arn arn:aws:iam::123456789101:role/publishFlowLogs
  --log-format '${encryption-status} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${traffic-path} ${flow-direction} ${reject-reason}'
  ```

## VPC 加密控制排除
<a name="vpc-encryption-controls-exclusions"></a>

VPC 加密控制強制執行模式需要 VPC 中的所有資源強制執行加密。這可確保區域中 AWS 內的加密。不過，您可能有網際網路閘道、NAT 閘道或虛擬私有閘道等資源，允許在負責設定和維護end-to-end加密 AWS的網路外部進行連線。若要在加密強制執行VPCs 中執行這些資源，您可以建立資源排除。排除會為資源建立可稽核的例外狀況，其中客戶負責維護加密 （通常是在應用程式層）。

VPC 加密控制僅支援 8 個排除。如果您的 VPC 中有這些資源，並且想要移至強制執行模式，則必須在從監視器切換到強制執行模式時新增這些排除。不可排除其他資源。您可以遷移 VPC 以強制執行模式，方法是建立這些資源的排除。您負責加密進出這些資源的流量
+ 網際網路閘道
+ NAT 閘道
+ 輸出限定網際網路閘道
+ 加密未強制執行 VPCs 的 VPC 對等互連 （詳細案例請參閱 VPC 對等互連支援一節）
+ 虛擬私有閘道
+ VPC 內的 Lambda 函數
+ VPC Lattice
+ 彈性檔案系統

## 實作工作流程
<a name="implementation-workflow"></a>

1. **啟用監控** - 在監控模式下建立 VPC 加密控制

1. **分析流量** - 檢閱流程日誌以監控流量的加密狀態

1. **分析資源** - 使用主控台或`GetVpcResourcesBlockingEncryptionEnforcement`命令來識別未強制執行傳輸中加密的資源。

1. **準備 【選用】** - 如果您想要開啟強制執行模式，請規劃資源遷移和必要的排除項目

1. **強制執行 【選用】** - 切換為強制執行模式並設定必要的排除

1. **稽核** - 透過流程日誌持續監控合規

如需詳細設定說明，請參閱部落格[介紹 VPC 加密控制：強制執行區域內 VPCs內和之間傳輸中的加密](https://aws.amazon.com/blogs/aws/introducing-vpc-encryption-controls-enforce-encryption-in-transit-within-and-across-vpcs-in-a-region)。

## VPC 加密控制狀態
<a name="vpc-encryption-controls-states"></a>

VPC 加密控制可以具有下列其中一種狀態：

**建立**  
正在 VPC 上建立 VPC 加密控制。

**modify-in-progress**  
正在 VPC 上修改 VPC 加密控制項

**正在刪除**  
正在 VPC 上刪除 VPC 加密控制項

**有用**  
VPC 加密控制在 VPC 上成功實作監控模式或強制執行模式

## AWS 服務支援和相容性
<a name="aws-service-support-compatibility"></a>

若要符合加密規範，資源必須一律在硬體層或應用程式層強制執行傳輸中的加密。對於大多數資源，您不需要採取任何動作。

### 具有自動合規的服務
<a name="services-automatic-compliance"></a>

PrivateLink 支援的大多數 AWS 服務，包括跨區域 PrivateLinks，都會接受在應用程式層加密的流量。您不需要對這些資源進行任何變更。 AWS 會自動捨棄任何未經application-layer-encrypted的流量。某些例外狀況包括 Redshift 叢集 （已佈建和無伺服器 - 您需要在其中手動遷移基礎資源）

### 自動遷移的資源
<a name="resources-migrate-automatically"></a>

Network Load Balancer、Application Load Balancer、Fargate 叢集、EKS 控制平面會在您開啟監控模式後自動遷移至原生支援加密的硬體。您不需要修改這些資源。 會自動 AWS 處理遷移。

### 需要手動遷移的資源
<a name="resources-requiring-manual-migration"></a>

某些 VPC 資源和服務要求您選取基礎執行個體類型。所有現代 EC2 執行個體都支援傳輸中加密。如果您的服務已使用現代 EC2 執行個體，則不需要進行任何變更。您可以使用 主控台或 GetVpcResourcesBlockingEncryptionEnforcement 命令來識別是否有任何這些服務正在使用較舊的執行個體。如果您識別此類資源，則必須將其升級至支援 nitro 系統硬體原生加密的任何現代 EC2 執行個體。這些服務包括 EC2 執行個體、Auto Scaling 群組、RDS （所有資料庫和文件資料庫）、Elasticache Provisioned、Amazon Redshift Provisioned Clusters、EKS、ECS-EC2、OpenSearch Provisioned 和 EMR。

**相容資源：**  
下列資源與 VPC 加密控制相容：
+ [Nitro 型 EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/data-protection.html#encryption-transit)
+ Network Load Balancer （有限制）
+ Application Load Balancer
+ AWS Fargate 叢集
+ Amazon Elastic Kubernetes Service (EKS)
+ Amazon EC2 Auto Scaling 群組
+ Amazon Relational Database Service (RDS - 所有資料庫）
+ Amazon ElastiCache 節點型叢集
+ Amazon Redshift 佈建和無伺服器叢集
+ Amazon Elastic Container Service (ECS) - EC2 容器執行個體
+ Amazon OpenSearch Service
+ Amazon Elastic MapReduce (EMR)
+ Amazon Managed Streaming for Apache Kafka (Amazon MSK)
+ VPC 加密控制會對透過 PrivateLink 存取的所有 AWS 服務在應用程式層強制執行加密。在應用程式層未加密的任何流量，都會由託管在 VPC 內的 PrivateLink 端點捨棄，且加密控制處於強制執行模式

### 服務特定的限制
<a name="service-specific-limitations"></a>

**Network Load Balancer 限制**  
TLS 組態：在包含 VPC 的 上強制執行加密控制時，您無法使用 TLS 接聽程式將加密和解密的工作卸載至負載平衡器。不過，您可以將目標設定為執行 TLS 加密和解密

**Redshift 佈建和無伺服器**  
客戶無法在具有現有叢集/端點的 VPC 上移至強制執行模式。若要搭配 Redshift 使用 VPC 加密控制，您必須從快照還原叢集或命名空間。對於佈建叢集，建立現有 Redshift 叢集的快照，然後使用叢集快照操作的還原從快照還原。對於無伺服器，建立現有命名空間的快照，然後使用無伺服器工作群組上快照操作的還原，從快照還原。請注意，在未執行快照和還原程序的情況下，無法在現有叢集或命名空間上啟用 VPC 加密控制。如需建立快照，請參閱 [Amazon Redshift 文件](https://docs.aws.amazon.com/redshift/latest/mgmt/welcome.html)。

**Amazon MSK (Apache Kafka 的受管串流）**  
4.1 的新叢集在其自己的 VPC 中支援此功能。下列步驟將協助您將 VPC 加密與 MSK 搭配使用。
+ 客戶在沒有其他 MSK 叢集的 VPC 上啟用 VPC 加密
+ 客戶使用 Kafka 4.1 版建立叢集，並將執行個體類型建立為 M7g

### 區域和區域限制
<a name="regional-zone-limitations"></a>
+ **本機區域子網路**：強制執行模式中不支援 - 必須從 VPC 刪除

### VPC 對等互連支援
<a name="vpc-peering-support"></a>

為了確保兩個 VPCs 之間使用 VPC 對等互連傳輸中的加密，這兩個 VPCs 必須位於相同區域，並在沒有任何排除的情況下以強制執行模式開啟加密控制。如果您想要將加密強制執行的 VPC 對等對等至位於不同區域的另一個 VPC，或未啟用強制執行模式的加密控制 （沒有排除），則必須建立對等排除。

如果兩個 VPCs處於強制執行模式並彼此對等，則您無法將模式從強制執行變更為監控。您必須先建立對等排除，才能修改要監控的 VPC 加密控制模式。

### Transit Gateway 加密支援
<a name="transit-gateway-encryption-support"></a>

您必須在 Transit Gateway 上明確啟用加密支援，以加密已開啟加密控制的 VPCs之間的流量。在現有的 Transit Gateway 上啟用加密不會對現有的流量造成干擾，而且 VPC 連接遷移到加密通道將順暢自動發生。兩個 VPCs之間透過 Transit Gateway 以強制執行模式 （不含排除） 周遊 100% 加密通道的流量。傳輸閘道上的加密也可讓您連接兩個處於不同加密控制模式VPCs。當您想要在連接到non-encryption-enforced加密強制執行 VPC 的 VPC 中強制執行加密控制時，您應該使用它。在這種情況下，加密強制執行 VPC 內的所有流量都會加密，包括 VPC 間流量。加密強制執行 VPC 中的資源與 Transit Gateway 之間的 VPC 間流量會加密。除此之外，加密取決於流量在非強制執行 VPC 中傳送至的資源，且不保證會加密 （因為 VPC 未處於強制執行模式）。所有 VPCs位於相同的區域。（請參閱[此處](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-encryption-support.html)的詳細資訊）。

![\[具有不同加密控制狀態VPCs 之間的流量流程\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-enc-control-arch.png)

+ 在此圖表中，VPC 1、VPC 2 和 VPC3 在強制模式下具有加密控制，並且它們連接到在監控模式下執行加密控制的 VPC 4。
+ VPC1, VPC2 和 VPC3 之間的所有流量都會加密。
+ 為了詳細說明，VPC 1 中的資源與 VPC 4 中的資源之間的任何流量都會加密，直到 Transit Gateway 使用 nitro 系統硬體提供的加密為止。除了加密狀態之外，還取決於 VPC 4 中的資源，且不保證會加密。

如需 Transit Gateway 加密支援的詳細資訊，請參閱[傳輸閘道文件](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-encryption-support.html)。

## 定價
<a name="pricing"></a>

如需定價資訊，請參閱 [Amazon VPC 定價](https://aws.amazon.com/vpc/pricing/)。

## AWS CLI 命令參考
<a name="cli-commands-reference"></a>

### 設定與組態
<a name="setup-configuration"></a>
+ [aws ec2 create-vpc-encryption-control](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-vpc-encryption-control.html)
+ [aws ec2 modify-vpc-encryption-control](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-vpc-encryption-control.html)
+ [aws ec2 tgw modify-transit-gateway](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-transit-gateway.html)

### 監控和疑難排解
<a name="monitoring-troubleshooting"></a>
+ [aws ec2 describe-vpc-encryption-controls](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-encryption-controls.html)
+ [aws ec2 get-vpc-resources-blocking-encryption-enforcement](https://docs.aws.amazon.com/cli/latest/reference/ec2/get-vpc-resources-blocking-encryption-enforcement.html)
+ [aws ec2 create-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-flow-logs.html)
+ [aws ec2 describe-flow-logs](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-flow-logs.html)
+ [aws 日誌查詢](https://docs.aws.amazon.com/cli/latest/reference/logs/query.html)

### 清除
<a name="cleanup"></a>
+ [aws ec2 delete-vpc-encryption-control](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-vpc-encryption-control.html)

## 其他資源
<a name="additional-resources"></a>

如需詳細設定說明，請參閱部落格[介紹 VPC 加密控制：強制執行區域內 VPCs內和之間傳輸中的加密](https://aws.amazon.com/blogs/aws/introducing-vpc-encryption-controls-enforce-encryption-in-transit-within-and-across-vpcs-in-a-region)。

如需更詳細的 API 資訊，請參閱 [EC2 API 參考指南](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/Welcome.html)。

# Amazon VPC 的身分和存取管理
<a name="security-iam"></a>

AWS Identity and Access Management (IAM) 是 AWS 服務 ，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可以控制*驗證* (已登入) 和*授權* (具有許可) 來使用 Amazon VPC 資源。IAM 是 AWS 服務 您可以免費使用的 。

**Topics**
+ [目標對象](#security_iam_audience)
+ [使用身分進行驗證](#security_iam_authentication)
+ [使用政策管理存取權](#security_iam_access-manage)
+ [Amazon VPC 如何與 IAM 搭配運作](security_iam_service-with-iam.md)
+ [Amazon VPC 原則範例](vpc-policy-examples.md)
+ [Amazon VPC 身分識別和存取疑難排解](security_iam_troubleshoot.md)
+ [AWS Amazon Virtual Private Cloud 的 受管政策](security-iam-awsmanpol.md)
+ [使用 VPC 的服務連結角色](using-service-linked-roles.md)

## 目標對象
<a name="security_iam_audience"></a>

您使用 AWS Identity and Access Management (IAM) 的方式會有所不同，取決於您在 Amazon VPC 中執行的工作。

**服務使用者** – 若您使用 Amazon VPC 來執行您的任務，您的管理員可以提供您需要的登入資料和許可。隨著您為了執行作業而使用的 Amazon VPC 功能數量變多，您可能會需要額外的許可。了解存取的管理方式可協助您向管理員請求正確的許可。如果您無法存取 Amazon VPC 中的功能，請參閱 [Amazon VPC 身分識別和存取疑難排解](security_iam_troubleshoot.md)。

**服務管理員** – 若您在公司負責管理 Amazon VPC 資源，您應該具備服務使用的完整存取權限。您的任務是要判斷員工應存取哪些 Amazon VPC 功能和資源。接著必須將請求提交給您的 IAM 管理員，來變更您服務使用者的許可。檢閱此頁面上的資訊，了解 IAM 的基本概念。若要進一步了解貴公司可搭配 Amazon VPC 使用 IAM 的方式，請參閱 [Amazon VPC 如何與 IAM 搭配運作](security_iam_service-with-iam.md)。

**IAM 管理員** – 如果您是 IAM 管理員，建議您掌握如何撰寫原則以管理 Amazon VPC 存取權的詳細資訊。若要檢視範例原則，請參閱[Amazon VPC 原則範例](vpc-policy-examples.md)。

## 使用身分進行驗證
<a name="security_iam_authentication"></a>

身分驗證是您 AWS 使用身分憑證登入 的方式。您必須驗證為 AWS 帳戶根使用者、IAM 使用者或擔任 IAM 角色。

您可以使用身分來源的登入資料，例如 AWS IAM Identity Center (IAM Identity Center)、單一登入身分驗證或 Google/Facebook 登入資料，以聯合身分的形式登入。如需有關登入的詳細資訊，請參閱《AWS 登入 使用者指南》**中的[如何登入您的 AWS 帳戶](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html)。

對於程式設計存取， AWS 提供 SDK 和 CLI 以密碼編譯方式簽署請求。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [API 請求的AWS 第 4 版簽署程序](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html)。

### AWS 帳戶 根使用者
<a name="security_iam_authentication-rootuser"></a>

 當您建立 時 AWS 帳戶，您會從一個名為 AWS 帳戶 *theroot 使用者的*登入身分開始，該身分具有對所有 AWS 服務 和 資源的完整存取權。強烈建議不要使用根使用者來執行日常任務。有關需要根使用者憑證的任務，請參閱《IAM 使用者指南》**中的[需要根使用者憑證的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

### IAM 使用者和群組
<a name="security_iam_authentication-iamuser"></a>

*IAM 使用者*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)是一種身分具備單人或應用程式的特定許可權。建議以臨時憑證取代具備長期憑證的 IAM 使用者。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[要求人類使用者使用聯合身分提供者來 AWS 使用臨時憑證存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) 。

[IAM 群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)**會指定 IAM 使用者集合，使管理大量使用者的許可權更加輕鬆。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 使用者的使用案例](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html)。

### IAM 角色
<a name="security_iam_authentication-iamrole"></a>

*IAM 角色*[https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)的身分具有特定許可權，其可以提供臨時憑證。您可以透過[從使用者切換到 IAM 角色 （主控台） ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html)或呼叫 AWS CLI 或 AWS API 操作來擔任角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的[擔任角色的方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html)。

IAM 角色適用於聯合身分使用者存取、臨時 IAM 使用者許可、跨帳戶存取權與跨服務存取，以及在 Amazon EC2 執行的應用程式。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的快帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## 使用政策管理存取權
<a name="security_iam_access-manage"></a>

您可以透過建立政策並將其連接到身分或資源 AWS 來控制 AWS 中的存取。政策定義與身分或資源相關聯的許可。當委託人提出請求時 AWS ， 會評估這些政策。大多數政策會以 JSON 文件 AWS 形式存放在 中。如需進一步了解 JSON 政策文件，請參閱《*IAM 使用者指南*》中的 [JSON 政策概觀](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json)。

管理員會使用政策，透過定義哪些**主體**可在哪些**條件**下對哪些**資源**執行**動作**，以指定可存取的範圍。

預設情況下，使用者和角色沒有許可。IAM 管理員會建立 IAM 政策並將其新增至角色，供使用者後續擔任。IAM 政策定義動作的許可，無論採用何種方式執行。

### 身分型政策
<a name="security_iam_access-manage-id-based-policies"></a>

身分型政策是附加至身分 (使用者、使用者群組或角色) 的 JSON 許可政策文件。這類政策控制身分可對哪些資源執行哪些動作，以及適用的條件。如需了解如何建立身分型政策，請參閱《*IAM 使用者指南*》中的[透過客戶管理政策定義自訂 IAM 許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html)。

身分型政策可分為*內嵌政策* (直接內嵌於單一身分) 與*受管政策* (可附加至多個身分的獨立政策)。如需了解如何在受管政策及內嵌政策之間做選擇，請參閱《IAM 使用者指南》**中的[在受管政策與內嵌政策之間選擇](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html)。

### 資源型政策
<a name="security_iam_access-manage-resource-based-policies"></a>

資源型政策是附加到資源的 JSON 政策文件。範例包括 IAM *角色信任政策*與 Amazon S3 *儲存貯體政策*。在支援資源型政策的服務中，服務管理員可以使用它們來控制對特定資源的存取權限。您必須在資源型政策中[指定主體](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。

資源型政策是位於該服務中的內嵌政策。您無法在資源型政策中使用來自 IAM 的 AWS 受管政策。

### 存取控制清單 (ACL)
<a name="security_iam_access-manage-acl"></a>

存取控制清單 (ACL) 可控制哪些主體 (帳戶成員、使用者或角色) 擁有存取某資源的許可。ACL 類似於資源型政策，但它們不使用 JSON 政策文件格式。

Amazon S3 AWS WAF和 Amazon VPC 是支援 ACLs的服務範例。如需進一步了解 ACL，請參閱《Amazon Simple Storage Service 開發人員指南》**中的[存取控制清單 (ACL) 概觀](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html)。

### 其他政策類型
<a name="security_iam_access-manage-other-policies"></a>

AWS 支援其他政策類型，可設定更多常見政策類型授予的最大許可：
+ **許可界限** — 設定身分型政策可授與 IAM 實體的最大許可。如需詳細資訊，請參閱《 IAM 使用者指南》**中的 [IAM 實體許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。
+ **服務控制政策 (SCP)** — 為 AWS Organizations中的組織或組織單位指定最大許可。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[服務控制政策](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。
+ **資源控制政策 (RCP)** — 設定您帳戶中資源可用許可的上限。如需詳細資訊，請參閱《AWS Organizations 使用者指南》**中的[資源控制政策 (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html)。
+ **工作階段政策** — 在以程式設計方式為角色或聯合身分使用者建立臨時工作階段時，以參數形式傳遞的進階政策。如需詳細資訊，請參《*IAM 使用者指南*》中的[工作階段政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session)。

### 多種政策類型
<a name="security_iam_access-manage-multiple-policies"></a>

當多種類型的政策適用於請求時，產生的許可會更複雜而無法理解。若要了解如何 AWS 在涉及多個政策類型時決定是否允許請求，請參閱《*IAM 使用者指南*》中的[政策評估邏輯](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html)。

# Amazon VPC 如何與 IAM 搭配運作
<a name="security_iam_service-with-iam"></a>

在您使用 IAM 管理對 Amazon VPC 的存取權之前，您應該瞭解哪些 IAM 功能可以與 Amazon VPC 搭配使用。若要全面了解 Amazon VPC 和其他 AWS 服務如何與 IAM 搭配使用，請參閱《[AWS IAM 使用者指南》中的與 IAM 搭配使用的 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)。 **

**Topics**
+ [動作](#security_iam_service-with-iam-id-based-policies-actions)
+ [Resources](#security_iam_service-with-iam-id-based-policies-resources)
+ [條件索引鍵](#security_iam_service-with-iam-id-based-policies-conditionkeys)
+ [以 Amazon VPC 資源為基礎的原則](#security_iam_service-with-iam-resource-based-policies)
+ [以標籤為基礎的授權](#security_iam_service-with-iam-tags)
+ [IAM 角色](#security_iam_service-with-iam-roles)

使用 IAM 身分型原則，您可以指定允許或拒絕的動作。對於某些動作，您可以指定允許或拒絕動作的資源和條件。Amazon VPC 支援特定動作、資源和條件金鑰。若要了解您在 JSON 政策中使用的所有元素，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)。

## 動作
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

JSON 政策的 `Action` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。

Amazon VPC 與 Amazon EC2 共享其 API 命名空間。Amazon VPC 中的原則動作會在動作之前使用下列前綴：`ec2:`。例如，若要授予使用 `CreateVpc` API 操作建立 VPC 的許可，請授予 `ec2:CreateVpc` 動作的存取權。政策陳述式必須包含 `Action` 或 `NotAction` 元素。

若要在單一陳述式中指定多個動作，請以逗號分隔它們，如下列範例所示。

```
"Action": [
      "ec2:action1",
      "ec2:action2"
]
```

您也可以使用萬用字元 (\$1) 來指定多個動作。例如，如需指定開頭是 `Describe` 文字的所有動作，請包含以下動作：

```
"Action": "ec2:Describe*"
```

若要查看 Amazon VPC 動作的清單，請參閱*《服務授權參考》*中的 [Amazon EC2 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions)。

## Resources
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Resource` JSON 政策元素可指定要套用動作的物件。最佳實務是使用其 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) 來指定資源。若動作不支援資源層級許可，使用萬用字元 (\$1) 表示該陳述式適用於所有資源。

```
"Resource": "*"
```

VPC 資源具有下列範例所示的 ARN。

```
arn:${Partition}:ec2:${Region}:${Account}:vpc/${VpcId}
```

例如，若要在陳述式中指定 `vpc-1234567890abcdef0` VPC，請使用下列範例中顯示的 ARN。

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-1234567890abcdef0"
```

若要指定屬於特定帳戶之特定區域中的所有 VPC，請使用萬用字元 (\$1)。

```
"Resource": "arn:aws:ec2:us-east-1:123456789012:vpc/*"
```

有些 Amazon VPC 動作無法對特定資源執行，例如用來建立資源的動作。在這些情況下，您必須使用萬用字元 (\$1)。

```
"Resource": "*"
```

許多 Amazon EC2 API 動作都涉及多個資源。若要在單一陳述式中指定多項資源，請使用逗號分隔 ARN。

```
"Resource": [
      "resource1",
      "resource2"
]
```

若要查看 Amazon VPC 資源類型及其 ARN 的清單，請參閱*《服務授權參考》*中的 [Amazon EC2 定義的資源類型](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-resources-for-iam-policies)。

## 條件索引鍵
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

管理員可以使用 AWS JSON 政策來指定誰可以存取內容。也就是說，哪個**主體**在什麼**條件**下可以對什麼**資源**執行哪些**動作**。

`Condition` 元素會根據定義的條件，指定陳述式的執行時機。您可以建立使用[條件運算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)的條件運算式 (例如等於或小於)，來比對政策中的條件和請求中的值。若要查看所有 AWS 全域條件索引鍵，請參閱《*IAM 使用者指南*》中的[AWS 全域條件內容索引鍵](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。

所有 Amazon EC2 操作都支援 `aws:RequestedRegion` 和 `ec2:Region` 條件索引鍵。如需詳細資訊，請參閱[範例：將存取限制在特定區域](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-region)。

Amazon VPC 會定義自己的一組條件金鑰，也支援使用一些全域條件金鑰。若要查看 Amazon VPC 條件金鑰的清單，請參閱*《服務授權參考》*中的 [Amazon EC2 的條件金鑰](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-policy-keys)。若要了解您可以搭配哪些動作和資源使用條件金鑰，請參閱 [Amazon EC2 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions)。

## 以 Amazon VPC 資源為基礎的原則
<a name="security_iam_service-with-iam-resource-based-policies"></a>

資源型原則是 JSON 原則文件，這些文件會指定指定的委託人可對 Amazon VPC 資源以及在怎樣的條件下執行哪些動作。

若要啟用跨帳戶存取，您可以指定在其他帳戶內的所有帳戶或 IAM 實體，做為[資源型原則的委託人](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)。新增跨帳戶主體至資源型政策，只是建立信任關係的一半。當委託人和資源位於不同的 AWS 帳戶中時，您還必須授予委託人實體存取資源的許可。透過將身分型政策連接到實體來授予許可。不過，如果資源型政策會為相同帳戶中的委託人授予存取，這時就不需要額外的身分型政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的快帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

## 以標籤為基礎的授權
<a name="security_iam_service-with-iam-tags"></a>

您可以將標籤連線到 Amazon VPC 資源，或是在請求中傳遞標籤。若要根據標籤控制存取，請使用條件金鑰，在政策的[條件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中提供標籤資訊。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[在建立過程中向標籤資源授予許可](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/supported-iam-actions-tagging.html)。

若要檢視身分型原則範例，以根據該資源上的標籤來限制存取資源，請參閱[在特定 VPC 中啟動執行個體](vpc-policy-examples.md#subnet-ami-example-iam)。

## IAM 角色
<a name="security_iam_service-with-iam-roles"></a>

[IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)是 中具有特定許可 AWS 帳戶 的實體。

### 使用暫時性憑證
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

您可以搭配聯合使用暫時憑證、擔任 IAM 角色，或是擔任跨帳戶角色。您可以透過呼叫 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) 或 [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) 等 AWS STS API 操作來取得臨時安全登入資料。

Amazon VPC 支援使用臨時登入資料。

### 服務連結角色
<a name="security_iam_service-with-iam-roles-service-linked"></a>

[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)可讓 AWS 服務存取其他服務中的資源，以代表您完成 動作。服務連結角色會顯示在您的 IAM 帳戶中，並由該服務所擁有。IAM 管理員可以檢視，但不能編輯服務連結角色的許可。

[傳輸閘道](https://docs.aws.amazon.com/vpc/latest/tgw/service-linked-roles.html)支援服務連結角色。

### 服務角色
<a name="security_iam_service-with-iam-roles-service"></a>

此功能可讓服務代表您擔任[服務角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#id_roles_terms-and-concepts)。此角色可讓服務存取其他服務中的資源，以代表您完成動作。服務角色會出現在您的 IAM 帳戶中，且由該帳戶所擁有。這表示 IAM 管理員可以變更此角色的許可。不過，這樣可能會破壞此服務的功能。

Amazon VPC 支援流程日誌的服務角色。建立流程日誌時，您必須選擇允許流程日誌服務存取 CloudWatch Logs 的角色。如需詳細資訊，請參閱[用於將流程日誌發佈至 CloudWatch Logs 的 IAM 角色](flow-logs-iam-role.md)。

# Amazon VPC 原則範例
<a name="vpc-policy-examples"></a>

根據預設，IAM 角色不具備建立或修改 VPC 資源的許可。他們也無法使用 AWS 管理主控台 AWS CLI或 AWS API 執行任務。IAM 管理員建立的 IAM 政策必須授予角色在指定資源上執行特定 API 操作的許可。管理員接著必須將這些政策連接至需要這些許可的 IAM 角色。

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《*IAM 使用者指南*》中的[建立 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)。

**Topics**
+ [政策最佳實務](#security_iam_service-with-iam-policy-best-practices)
+ [使用 Amazon VPC 主控台](#security_iam_id-based-policy-examples-console)
+ [建立包含公有子網的 VPC](#vpc-public-subnet-iam)
+ [修改和刪除 VPC 資源](#modify-vpc-resources-iam)
+ [管理安全群組](#vpc-security-groups-iam)
+ [管理安全群組規則](#vpc-security-group-rules-iam)
+ [在特定子網中啟動執行個體](#subnet-sg-example-iam)
+ [在特定 VPC 中啟動執行個體](#subnet-ami-example-iam)
+ [封鎖對 VPC 和子網路的公開存取](#vpc-bpa-example-iam)
+ [其他 Amazon VPC 原則範例](#security-iam-additional-examples)

## 政策最佳實務
<a name="security_iam_service-with-iam-policy-best-practices"></a>

身分型政策會判斷您帳戶中的某個人員是否可以建立、存取或刪除 Amazon VPC 資源。這些動作可能會讓您的 AWS 帳戶產生費用。當您建立或編輯身分型政策時，請遵循下列準則及建議事項：
+ **開始使用 AWS 受管政策並邁向最低權限許可** – 若要開始將許可授予您的使用者和工作負載，請使用將許可授予許多常見使用案例的 *AWS 受管政策*。它們可在您的 中使用 AWS 帳戶。我們建議您定義特定於使用案例 AWS 的客戶受管政策，以進一步減少許可。如需更多資訊，請參閱《*IAM 使用者指南*》中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)或[任務職能的AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html)。
+ **套用最低權限許可** – 設定 IAM 政策的許可時，請僅授予執行任務所需的許可。為實現此目的，您可以定義在特定條件下可以對特定資源採取的動作，這也稱為*最低權限許可*。如需使用 IAM 套用許可的更多相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 中的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。
+ **使用 IAM 政策中的條件進一步限制存取權** – 您可以將條件新增至政策，以限制動作和資源的存取。例如，您可以撰寫政策條件，指定必須使用 SSL 傳送所有請求。如果透過特定 例如 使用服務動作 AWS 服務，您也可以使用條件來授予其存取權 CloudFormation。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。
+ **使用 IAM Access Analyzer 驗證 IAM 政策，確保許可安全且可正常運作** – IAM Access Analyzer 驗證新政策和現有政策，確保這些政策遵從 IAM 政策語言 (JSON) 和 IAM 最佳實務。IAM Access Analyzer 提供 100 多項政策檢查及切實可行的建議，可協助您撰寫安全且實用的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[使用 IAM Access Analyzer 驗證政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html)。
+ **需要多重要素驗證 (MFA)** – 如果您的案例需要 IAM 使用者或 中的根使用者 AWS 帳戶，請開啟 MFA 以提高安全性。如需在呼叫 API 操作時請求 MFA，請將 MFA 條件新增至您的政策。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[透過 MFA 的安全 API 存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html)。

如需 IAM 中最佳實務的相關資訊，請參閱《*IAM 使用者指南*》中的 [IAM 安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

## 使用 Amazon VPC 主控台
<a name="security_iam_id-based-policy-examples-console"></a>

若要存取 Amazon VPC 主控台，您必須擁有最基本的一組許可。這些許可必須允許您列出和檢視 AWS 帳戶中 Amazon VPC 資源的詳細資訊。如果您建立比最基本必要許可更嚴格的身分型政策，則對於具有該政策的實體 (IAM 角色) 而言，主控台就無法如預期運作。

下列政策會授與角色在 VPC 主控台中列出資源的許可，但不會建立、更新或刪除這些資源。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAccountAttributes",
                "ec2:DescribeAddresses",
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeClassicLinkInstances",
                "ec2:DescribeClientVpnEndpoints",
                "ec2:DescribeCustomerGateways",
                "ec2:DescribeDhcpOptions",
                "ec2:DescribeEgressOnlyInternetGateways",
                "ec2:DescribeFlowLogs",
                "ec2:DescribeInternetGateways",
                "ec2:DescribeManagedPrefixLists",
                "ec2:DescribeMovingAddresses",
                "ec2:DescribeNatGateways",
                "ec2:DescribeNetworkAcls",
                "ec2:DescribeNetworkInterfaceAttribute",
                "ec2:DescribeNetworkInterfacePermissions",
                "ec2:DescribeNetworkInterfaces",
                "ec2:DescribePrefixLists",
                "ec2:DescribeRouteTables",
                "ec2:DescribeSecurityGroupReferences",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeStaleSecurityGroups",
                "ec2:DescribeSubnets",
                "ec2:DescribeTags",
                "ec2:DescribeTrafficMirrorFilters",
                "ec2:DescribeTrafficMirrorSessions",
                "ec2:DescribeTrafficMirrorTargets",
                "ec2:DescribeTransitGateways",
                "ec2:DescribeTransitGatewayVpcAttachments",
                "ec2:DescribeTransitGatewayRouteTables",
                "ec2:DescribeVpcAttribute",
                "ec2:DescribeVpcClassicLink",
                "ec2:DescribeVpcClassicLinkDnsSupport",
                "ec2:DescribeVpcEndpoints",
                "ec2:DescribeVpcEndpointConnectionNotifications",
                "ec2:DescribeVpcEndpointConnections",
                "ec2:DescribeVpcEndpointServiceConfigurations",
                "ec2:DescribeVpcEndpointServicePermissions",
                "ec2:DescribeVpcEndpointServices",
                "ec2:DescribeVpcPeeringConnections",
                "ec2:DescribeVpcs",
                "ec2:DescribeVpnConnections",
                "ec2:DescribeVpnGateways",
                "ec2:GetManagedPrefixListAssociations",
                "ec2:GetManagedPrefixListEntries"
            ],
            "Resource": "*"
        }
    ]
}
```

------

對於僅呼叫 AWS CLI 或 AWS API 的角色，您不需要允許最低主控台許可。反之，只需允許存取符合角色所需執行之 API 操作的動作就可以了。

## 建立包含公有子網的 VPC
<a name="vpc-public-subnet-iam"></a>

下列範例可讓角色建立 VPC、子網路、路由表和網際網路閘道。角色也可以將網際網路閘道連接至 VPC，並在路由表中建立路由。此 `ec2:ModifyVpcAttribute` 動作可讓角色啟用 VPC 的 DNS 主機名稱，以便啟動至 VPC 的每個執行個體都會收到一個 DNS 主機名稱。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [{
      "Effect": "Allow",
      "Action": [
        "ec2:CreateVpc", 
        "ec2:CreateSubnet", 
        "ec2:DescribeAvailabilityZones",
        "ec2:CreateRouteTable", 
        "ec2:CreateRoute", 
        "ec2:CreateInternetGateway", 
        "ec2:AttachInternetGateway", 
        "ec2:AssociateRouteTable", 
        "ec2:ModifyVpcAttribute"
      ],
      "Resource": "*"
    }
   ]
}
```

------

上述政策還可讓角色在 Amazon VPC 主控台中建立 VPC。

## 修改和刪除 VPC 資源
<a name="modify-vpc-resources-iam"></a>

您可能想要控制角色可以修改或刪除的 VPC 資源。例如，下列政策允許角色使用和刪除具有標籤 `Purpose=Test` 的路由表。此政策也會指定角色只能刪除具有標籤 `Purpose=Test` 的網際網路閘道。角色無法使用沒有此標籤的路由表或網際網路閘道。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteInternetGateway",
            "Resource": "arn:aws:ec2:*:*:internet-gateway/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Purpose": "Test"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DeleteRouteTable",
                "ec2:CreateRoute",
                "ec2:ReplaceRoute",
                "ec2:DeleteRoute"
            ],
            "Resource": "arn:aws:ec2:*:*:route-table/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Purpose": "Test"
                }
            }
        }
    ]
}
```

------

## 管理安全群組
<a name="vpc-security-groups-iam"></a>

下列政策可讓角色管理安全群組。第一個陳述式允許角色刪除任何具有標籤 `Stack=test` 的安全群組並管理具有標籤 `Stack=test` 的任何安全群組的傳入和傳出規則。第二個陳述式要求角色使用標籤 `Stack=Test` 來標記每一個他們建立的安全群組。第三個陳述式允許角色在建立安全群組時建立標籤。第四個陳述式允許角色檢視任何安全群組和安全群組規則。第五個陳述式允許角色在 VPC 中建立安全群組。

**注意**  
 AWS CloudFormation 服務無法使用此政策來建立具有必要標籤的安全群組。如果您移除需要標記之 `ec2:CreateSecurityGroup` 動作上的條件，則該政策會有效。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RevokeSecurityGroupIngress",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:DeleteSecurityGroup",
                "ec2:ModifySecurityGroupRules",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress"
            ],
            "Resource": "arn:aws:ec2:*:*:security-group/*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/Stack": "test"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSecurityGroup",
            "Resource": "arn:aws:ec2:*:*:security-group/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Stack": "test"
                },
                "ForAnyValue:StringEquals": {
                    "aws:TagKeys": "Stack"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": "arn:aws:ec2:*:*:security-group/*",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "CreateSecurityGroup"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeVpcs",
                "ec2:DescribeSecurityGroups"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:CreateSecurityGroup",
            "Resource": "arn:aws:ec2:*:*:vpc/*"
        }
    ]
}
```

------

若要允許角色變更與執行個體相關聯的安全群組，請將 `ec2:ModifyInstanceAttribute` 動作新增至您的政策。

若要允許角色變更網路介面的安全群組，請將 `ec2:ModifyNetworkInterfaceAttribute` 動作新增至您的政策。

## 管理安全群組規則
<a name="vpc-security-group-rules-iam"></a>

下列政策會授予角色許可，以允許角色檢視所有安全群組和安全群組規則、為特定 VPC 的安全群組新增和移除傳入和傳出規則，以及修改指定 VPC 的規則描述。第一個陳述式使用 `ec2:Vpc` 條件金鑰將許可範圍設定為特定 VPC。

第二個陳述式會授予角色許可，以允許角色描述所有安全群組、安全群組規則和標籤。這可讓角色檢視安全群組規則，以便進行修改。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress",
                "ec2:UpdateSecurityGroupRuleDescriptionsIngress",
                "ec2:AuthorizeSecurityGroupEgress",
                "ec2:RevokeSecurityGroupEgress",
                "ec2:UpdateSecurityGroupRuleDescriptionsEgress",
                "ec2:ModifySecurityGroupRules"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789012:security-group/*",
            "Condition": {
                "ArnEquals": {
                    "ec2:Vpc": "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-1234567890abcdef0"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeSecurityGroupRules",
                "ec2:DescribeTags"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ModifySecurityGroupRules"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789012:security-group-rule/*"
        }
    ]
}
```

------

## 在特定子網中啟動執行個體
<a name="subnet-sg-example-iam"></a>

下列政策會授予角色許可，以允許角色在特定子網路中啟動執行個體以及在請求中使用特定安全群組。此政策執行這項作業的方式是指定子網路的 ARN 和安全群組的 ARN。如果角色嘗試在不同的子網路中啟動執行個體，或使用不同的安全群組來啟動執行個體，則請求會失敗 (除非另一個政策或陳述式授予了角色執行此作業的許可)。

此政策也會授予許可來使用網路界面資源。在子網路中啟動時，根據預設，`RunInstances` 請求會建立主要網路介面，因此角色需要在啟動執行個體時建立此資源的許可。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:us-east-1::image/ami-*",
                "arn:aws:ec2:us-east-1:123456789012:instance/*",
                "arn:aws:ec2:us-east-1:123456789012:subnet/subnet-1234567890abcdef0",
                "arn:aws:ec2:us-east-1:123456789012:network-interface/*",
                "arn:aws:ec2:us-east-1:123456789012:volume/*",
                "arn:aws:ec2:us-east-1:123456789012:key-pair/*",
                "arn:aws:ec2:us-east-1:123456789012:security-group/sg-0abcdef1234567890"
            ]
        }
    ]
}
```

------

## 在特定 VPC 中啟動執行個體
<a name="subnet-ami-example-iam"></a>

下列政策會授予角色許可，以允許角色在特定 VPC 的任何子網路中啟動執行個體。此政策執行這項作業的方式是將條件金鑰 (`ec2:Vpc`) 套用至子網路資源。

此政策也會授予角色許，以允許角色僅使用具有 "`department=dev`" 標籤的 AMI 啟動執行個體。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1:123456789012:subnet/*",
            "Condition": {
                "ArnEquals": {
                    "ec2:Vpc": "arn:aws:ec2:us-east-1:123456789012:vpc/vpc-1234567890abcdef0"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-1::image/ami-*",
            "Condition": {
                "StringEquals": {
                    "ec2:ResourceTag/department": "dev"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": [
                "arn:aws:ec2:us-east-1:123456789012:instance/*",
                "arn:aws:ec2:us-east-1:123456789012:volume/*",
                "arn:aws:ec2:us-east-1:123456789012:network-interface/*",
                "arn:aws:ec2:us-east-1:123456789012:key-pair/*",
                "arn:aws:ec2:us-east-1:123456789012:security-group/*"
            ]
        }
    ]
}
```

------

## 封鎖對 VPC 和子網路的公開存取
<a name="vpc-bpa-example-iam"></a>

下列政策範例授予角色許可，以使用 [VPC 封鎖公開存取 (BPA) 功能](security-vpc-bpa.md)，以封鎖對 VPC 和子網路中資源的公開存取。

範例 1 – 允許唯讀存取 VPC BPA 全帳戶設定和 VPC BPA 排除。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "VPCBPAReadOnlyAccess",
      "Action": [
        "ec2:DescribeVpcBlockPublicAccessOptions",
        "ec2:DescribeVpcBlockPublicAccessExclusions"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

------

範例 2 – 允許完整讀取和寫入存取 VPC BPA 全帳戶設定和 VPC BPA 排除。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "VPCBPAFullAccess",
      "Action": [
        "ec2:DescribeVpcBlockPublicAccessOptions",
        "ec2:DescribeVpcBlockPublicAccessExclusions",
        "ec2:ModifyVpcBlockPublicAccessOptions",
        "ec2:CreateVpcBlockPublicAccessExclusion",
        "ec2:ModifyVpcBlockPublicAccessExclusion",
        "ec2:DeleteVpcBlockPublicAccessExclusion"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}
```

------

範例 3 – 允許存取所有 EC2 API，但修改 VPC BPA 設定和建立排除除外。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EC2FullAccess",
            "Action": [
                "ec2:*"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Sid": "VPCBPAPartialAccess",
            "Action": [
                "ec2:ModifyVpcBlockPublicAccessOptions",
                "ec2:CreateVpcBlockPublicAccessExclusion"
            ],
            "Effect": "Deny",
            "Resource": "*"
        }
    ]
}
```

------

## 其他 Amazon VPC 原則範例
<a name="security-iam-additional-examples"></a>

您可以在下列文件中找到與 Amazon VPC 相關的其他 IAM 政策範例：
+ [受管理的字首清單](managed-prefix-lists.md#managed-prefix-lists-iam)
+ [流量鏡射](https://docs.aws.amazon.com/vpc/latest/mirroring/traffic-mirroring-security.html)
+ [傳輸閘道](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-authentication-access-control.html#tgw-example-iam-policies)
+ [VPC 端點與 VPC 端點服務 (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/privatelink/security_iam_id-based-policy-examples.html)
+ [VPC 對等互連](https://docs.aws.amazon.com/vpc/latest/peering/security-iam.html)

# Amazon VPC 身分識別和存取疑難排解
<a name="security_iam_troubleshoot"></a>

請使用以下資訊來協助您診斷和修正使用 Amazon VPC 和 IAM 時可能遇到的常見問題。

**Topics**
+ [我未獲授權，不得在 Amazon VPC 中執行動作](#security_iam_troubleshoot-no-permissions)
+ [我未獲得執行 iam:PassRole 的授權](#security_iam_troubleshoot-passrole)
+ [我想要允許 AWS 帳戶外的人員存取我的 Amazon VPC 資源](#security_iam_troubleshoot-cross-account-access)

## 我未獲授權，不得在 Amazon VPC 中執行動作
<a name="security_iam_troubleshoot-no-permissions"></a>

如果 AWS 管理主控台 告訴您無權執行 動作，則必須聯絡您的管理員尋求協助。您的管理員是您的登入憑證提供者。

如果 `mateojackson` IAM 使用者嘗試使用主控台檢視子網路的詳細資訊，但但該子網路卻屬於沒有 `ec2:DescribeSubnets` 許可的 IAM 角色，會發生以下範例錯誤。

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: ec2:DescribeSubnets on resource: subnet-id
```

在此情況下，Mateo 會請求管理員更新政策，以允許他存取子網路。

## 我未獲得執行 iam:PassRole 的授權
<a name="security_iam_troubleshoot-passrole"></a>

如果您收到錯誤，告知您無權執行 `iam:PassRole` 動作，您的政策必須更新，允許您將角色傳遞給 Amazon VPC。

有些 AWS 服務 可讓您將現有角色傳遞給該服務，而不是建立新的服務角色或服務連結角色。如需執行此作業，您必須擁有將角色傳遞至該服務的許可。

當名為 `marymajor` 的 IAM 使用者嘗試使用主控台在 Amazon VPC 中執行動作時，發生下列範例錯誤。但是，動作請求服務具備服務角色授予的許可。Mary 沒有將角色傳遞給服務的許可。

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

在這種情況下，Mary 的政策必須更新，允許她執行 `iam:PassRole` 動作。

如果您需要協助，請聯絡您的 AWS 管理員。您的管理員提供您的簽署憑證。

## 我想要允許 AWS 帳戶外的人員存取我的 Amazon VPC 資源
<a name="security_iam_troubleshoot-cross-account-access"></a>

您可以建立一個角色，讓其他帳戶中的使用者或您組織外部的人員存取您的資源。您可以指定要允許哪些信任物件取得該角色。針對支援基於資源的政策或存取控制清單 (ACL) 的服務，您可以使用那些政策來授予人員存取您的資源的許可。

若要進一步了解，請參閱以下內容：
+ 若要了解 Amazon VPC 是否支援這些功能，請參閱 [Amazon VPC 如何與 IAM 搭配運作](security_iam_service-with-iam.md)。
+ 若要了解如何 AWS 帳戶 在您擁有的 資源之間提供存取權，請參閱《[IAM 使用者指南》中的在您擁有 AWS 帳戶 的另一個 IAM 使用者中提供存取權](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html)。 **
+ 若要了解如何將資源的存取權提供給第三方 AWS 帳戶，請參閱《*IAM 使用者指南*》中的[將存取權提供給第三方 AWS 帳戶 擁有](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html)。
+ 如需了解如何透過聯合身分提供存取權，請參閱《*IAM 使用者指南*》中的[將存取權提供給在外部進行身分驗證的使用者 (聯合身分)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html)。
+ 如需了解使用角色和資源型政策進行跨帳戶存取之間的差異，請參閱《*IAM 使用者指南*》中的 [IAM 中的跨帳戶資源存取](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html)。

# AWS Amazon Virtual Private Cloud 的 受管政策
<a name="security-iam-awsmanpol"></a>

 AWS 受管政策是由 AWS AWS 受管政策建立和管理的獨立政策旨在為許多常用案例提供許可，以便您可以開始將許可指派給使用者、群組和角色。

請記住， AWS 受管政策可能不會授予特定使用案例的最低權限許可，因為這些許可可供所有 AWS 客戶使用。我們建議您定義特定於使用案例的[客戶管理政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)，以便進一步減少許可。

您無法變更 AWS 受管政策中定義的許可。如果 AWS 更新受 AWS 管政策中定義的許可，則更新會影響政策連接的所有委託人身分 （使用者、群組和角色）。 AWS 服務 當新的 啟動或新的 API 操作可用於現有服務時， AWS 最有可能更新 AWS 受管政策。

如需詳細資訊，請參閱 *IAM 使用者指南*中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

## AWS 受管政策：AmazonVPCFullAccess
<a name="security-iam-awsmanpol-AmazonVPCFullAccess"></a>

您可以將 `AmazonVPCFullAccess` 政策連接到 IAM 身分。此政策授與允許 Amazon VPC 完整權限的許可。

若要檢視此政策的許可，請參閱*《AWS 受管政策參考》*中的 [AmazonVPCFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonVPCFullAccess.html)。

## AWS 受管政策：AmazonVPCReadOnlyAccess
<a name="security-iam-awsmanpol-AmazonVPCReadOnlyAccess"></a>

您可以將 `AmazonVPCReadOnlyAccess` 政策連接到 IAM 身分。此政策授與允許 Amazon VPC 唯讀權限的許可。

若要檢視此政策的許可，請參閱*《AWS 受管政策參考》*中的 [AmazonVPCReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonVPCReadOnlyAccess.html)。

## AWS 受管政策：AmazonVPCCrossAccountNetworkInterfaceOperations
<a name="security-iam-awsmanpol-AmazonVPCCrossAccountNetworkInterfaceOperations"></a>

您可將 `AmazonVPCCrossAccountNetworkInterfaceOperations` 政策連接到 IAM 身分。此策略授予允許身分建立網路介面並將其連接至跨帳戶資源的許可。

若要檢視此政策的許可，請參閱*《AWS 受管政策參考》*中的 [AmazonVPCCrossAccountNetworkInterfaceOperations](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonVPCCrossAccountNetworkInterfaceOperations.html)。

## AWS 受管政策：AWSServiceRoleForNATGateway
<a name="security-iam-awsmanpol-AWSServiceRoleForNATGateway"></a>

您可將 `AWSServiceRoleForNATGateway` 政策連接到 IAM 身分。此政策會授予許可，允許身分代表您自動擴展區域 NAT Gateway。

若要檢視此政策的許可，請參閱《 *AWS 受管政策參考*》中的 [AWSServiceRoleForNATGateway](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSServiceRoleForNATGateway.html)。

## AWS 受管政策的 Amazon VPC 更新
<a name="security-iam-awsmanpol-updates"></a>

檢視自此服務於 2021 年 3 月開始追蹤 Amazon VPC AWS 受管政策更新以來的詳細資訊。


| 變更 | 描述 | Date | 
| --- | --- | --- | 
| [AWS 受管政策：AmazonVPCFullAccess](#security-iam-awsmanpol-AmazonVPCFullAccess) – 更新現有政策 | 新增至 AWSIPAMServiceRolePolicy 受管政策 (ec2:ModifyManagedPrefixList、ec2:DescribeManagedPrefixLists 和 ec2:GetManagedPrefixListEntries) 的動作讓 IPAM 能夠修改與讀取受管字首清單。 | 2025 年 10 月 31 日 | 
| [AWS 受管政策：AWSServiceRoleForNATGateway](#security-iam-awsmanpol-AWSServiceRoleForNATGateway) – 新政策 | 新的 AWSServiceRoleForNATGateway 政策允許身分自動擴展區域 NAT 閘道。 | 2025 年 11 月 19 日 | 
| [AWS 受管政策：AmazonVPCFullAccess](#security-iam-awsmanpol-AmazonVPCFullAccess) – 更新現有政策 | 新增了 AssociateSecurityGroupVpc、DescribeSecurityGroupVpcAssociations 和 DisassociateSecurityGroupVpc 動作，讓您可以建立、取消與檢視 VPC 的安全群組關聯。 | 2024 年 12 月 9 日 | 
| [AWS 受管政策：AmazonVPCReadOnlyAccess](#security-iam-awsmanpol-AmazonVPCReadOnlyAccess) – 更新現有政策 | 新增了 DescribeSecurityGroupVpcAssociations 動作，讓您可以檢視與 VPC 的安全群組關聯。 | 2024 年 12 月 9 日 | 
| [AWS 受管政策：AmazonVPCFullAccess](#security-iam-awsmanpol-AmazonVPCFullAccess) – 更新現有政策 | 新增 GetSecurityGroupsForVpc 動作，可讓您取得可在 VPC 中使用的安全群組。 | 2024 年 2 月 8 日 | 
| [AWS 受管政策：AmazonVPCReadOnlyAccess](#security-iam-awsmanpol-AmazonVPCReadOnlyAccess) – 更新現有政策 | 新增 GetSecurityGroupsForVpc 動作，可讓您取得可在 VPC 中使用的安全群組。 | 2024 年 2 月 8 日 | 
| [AWS 受管政策：AmazonVPCCrossAccountNetworkInterfaceOperations](#security-iam-awsmanpol-AmazonVPCCrossAccountNetworkInterfaceOperations) – 更新現有政策 | 已新增 AssignIpv6Addresses 和 UnassignIpv6Addresses 動作，可讓您管理與網路介面關聯的 IPv6 地址。 | 2023 年 9 月 25 日 | 
| [AWS 受管政策：AmazonVPCReadOnlyAccess](#security-iam-awsmanpol-AmazonVPCReadOnlyAccess) – 更新現有政策 | 新增了 DescribeSecurityGroupRules 動作，可讓您檢視[安全群組規則](security-group-rules.md)。 | 2021 年 8 月 2 日 | 
| [AWS 受管政策：AmazonVPCFullAccess](#security-iam-awsmanpol-AmazonVPCFullAccess) – 更新現有政策 | 新增了 DescribeSecurityGroupRules 和 ModifySecurityGroupRules 動作，可讓您檢視和修改[安全群組規則](security-group-rules.md)。 | 2021 年 8 月 2 日 | 
| [AWS 受管政策：AmazonVPCFullAccess](#security-iam-awsmanpol-AmazonVPCFullAccess) – 更新現有政策 | 新增了針對電信業者閘道、IPv6 集區、本機閘道和本機閘道路由表的動作。 | 2021 年 6 月 23 日 | 
| [AWS 受管政策：AmazonVPCReadOnlyAccess](#security-iam-awsmanpol-AmazonVPCReadOnlyAccess) – 更新現有政策 | 新增了針對電信業者閘道、IPv6 集區、本機閘道和本機閘道路由表的動作。 | 2021 年 6 月 23 日 | 

# 使用 VPC 的服務連結角色
<a name="using-service-linked-roles"></a>

Amazon VPC 使用 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是直接連結至 VPC 的唯一 IAM 角色類型。服務連結角色由 VPC 預先定義，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

服務連結角色可讓您更輕鬆地設定 VPC，因為您不必手動新增必要的許可。VPC 定義其服務連結角色的許可，除非另有定義，否則只有 VPC 可以擔任其角色。定義的許可包括信任政策和許可政策，且該許可政策無法附加至其他 IAM 實體。

您必須先刪除服務連結角色的相關資源，才能將其刪除。這可保護您的 VPC 資源，因為您不會不小心移除存取資源的許可。

如需有關支援服務連結角色的其他 服務的資訊，請參閱[AWS 使用 IAM 的服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並在**服務連結角色**欄中尋找具有**是**的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## VPC 的服務連結角色許可
<a name="slr-permissions"></a>

VPC 使用名為 **AWSServiceRoleForNATGateway** 的服務連結角色 – 此服務連結角色可讓 Amazon VPC 代表您配置彈性 IP 地址，以自動擴展區域 NAT Gateway、將現有彈性 IPs 與區域 NAT Gateway 建立關聯，以及描述網路界面，以識別要自動擴展至新可用區域。

AWSServiceRoleForNATGateway 服務連結角色信任下列服務擔任該角色：
+ `ec2-nat-gateway.amazonaws.com`

名為 AWSNATGatewayServiceRolePolicy 的角色許可政策可讓 VPC 對指定的資源完成下列動作：
+ 動作：在服務受管 EIPs `AllocateAddress`上代表您配置 EIPs。服務受管 EIPs會自動使用服務受管標籤和 ReleaseAddress 處理後續標記。
+ 動作：在您預先存在的彈性 IP 地址`AssociateAddress`上，依您的請求手動將它們與區域 NAT Gateway 建立關聯。
+ 動作：在您預先存在的彈性 IP 地址`DisassociateAddress`上，在您請求時從區域 NAT Gateway 中移除它們。
+ 動作：從關聯上客戶提供EIPs 取得公`DescribeAddresses`有 IP 地址資訊。
+ 動作：在您現有的網路界面`DescribeNetworkInterface`上，自動識別基礎設施所在的可用區域，以自動擴展到新區域。

您必須設定許可，以允許您的使用者、群組或角色建立、編輯或刪除服務連結角色。如需詳細資訊，請參閱 *IAM 使用者指南*中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 為 VPC 建立服務連結角色
<a name="create-slr"></a>

您不需要手動建立服務連結角色，當您在 AWS CLI、 或 AWS API 中建立具有「區域」可用模式的 NAT 閘道 AWS 管理主控台時，VPC 會為您建立服務連結角色。

**重要**  
此服務連結角色可以顯示在您的帳戶，如果您於其他服務中完成一項動作時，可以使用支援此角色的功能。此外，如果您在 2017 年 1 月 1 日之前使用 VPC 服務，則在開始支援服務連結角色時，VPC 會在您的帳戶中建立 AWSServiceRoleForNATGateway 角色。若要進一步了解，請參閱[我的 中出現的新角色 AWS 帳戶](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您使用「區域」可用性模式建立 NAT 閘道時，VPC 會再次為您建立服務連結角色。

您也可以使用 IAM 主控台建立具有 **AWSServiceRoleForNATGateway** 使用案例的服務連結角色。在 AWS CLI 或 AWS API 中，使用服務名稱建立`ec2-nat-gateway.amazonaws.com`服務連結角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的「[建立服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#create-service-linked-role)」。如果您刪除此服務連結角色，您可以使用此相同的程序以再次建立該角色。

## 編輯 VPC 的服務連結角色
<a name="edit-slr"></a>

VPC 不允許您編輯 AWSServiceRoleForNATGateway 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 VPC 的服務連結角色
<a name="delete-slr"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。然而，在手動刪除服務連結角色之前，您必須先清除資源。

**注意**  
如果 VPC 服務在您嘗試刪除資源時使用角色，則刪除可能會失敗。若此情況發生，請等待數分鐘後並再次嘗試操作。

**刪除 AWSServiceRoleForNATGateway 使用的 VPC 資源**
+ 刪除所有已部署區域的所有區域 NAT 閘道。

**使用 IAM 手動刪除服務連結角色**

使用 IAM 主控台 AWS CLI、 或 AWS API 來刪除 AWSServiceRoleForNATGateway 服務連結角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。

## VPC 服務連結角色支援的 區域
<a name="slr-regions"></a>

VPC 支援在所有提供服務的區域中使用服務連結角色。如需詳細資訊，請參閱 [AWS Regions and endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html)。

VPC 不支援在提供服務的每個區域中使用服務連結角色。您可以在下列區域中使用 AWSServiceRoleForNATGateway 角色。


| 區域名稱 | 區域身分 | VPC 中的支援 | 
| --- | --- | --- | 
| 美國東部 (維吉尼亞北部) | us-east-1 | 是 | 
| 美國東部 (俄亥俄) | us-east-2 | 是 | 
| 美國西部 (加利佛尼亞北部) | us-west-1 | 是 | 
| 美國西部 (奧勒岡) | us-west-2 | 是 | 
| Africa (Cape Town) | af-south-1 | 是 | 
| 亞太地區 (香港) | ap-east-1 | 是 | 
| 亞太區域 (台北) | ap-east-2 | 是 | 
| 亞太地區 (雅加達) | ap-southeast-3 | 是 | 
| 亞太區域 (孟買) | ap-south-1 | 是 | 
| 亞太地區 (海德拉巴) | ap-south-2 | 是 | 
| 亞太區域 (大阪) | ap-northeast-3 | 是 | 
| 亞太區域 (首爾) | ap-northeast-2 | 是 | 
| 亞太區域 (新加坡) | ap-southeast-1 | 是 | 
| 亞太區域 (雪梨) | ap-southeast-2 | 是 | 
| 亞太區域 (東京) | ap-northeast-1 | 是 | 
| 亞太地區 (墨爾本) | ap-southeast-4 | 是 | 
| 亞太地區 (馬來西亞) | ap-southeast-5 | 是 | 
| 亞太區域 (紐西蘭) | ap-southeast-6 | 是 | 
| 亞太區域 (泰國) | ap-southeast-7 | 是 | 
| 加拿大 (中部) | ca-central-1 | 是 | 
| 加拿大西部 (卡加利) | ca-west-1 | 是 | 
| 歐洲 (法蘭克福) | eu-central-1 | 是 | 
| 歐洲 (蘇黎世) | eu-central-2 | 是 | 
| 歐洲 (愛爾蘭) | eu-west-1 | 是 | 
| 歐洲 (倫敦) | eu-west-2 | 是 | 
| 歐洲 (米蘭) | eu-south-1 | 是 | 
| 歐洲 (西班牙) | eu-south-2 | 是 | 
| 歐洲 (巴黎) | eu-west-3 | 是 | 
| Europe (Stockholm) | eu-north-1 | 是 | 
| 以色列 (特拉維夫) | il-central-1 | 是 | 
| Middle East (Bahrain) | me-south-1 | 是 | 
| 中東 (阿拉伯聯合大公國) | me-central-1 | 是 | 
| 中東 (沙烏地阿拉伯) | me-west-1 | 是 | 
| 墨西哥 (中部) | mx-central-1 | 是 | 
| 南美洲 (聖保羅) | sa-east-1 | 是 | 
| AWS GovCloud （美國東部） | us-gov-east-1 | 否 | 
| AWS GovCloud （美國西部） | us-gov-west-1 | 否 | 

# Amazon VPC 的基礎設施安全性
<a name="infrastructure-security"></a>

Amazon Virtual Private Cloud 是受管服務，受到 AWS 全球網路安全的保護。如需 AWS 安全服務以及 如何 AWS 保護基礎設施的相關資訊，請參閱[AWS 雲端安全](https://aws.amazon.com/security/)。若要使用基礎設施安全的最佳實務設計您的 AWS 環境，請參閱*安全支柱 AWS Well-Architected Framework* 中的[基礎設施保護](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html)。

您可以使用 AWS 發佈的 API 呼叫，透過網路存取 Amazon VPC。使用者端必須支援下列專案：
+ Transport Layer Security (TLS)。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 具備完美轉送私密(PFS)的密碼套件，例如 DHE (Ephemeral Diffie-Hellman)或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。

## 網路隔離
<a name="network-isolation"></a>

虛擬私有雲端 (VPC) 是 AWS 雲端中您自己的邏輯隔離區域中的虛擬網路。使用不同的 VPC，依工作負載或組織實體來隔離基礎設施。

子網是您的 VPC 中的 IP 地址範圍。啟動執行個體時，您會在 VPC 的子網中啟動它。使用子網來隔離單一 VPC 內的應用程式層 (例如，Web、應用程式及資料庫)。如果不應該從網際網路直接存取，則針對您的執行個體使用私有子網。

您可以使用 [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/privatelink/)讓 VPC 中的資源 AWS 服務 使用私有 IP 地址連線至 ，就像這些服務直接託管在 VPC 中一樣。因此，您不需要使用網際網路閘道或 NAT 裝置來存取 AWS 服務。

## 控制網路流量
<a name="control-network-traffic"></a>

請考慮下列選項來控制您 VPC 中的資源 (例如 EC2 執行個體) 的網路流量：
+ 使用[安全群組](vpc-security-groups.md)做為控制網路存取 VPC 的主要機制。必要時，請使用 [ 網路 ACL](vpc-network-acls.md) 來提供無狀態、粗糙的網路控制。安全群組比網路 ACL 更多用途，因為它們能夠執行有狀態封包篩選，並建立參考其他安全群組的規則。網路 ACL 可以有效地作為次要控制項 (例如拒絕特定流量子集) 或作為高階子網路防護護欄。此外，因為網路 ACL 會套用至整個子網路，所以執行個體若在沒有正確安全群組的情況下啟動，它們可以用作深度防禦。
+ 如果不應該從網際網路直接存取，則針對您的執行個體使用私有子網。使用堡壘主機或 NAT 閘道，以取得來自私有子網路中執行個體的網際網路存取權限。
+ 設定具有最少網路路由的子網路[路由表](VPC_Route_Tables.md)，以支援連線需求。
+ 請考慮使用其他安全群組或網路界面，來控制和稽核 Amazon EC2 執行個體管理流量，並與一般應用程式流量分開。因此，您可以實作變更控制的特殊 IAM 政策，讓稽核安全群組規則或自動規則驗證指令碼的變更變得更輕鬆。多個網路界面也提供其他控制網路流量的選項，包括能夠建立以主機為基礎的路由政策，或能夠根據網路界面指派的子網路運用不同的 VPC 子網路路由規則。
+ 使用 AWS Virtual Private Network 或 Direct Connect 建立從遠端網路到 VPCs私有連線。如需詳細資訊，請參閱 [Network-to-Amazon VPC 連線選項](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/network-to-amazon-vpc-connectivity-options.html)。
+ 使用 [VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)監控到達您執行個體的流量。
+ 使用 [AWS Security Hub CSPM](https://aws.amazon.com/security-hub/) 檢查來自您執行個體的意外網路存取性。
+ 使用 [AWS Network Firewall](network-firewall.md) 保護 VPC 中的子網路，以免遭受常見網路威脅的侵害。

## 比較安全群組和網路 ACL
<a name="VPC_Security_Comparison"></a>

下表總結了安全群組與網路 ACL 之間的基本差異。


| 特性 | 安全群組 | 網路 ACL | 
| --- | --- | --- | 
| 操作層級 | 執行個體層級 | 子網路層級 | 
| Scope (範圍) | 適用於與安全群組相關聯的所有執行個體 | 適用於關聯子網路中的所有執行個體 | 
| 規則類型 | 僅支援允許規則 | 支援允許與拒絕規則 | 
| 規則評估 | 在決定是否允許流量前，先評估所有規則 | 以遞增順序評估規則，直至找到流量的相符項為止 | 
| 傳回流量 | 自動允許 (具狀態) | 必須明確允許 (無狀態) | 

下表說明安全群組和網路 ACL 提供的安全 layer。例如，網際網路閘道傳出的流量會透過路由表中的路由來路由至適合的子網路。與子網路相關聯的網路 ACL 規則會控制允許哪些流量傳入子網路。與執行個體相關聯的安全群組規則會控制允許哪些流量傳入執行個體。

![\[使用安全群組和網路 ACL 控制流量\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/security-comparison.png)


您只能使用安全群組來保護執行個體。不過，您可以新增網路 ACL 做為額外的防禦層。如需詳細資訊，請參閱[範例：控制對子網路中執行個體的存取](nacl-examples.md)。

# 使用安全群組控制 AWS 資源的流量
<a name="vpc-security-groups"></a>

*安全群組*負責控制允許到達和離開其關聯資源的流量。例如，將安全群組與 EC2 執行個體相關聯後，就會控制執行個體的傳入和傳出流量。

當您建立 VPC 時，其具有一個預設的安全群組。您可以為 VPC 建立額外的安全群組，每個群組都有自己的傳入及傳出規則。您可以為每個傳入規則指定來源、連接埠範圍和通訊協定。您可以為每個傳出規則指定目的地、連接埠範圍和通訊協定。

下圖顯示具有子網路、網際網路閘道和安全群組的 VPC。子網路包含 EC2 執行個體。指派給執行個體的安全群組。安全群組會做為虛擬防火牆。僅有安全群組規則允許的流量才能到達執行個體。例如，如果安全群組包含允許 ICMP 流量從您的網路傳輸至執行個體的規則，您即可從電腦 ping 執行個體。如果安全群組不包含允許 SSH 流量的規則，則您無法使用 SSH 連線至執行個體。

![\[具有 2 個子網路、2 個安全群組的 VPC，以及與不同安全群組相關聯子網路中的伺服器\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/security-group-overview.png)


**Topics**
+ [安全群組基礎知識](#security-group-basics)
+ [安全群組範例](#security-group-example-details)
+ [安全群組規則](security-group-rules.md)
+ [預設安全群組](default-security-group.md)
+ [建立安全群組](creating-security-groups.md)
+ [設定安全群組規則](working-with-security-group-rules.md)
+ [刪除安全群組](deleting-security-groups.md)
+ [將安全群組與多個 VPC 建立關聯](security-group-assoc.md)
+ [與 AWS Organizations 共用安全群組](security-group-sharing.md)

**定價**  
使用安全群組無需額外收費。

## 安全群組基礎知識
<a name="security-group-basics"></a>
+ 如果使用[安全群組 VPC 關聯功能](security-group-assoc.md)將安全群組與相同區域中的其他 VPC 建立關聯，可以將安全群組指派給在與該安全群組相同的 VPC 中建立的資源，或指派給其他 VPC 中的資源。還可以將多個安全群組指派單個資源。
+ 當您建立安全群組時，您必須提供名稱和描述。適用的規定如下：
  + 安全群組名稱在 VPC 中必須是唯一的。
  + 安全群組名稱不區分大小寫。
  + 名稱和描述的長度最多可達 255 個字元。
  + 名稱和描述僅能使用下列字元：a-z、A-Z、0-9、空格，以及 .\$1-:/()\$1,@[]\$1=&;\$1\$1\$1\$1\$1。
  + 當名稱包含結尾空格時，我們會裁剪名稱結尾處的空格。例如，如果您輸入「測試安全群組」做為名稱，我們會將其儲存為「測試安全群組」。
  + 安全群組名稱的開頭不能是 `sg-`。
+ 安全群組具狀態。例如，若您從執行個體傳送請求，則允許該請求的回應流量到達執行個體，不論傳入安全群組規則為何。都會允許對允許傳入流量的回應離開執行個體，不論傳出規則為何。
+ 安全群組不會篩選往返下列位置的流量：
  + Amazon 網域名稱服務 (DNS)
  + Amazon 動態主機設定通訊協定 (DHCP)
  + Amazon EC2 執行個體中繼資料
  + Amazon ECS 任務中繼資料端點
  + Windows 執行個體的授權啟動
  + Amazon Time Sync Service
  + 預設 VPC 路由器使用的保留 IP 地址
+ 您可以為每個 VPC 建立的安全群組數、每個安全群組可新增的規則數，以及您可以與網路介面建立關聯的安全群組數都具有配額。如需詳細資訊，請參閱[Amazon VPC 配額](amazon-vpc-limits.md)。

**最佳實務**
+ 僅授權特定 IAM 主體建立和修改安全群組。
+ 建立您需要的最小數量的安全群組，以降低發生錯誤的風險。使用每個安全群組來管理對具有類似功能和安全要求之資源的存取權。
+ 在您為連接埠 22 (SSH) 或 3389 (RDP) 新增傳入規則以便可以存取 EC2 執行個體時，僅授權特定 IP 地址範圍。如果您指定 0.0.0.0/0 (IPv4) 和 ::/ (IPv6)，這可讓任何人使用指定的通訊協定從任何 IP 地址存取您的執行個體。
+ 請勿開啟較大的連接埠範圍。確保透過每個連接埠進行的存取僅限於需要連接埠的來源或目的地。
+ 考慮使用與您的安全群組相似的規則來建立網路 ACL，以為您的 VPC 新增額外的安全層。如需有關安全群組與網路 ACL 間差異的詳細資訊，請參閱[比較安全群組和網路 ACL](infrastructure-security.md#VPC_Security_Comparison)。

## 安全群組範例
<a name="security-group-example-details"></a>

下圖顯示了具有兩個安全群組和兩個子網路的 VPC。子網路 A 中的執行個體具有相同的連線需求，因此與安全群組 1 相關聯。子網路 B 中的執行個體具有相同的連線需求，因此與安全群組 2 相關聯。安全群組規則允許流量如下：
+ 安全群組 1 中的第一個輸入規則允許從指定地址範圍 (例如，您自己網路中的範圍) 傳輸至子網路 A 中執行個體的 SSH 流量。
+ 安全群組 1 中的第二個輸入規則允許子網路 A 中的執行個體使用任何通訊協定和連接埠相互通訊。
+ 安全群組 2 中的第一個輸入規則允許子網路 B 中的執行個體使用任何通訊協定和連接埠相互通訊。
+ 安全群組 2 中的第二個輸入規則允許子網路 A 中的執行個體使用 SSH 與子網路 B 中的執行個體通訊。
+ 兩個安全群組均使用預設傳出規則，允許所有流量。

![\[VPC，包含兩個安全群組和兩個子網路，且子網路中具有伺服器。子網路 A 中的伺服器與安全群組 1 相關聯。子網路 B 中的伺服器與安全群組 2 相關聯。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/security-group-details.png)


# 安全群組規則
<a name="security-group-rules"></a>

安全群組的規則可控制允許到達與安全群組相關聯之資源的傳入流量。規則也會控制允許離開的對外流量。

您可以新增或移除安全群組的規則 (也稱為*授權*或*撤銷*傳入或傳出存取)。規則會套用至傳入流量 (輸入) 或傳出流量 (輸出)。您可以授予特定來源或目的地的存取權。

**Topics**
+ [安全群組規則基礎知識](#security-group-rule-characteristics)
+ [安全群組規則的元件](#security-group-rule-components)
+ [安全群組參考](#security-group-referencing)
+ [安全群組大小](#security-group-size)
+ [過時的安全群組規則](#vpc-stale-security-group-rules)

## 安全群組規則基礎知識
<a name="security-group-rule-characteristics"></a>

以下為安全群組規則的特性：
+ 您可以指定允許規則，但無法指定拒絕規則。
+ 當您首次建立安全群組時，它沒有傳入規則。因此，在您將傳入規則新增到安全群組之前，都不會允許傳入流量。
+ 當您首次建立安全群組時，該安全群組會具有允許來自該資源的所有傳出流量的傳出規則。您可以移除規則並新增只允許特定傳出流量的傳出規則。若您的安全群組沒有傳出規則，將不會允許傳出流量。
+ 當您將多個安全群組與資源建立關聯時，會將每個安全群組的規則彙總以構成一組規則，並使用這組規則來決定是否允許存取。
+ 當您新增、更新或移除規則時，您的變更會自動套用至與安全群組相關聯的所有資源。如需說明，請參閱[設定安全群組規則](working-with-security-group-rules.md)。
+ 有些規則變更的效果可取決於追蹤流量的方式。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的[連線追蹤](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-connection-tracking.html)。
+ 當您建立安全群組規則時， 會 AWS 為規則指派唯一的 ID。當您使用 API 或 CLI 修改或刪除規則時，可以使用規則的 ID。

**限制**  
安全群組無法封鎖有時稱為「VPC\$12 IP 位址」(請參閱*《Amazon Route 53 開發人員指南》*中的 [Amazon Route 53 Resolver](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver.html)) 或 [AmazonProvidedDNS](DHCPOptionSet.md) 的 Route 53 Resolver 所接收或發出的 DNS 請求。若要透過 Route 53 Resolver 篩選 DNS 請求，請使用 [Route 53 Resolver DNS Firewall](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall.html)。

## 安全群組規則的元件
<a name="security-group-rule-components"></a>

以下是傳入和傳出安全群組規則的組成部分：
+ **通訊協定**：要允許的通訊協定。最常見的通訊協定為 6 (TCP)、17 (UDP) 和 1 (ICMP)。
+ **連接埠範圍**：適用於 TCP、UDP 或自訂通訊協定，要允許的連接埠範圍。您可以指定單一連接埠號碼 (例如，`22`)，或是連接埠號碼的範圍 (例如，`7000-8000`)。
+ **ICMP 類型及代碼**：適用於 ICMP，為 ICMP 的類型及代碼。例如，使用類型 8 代表「ICMP Echo 請求」，輸入 128 則代表「ICMPv6 Echo 請求」。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的 [Ping/ICMP 的規則](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html#sg-rules-ping)。
+ **來源或目的地**：允許流量的來源 (傳入規則) 或目的地 (傳出規則)。請指定下列其中一項：
  + 單一 IPv4 地址。您必須使用 `/32` 的字首長度。例如 `203.0.113.1/32`。
  + 單一 IPv6 地址。您必須使用 `/128` 的字首長度。例如 `2001:db8:1234:1a00::123/128`。
  + IPv4 地址範圍，以 CIDR 區塊標記法表示。例如 `203.0.113.0/24`。
  + IPv6 地址範圍，以 CIDR 區塊標記法表示。例如 `2001:db8:1234:1a00::/64`。
  + 字首清單的 ID。例如 `pl-1234abc1234abc123`。如需詳細資訊，請參閱[受管理的字首清單](managed-prefix-lists.md)。
  + 安全群組的 ID。例如 `sg-1234567890abcdef0`。如需詳細資訊，請參閱[安全群組參考](#security-group-referencing)。
+ **(Optional) Description ((選用) 描述)**：您可以為規則新增描述，這可協助您在稍後更容易識別它。描述的長度最高可達 255 個字元。允許的字元為 a-z、A-Z、0-9、空格鍵和 .\$1-:/()\$1,@[]\$1=;\$1\$1\$1\$1\$1。

如需範例，請參閱《Amazon EC2 使用者指南》**中的[不同使用案例的安全群組規則](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules-reference.html)。

## 安全群組參考
<a name="security-group-referencing"></a>

當您將安全群組指定為規則的來源或目的地時，規則會影響所有與安全群組相關聯的執行個體。執行個體可透過指定的通訊協定和連接埠，使用執行個體的私有 IP 地址，以指定的方向進行通訊。

例如，以下內容表示參考安全群組 sg-0abcdef1234567890 的安全群組傳入規則。此規則允許來自與 sg-0abcdef1234567890 關聯的執行個體的傳入 SSH 流量。


| 來源 | 通訊協定 | 連接埠範圍 | 
| --- | --- | --- | 
| sg-0abcdef1234567890 | TCP | 22 | 

在安全群組規則中參考安全群組時，請注意下列事項：
+ 如果下列任一情況為 true，您可以在另一個安全群組的傳入規則中參考安全群組：
  + 與同一 VPC 關聯的安全群組。
  + 與安全群組相關聯的 VPC 之間有互連連線。
  + 與安全群組相關聯的 VPC 之間有傳輸閘道。
+ 如果下列任一情況為 true，您可以在傳出規則中參考安全群組：
  + 與同一 VPC 關聯的安全群組。
  + 與安全群組相關聯的 VPC 之間有互連連線。
+ 所參考安全群組中的規則不會新增至參考該安全群組的安全群組。
+ 對於傳入規則，與安全群組關聯的 EC2 執行個體可以從與參考安全群組相關聯之 EC2 執行個體的網路介面中的私有 IP 位址接收傳入流量。
+ 對於傳出規則，與安全群組關聯的 EC2 執行個體可以將傳出流量傳送至與參考安全群組相關聯之 EC2 執行個體的網路介面中的私有 IP 位址。
+ 我們不會在下列動作中對參考的安全群組進行授權：`AuthorizeSecurityGroupIngress`、`AuthorizeSecurityGroupEgress`、`RevokeSecurityGroupIngress` 與 `RevokeSecurityGroupEgress`。我們只會檢查安全群組是否存在。此舉會導致以下情形：
  + 在 IAM 政策中為這些動作指定參考的安全群組沒有作用。
  + 當另一個帳戶擁有參考的安全群組時，擁有者帳戶不會收到這些動作的 CloudTrail 事件。

**限制**

如果您將路由設定為透過中間設備來轉遞不同子網中兩個執行個體之間的流量，則您必須確保兩個執行個體的安全群組均允許流量在執行個體之間流動。每個執行個體的安全群組都必須參考另一個執行個體的私有 IP 地址，或是包含其他執行個體之子網路的 CIDR 範圍作為來源。如果您參考另一個執行個體的安全群組作為來源，這不會允許流量在執行個體之間流動。

**範例**

下圖顯示在兩個可用區域中具有子網路、一個網際網路閘道和一個 Application Load Balancer 的 VPC。每個可用區域都有一個用於 Web 伺服器的公用子網路，以及一個用於資料庫伺服器的私有子網路。負載平衡器、Web 伺服器和資料庫伺服器有個別的安全群組。建立下列安全群組規則以允許流量。
+ 將規則新增至負載平衡器的安全群組以允許來自網際網路的 HTTP 和 HTTPS 流量。來源是 0.0.0.0/0。
+ 將規則新增至 Web 伺服器的安全群組，以僅允許來自負載平衡器的 HTTP 和 HTTPS 流量。來源是負載平衡器的安全群組。
+ 將規則新增至資料庫伺服器的安全群組，以允許來自 Web 伺服器的資料庫請求。來源是 Web 伺服器的安全群組。

![\[具有 Web 和 db 伺服器、安全群組、網際網路閘道和負載平衡器的架構\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/security-group-referencing.png)


## 安全群組大小
<a name="security-group-size"></a>

來源或目的地類型會決定每個規則如何計入每個安全群組可擁有的規則數目上限。
+ 參考 CIDR 區塊的規則會計為一個規則。
+ 參考另一個安全群組的規則會計為一個規則，無論參考之安全群組的大小為何。
+ 參考客戶管理之字首清單的規則會計為字首清單的大小上限。例如，如果字首清單的大小上限為 20，則參考此字首清單的規則會計為 20 個規則。
+ 參考 AWS受管字首清單的規則會計入字首清單的權重。例如，如果字首清單的權重為 10，則參考此字首清單的規則會計為 10 個規則。如需詳細資訊，請參閱[可用的 AWS受管字首清單](working-with-aws-managed-prefix-lists.md#available-aws-managed-prefix-lists)。

## 過時的安全群組規則
<a name="vpc-stale-security-group-rules"></a>

若 VPC 和另一個 VPC 之間有 VPC 對等互連連線或與其他帳戶共用一個 VPC，則 VPC 的安全群組規則會參考該對等 VPC 或共用 VPC 中的安全群組規則。這可讓與被參考安全群組相關聯的資源，以及與參考安全群組相關聯的執行個體彼此通訊。如需詳細資訊，請參閱《Amazon VPC 互連指南》**中的[更新您的安全群組，使其參考互連安全群組](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-security-groups.html)。

如果您有一個參考互連 VPC 或共用 VPC 中安全群組的安全群組規則，並且共用 VPC 中的安全群組被删除或 VPC 對等互連遭到删除，則該安全群組規則將被標記為過時。如同任何其他的安全群組規則，您可以刪除過時的安全群組規則。

# VPC 的預設安全群組
<a name="default-security-group"></a>

您的預設 VPC 和您建立的任何 VPC 皆隨附預設的安全群組。預設安全群組的名稱為「default」。

建議您為特定資源或資源群組建立安全群組，而非使用預設安全群組。但是，如果您未在建立資源時關聯安全群組，則資源會關聯至預設安全群組。例如，如果您未在啟動 EC2 執行個體時指定安全群組，執行個體會與 VPC 的預設安全群組建立關聯。

## 預設安全群組基本概念
<a name="default-security-group-basics"></a>
+ 您可以變更預設安全群組的規則。
+ 您無法刪除預設安全群組。若您嘗試刪除預設安全群組，我們會傳回下列錯誤代碼：`Client.CannotDelete`。

## 預設規則
<a name="default-security-group-default-rules"></a>

下表說明預設安全群組的預設傳入規則。


| 來源 | 通訊協定 | 連接埠範圍 | Description | 
| --- | --- | --- | --- | 
| sg-1234567890abcdef0  | 全部 | 全部 | 允許來自指派給此安全群組的所有資源的傳入流量。來源為此安全群組的 ID。 | 

下表說明預設安全群組的預設傳出規則。


| 目標 | 通訊協定 | 連接埠範圍 | 描述 | 
| --- | --- | --- | --- | 
| 0.0.0.0/0 | 全部 | 全部 | 允許所有傳出 IPv4 流量。 | 
| ::/0 | 全部 | 全部 | 允許所有傳出 IPv6 流量。只有在 VPC 有相關聯的 IPv6 CIDR 區塊時，才會新增此規則。 | 

## 範例
<a name="default-security-group-example"></a>

下圖顯示具有一個預設安全群組、一個網際網路閘道和一個 NAT 閘道的 VPC。預設安全措施僅包含其預設規則，並且它會與在 VPC 中執行的兩個 EC2 執行個體建立關聯。在此案例中，每個執行個體都可以從所有連接埠和通訊協定上的其他執行個體接收傳入流量。預設規則不允許執行個體從網際網路閘道或 NAT 閘道接收流量。如果您的執行個體必須接收額外流量，建議您建立一個具有所需規則的安全群組，並將新的安全群組與執行個體建立關聯，而不是與預設安全群組建立關聯。

![\[具有 2 個子網路、預設安全群組、2 個 EC2 執行個體、網際網路閘道和 NAT 閘道的 VPC\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/default-security-group.png)


# 為 VPC 建立安全群組
<a name="creating-security-groups"></a>

您的虛擬私有雲端 (VPC) 隨附預設安全群組。您可以建立額外的安全群組。安全群組只能在建立該群組的 VPC 的資源中使用。

根據預設，新的安全群組一開始只有允許流量離開資源的傳出規則。您必須新增規則啟用任何傳入流量，或是限制傳出流量。您可以在建立安全群組時新增規則，或稍後再新增。如需詳細資訊，請參閱[安全群組規則](security-group-rules.md)。

**所需的 許可**

開始之前，請務必備妥必要的許可。如需詳細資訊，請參閱下列內容：
+ [管理安全群組](vpc-policy-examples.md#vpc-security-groups-iam)
+ [管理安全群組規則](vpc-policy-examples.md#vpc-security-group-rules-iam)

**使用主控台建立安全群組**

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

1. 在導覽窗格中，選擇**安全群組**。

1. 選擇 **Create Security Group** (建立安全群組)。

1. 輸入安全群組的名稱和說明。您無法在建立安全群組之後變更安全群組的名稱和說明。

1. 對於 **VPC**，選擇您要建立與安全群組建立關聯的資源的 VPC。

1. (選用) 若要新增傳入規則，請選擇**傳入規則**。針對每個規則，選擇**新增規則**並指定通訊協定、連接埠和來源。如需詳細資訊，請參閱[設定安全群組規則](working-with-security-group-rules.md)。

1. (選用) 若要新增傳出規則，請選擇**傳出規則**。針對每個規則，選擇**新增規則**並指定通訊協定、連接埠和目的地。

1. (選用) 若要新增標籤，請選擇 **Add new tag** (新增標籤)，然後輸入標籤金鑰和值。

1. 選擇**建立安全群組**。

**使用 建立安全群組 AWS CLI**  
使用 [create-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-security-group.html) 命令。

此外，您可以複製現有安全群組，以建立新的安全群組。當您複製安全群組時，我們會自動新增與原始安全群組相同的傳入和傳出規則，並使用與原始安全群組相同的 VPC。您可以輸入新安全群組的名稱和說明。您可以選擇不同的 VPC，也可以視需要修改傳入和傳出規則。但是，您無法將安全群組從一個區域複製到另一個區域。

**根據現有的安全群組建立安全群組**

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

1. 在導覽窗格中，選擇**安全群組**。

1. 選取安全群組。

1. 選擇**動作**，**複製到新的安全群組**。

1. 輸入安全群組的名稱和說明。

1. (選用) 視需要選擇不同的 VPC。

1. (選用) 視需要新增、移除或編輯安全群組規則。

1. 選擇**建立安全群組**。

# 設定安全群組規則
<a name="working-with-security-group-rules"></a>

建立安全群組之後，您可以新增、更新和刪除其安全群組規則。當您新增、更新或刪除規則時，變更會自動套用至與安全群組相關聯的任何資源。

**所需的許可**  
開始之前，請務必備妥必要的許可。如需詳細資訊，請參閱[管理安全群組規則](vpc-policy-examples.md#vpc-security-group-rules-iam)。

**通訊協定與連接埠**
+ 在主控台中選取預先定義的類型後，系統會為您指定**通訊協定**與**連接埠範圍**。如需輸入連接埠範圍，必須選取以下自訂類型之一：**自訂 TCP** 或**自訂 UDP**。
+ 使用 AWS CLI，您可以使用 `--protocol`和 `--port`選項新增具有單一連接埠的單一規則。如需新增多項規則，或具有連接埠範圍的規則，請改用 `--ip-permissions` 選項。

**資料來源和目的地**
+ 透過主控台，可指定下列內容作為傳入規則的來源，或傳出規則的目的地：
  + **自訂** – IPv4 CIDR 區塊、IPv6 CIDR 區塊、安全群組或字首清單。
  + **Anywhere-IPv4** – 0.0.0.0/0 IPv4 CIDR 區塊。
  + **Anywhere-IPv6** – ::/0 IPv6 CIDR 區塊。
  + **我的 IP**：自動新增您本機電腦的公有 IPv4 地址。
+ 使用 AWS CLI，您可以使用 `--cidr`選項指定 IPv4 CIDR 區塊，或使用 `--source-group`選項指定安全群組。若要指定字首清單或 IPv6 CIDR 區塊，請使用 `--ip-permissions` 選項。

**警告**  
如果您選擇**任何位置-IPv4**，則會允許來自所有 IPv4 地址的流量。如果您選擇**任何位置-IPv6**，則會允許來自所有 IPv6 地址的流量。最佳實務是僅授權需要存取資源的特定 IP 位址範圍。

**使用主控台為安全群組配置規則**

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

1. 在導覽窗格中，選擇**安全群組**。

1. 選取安全群組。

1. 若要編輯傳入規則，請從**動作**或傳入規則索引標籤中選擇**編輯****傳入規則**。

   1. 若要新增規則，請選擇**新增規則**，並輸入規則的類型、通訊協定、連接埠和來源。

      針對 TCP 或 UDP，您必須輸入要允許的連接埠範圍。針對自訂 ICMP，則必須從 **Protocol (通訊協定)** 中選擇 ICMP 類型名稱，然後再從 **Port Range (連接埠範圍)** 中選擇代碼名稱 (若適用)。如果是任何其他類型，則系統會自動為您設定通訊協定和連接埠範圍。

   1. 若要更新規則，請視需要變更其通訊協定、描述和來源。不過，您無法變更來源類型。例如，如果來源是 IPv4 CIDR 區塊，則無法指定 IPv6 CIDR 區塊、字首清單或安全群組。

   1. 若要刪除規則，請選擇其**刪除**按鈕。

1. 若要編輯傳出規則，請從**動作**或傳出規則索引標籤中選擇**編輯傳****出規則**。

   1. 若要新增規則，請選擇**新增規則**，並輸入規則的類型、通訊協定、連接埠和目的地。您也可以選擇輸入描述。

      針對 TCP 或 UDP，您必須輸入要允許的連接埠範圍。針對自訂 ICMP，則必須從 **Protocol (通訊協定)** 中選擇 ICMP 類型名稱，然後再從 **Port Range (連接埠範圍)** 中選擇代碼名稱 (若適用)。如果是任何其他類型，則系統會自動為您設定通訊協定和連接埠範圍。

   1. 若要更新規則，請視需要變更其通訊協定、描述和來源。不過，您無法變更來源類型。例如，如果來源是 IPv4 CIDR 區塊，則無法指定 IPv6 CIDR 區塊、字首清單或安全群組。

   1. 若要刪除規則，請選擇其**刪除**按鈕。

1. 選擇**儲存規則**。

**使用 設定安全群組規則 AWS CLI**
+ **使用** [authorize-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-ingress.html) 和 [authorize-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/authorize-security-group-egress.html) 命令。
+ **使用** [revoke-security-group-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-ingress.html) 和 [revoke-security-group-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/revoke-security-group-egress.html) 命令。
+ **修改** – 使用 [modify-security-group-rules](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-security-group-rules.html)、[update-security-group-rule-descriptions-ingress](https://docs.aws.amazon.com/cli/latest/reference/ec2/update-security-group-rule-descriptions-ingress.html) 和 [update-security-group-rule-descriptions-egress](https://docs.aws.amazon.com/cli/latest/reference/ec2/update-security-group-rule-descriptions-egress.html) 命令。

# 刪除安全群組
<a name="deleting-security-groups"></a>

當您完成建立的安全群組後，您可以將其刪除。

**要求**
+ 安全群組無法與任何資源建立關聯。
+ 安全群組不能被其他安全群組中的規則參考。
+ 安全群組不能是 VPC 的預設安全群組。

**使用主控台刪除安全群組**

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

1. 在導覽窗格中，選擇**安全群組**。

1. 選取安全群組，然後選擇**動作**、**刪除安全群組**。

1. 如果您選擇多個安全群組，系統會提示您進行確認。如果無法刪除某些安全群組，我們會顯示每個安全群組的狀態，指出是否要刪除。若要確認刪除，請輸入**刪除**。

1. 選擇 **刪除**。

**使用 刪除安全群組 AWS CLI**  
使用 [delete-security-group](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-security-group.html) 命令。

# 將安全群組與多個 VPC 建立關聯
<a name="security-group-assoc"></a>

如果您有工作負載在共用網路安全需求的多個 VPC 中執行，您可以使用安全群組 VPC 關聯功能，將安全群組與相同區域中的 VPC 建立關聯。這可讓您管理和維護您帳戶中多個 VPC 的安全群組。

![\[與兩個 VPC 相關聯的安全群組圖表。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/sec-group-vpc-assoc.png)


上圖顯示帳戶 AWS A，其中包含兩個 VPCs。每個 VPC 都有在私有子網路中執行的工作負載。在此情況下，VPC A 和 B 子網路中的工作負載共用相同的網路流量需求，因此帳戶 A 可以使用安全群組 VPC 關聯功能，將 VPC A 中的安全群組與 VPC B 建立關聯。對相關安全群組所做的任何更新都會自動套用至 VPC B 子網路中的工作負載。

**安全群組 VPC 關聯功能的需求**
+ 您必須擁有 VPC 或與您共用其中一個 VPC 子網路，才能將安全群組與 VPC 建立關聯。
+ VPC 和安全群組必須位於相同的 AWS 區域。
+ 您無法將預設安全群組與其他 VPC 建立關聯，或將安全群組與預設 VPC 建立關聯。
+ 安全群組擁有者和 VPC 擁有者都可以檢視安全群組 VPC 關聯。

**支援此功能的服務**
+ Amazon API Gateway (僅限 REST API)
+ AWS Auto Scaling
+ CloudFormation
+ Amazon EC2
+ Amazon EFS
+ Amazon EKS
+ Amazon FSx
+ AWS PrivateLink
+ Amazon Route 53
+ Elastic Load Balancing
  + Application Load Balancer
  + Network Load Balancer

## 將安全群組與另一個 VPC 建立關聯
<a name="assoc-sg"></a>

本節說明如何使用 AWS 管理主控台 和 AWS CLI 將安全群組與 VPCs建立關聯。

------
#### [ AWS Management Console ]

**為安全群組與另一個 VPC 建立關聯**

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

1. 在左導覽窗格中，選擇**安全群組**。

1. 選擇安全群組，檢視其詳細資訊。

1. 選擇 **VPC 關聯**標籤。

1. 選擇 **Associate VPC (關聯 VPC)**。

1. 在 **VPC ID** 下，選擇要與安全群組建立關聯的 VPC。

1. 選擇 **Associate VPC (關聯 VPC)**。

------
#### [ Command line ]

**將安全群組與另一個 VPC 建立關聯**

1. 建立與 [associate-security-group-vpc](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/associate-security-group-vpc.html) 的 VPC 關聯。

1. 檢查 VPC 與 [describe-security-group-vpc-associations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-security-group-vpc-associations.html) 的關聯狀態，並等待狀態變為 `associated`。

------

VPC 現在已與安全群組關聯。

 將 VPC 與安全群組建立關聯後，例如，您可以[在 VPC 中啟動執行個體，並選擇此新的安全群組](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html)，或[在現有的安全群組規則中參考此安全群組](security-group-rules.md#security-group-referencing)。

## 取消安全群組與另一個 VPC 的關聯
<a name="disassoc-sg"></a>

本節說明如何使用 AWS 管理主控台 和 AWS CLI 取消安全群組與 VPCs關聯。如果您的目標是刪除安全群組，您可能想要這麼做。如果安全群組已關聯，則無法刪除。只有在關聯的 VPC 中沒有網路介面使用該安全群組時，您才能取消關聯安全群組。

------
#### [ AWS Management Console ]

**取消安全群組與 VPC 的關聯**

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

1. 在左導覽窗格中，選擇**安全群組**。

1. 選擇安全群組，檢視其詳細資訊。

1. 選擇 **VPC 關聯**標籤。

1. 選擇**取消關聯 VPC**。

1. 在 **VPC ID** 下，選擇要與安全群組取消關聯的 VPC。

1. 選擇**取消關聯 VPC**。

1. 在 VPC 關聯標籤中檢視取消關聯的**狀態**，並等待狀態變為 `disassociated`。

------
#### [ Command line ]

**取消安全群組與 VPC 的關聯**

1. 取消 VPC 與 [disassociate-security-group-vpc](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/disassociate-security-group-vpc.html) 的關聯。

1. 檢查 VPC 與 [describe-security-group-vpc-associations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/describe-security-group-vpc-associations.html) 取消關聯的狀態，並等待狀態變為 `disassociated`。

------

VPC 現在已與安全群組取消關聯。

# 與 AWS Organizations 共用安全群組
<a name="security-group-sharing"></a>

共用安全群組功能可讓您與相同 AWS 區域內的其他 AWS Organizations 帳戶共用安全群組，並讓安全群組可供這些帳戶使用。

下圖示範如何使用共用安全群組功能來簡化 AWS Organizations 中跨帳戶的安全群組管理：

![\[與共用 VPC 子網路中的其他帳戶共用的安全群組圖表。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/sec-group-sharing.png)


此圖表顯示三個屬於相同組織的帳戶。帳戶 A 與帳戶 B 和 C 共用 VPC 子網路。帳戶 A 使用共用安全群組功能與帳戶 B 和 C 共用安全群組。帳戶 B 和 C 接著會在共用子網路中啟動執行個體時使用該安全群組。這可讓帳戶 A 管理安全群組；安全群組的任何更新都會套用至帳戶 B 和 C 在共用 VPC 子網路中執行的資源。

**共用安全群組功能的需求**
+ 此功能僅適用於 AWS Organizations 中相同組織中的帳戶。[資源共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html)必須在 AWS Organizations 中啟用。
+ 共用安全群組的帳戶必須同時擁有 VPC 和安全群組。
+ 您無法共用預設安全群組。
+ 您無法共用預設 VPC 中的安全群組。
+ 參與者帳戶可以在共用 VPC 中建立安全群組，但無法共用這些安全群組。
+ IAM 主體需要一組最低許可，才能與之共用安全群組 AWS RAM。使用 `AmazonEC2FullAccess` 和 `AWSResourceAccessManagerFullAccess` 受管 IAM 政策，確保您的 IAM 主體擁有共用和使用共用安全群組所需的許可。如果您使用自訂 IAM 政策，則需要 `c2:PutResourcePolicy` 和 `ec2:DeleteResourcePolicy` 動作。這些是僅限許可的 IAM 動作。如果 IAM 委託人未授予這些許可，嘗試使用 AWS RAM共用安全群組時將發生錯誤。

**支援此功能的服務**
+ Amazon API Gateway
+ Amazon EC2
+ Amazon ECS
+ Amazon EFS
+ Amazon EKS
+ Amazon EMR
+ Amazon FSx
+ Amazon ElastiCache
+ AWS Elastic Beanstalk
+ AWS Glue
+ Amazon MQ
+ Amazon SageMaker AI
+ Elastic Load Balancing
  + Application Load Balancer
  + Network Load Balancer

**此功能如何影響現有的配額**

[安全群組配額](amazon-vpc-limits.md#vpc-limits-security-groups)適用。不過，對於「每個網路介面的安全群組」配額，如果參與者在彈性網路介面 (ENI) 上使用擁有和共用的群組，則適用擁有者和參與者配額的最小值。

示範配額如何受到此功能影響的範例：
+ 擁有者帳戶配額：每個介面 4 個安全群組
+ 參與者帳戶配額：每個介面 5 個安全群組。
+ 擁有者與參與者共用群組 SG-O1、SG-O2、SG-O3、SG-O4、SG-O5。參與者已在 VPC 中擁有自己的群組：SG-P1、SG-P2、SG-P3、SG-P4、SG-P5。
+ 如果參與者建立 ENI 並僅使用其擁有的群組，他們可以關聯所有 5 個安全群組 (SG-P1、SG-P2、SG-P3、SG-P4、SG-P5)，因為這是他們的配額。
+ 如果參與者建立 ENI 並使用其中的任何共用群組，則他們最多只能關聯 4 個群組。在這種情況下，此類 ENI 的配額是擁有者和參與者配額的最小值。可能的有效組態如下所示：
  + SG-O1、SG-P1、SG-P2、SG-P3
  + SG-O1、SG-O2、SG-O3、SG-O4

## 共用安全群組
<a name="share-sg-org"></a>

本節說明如何使用 AWS 管理主控台 和 AWS CLI 與 Organization 中的其他帳戶共用安全群組。

------
#### [ AWS Management Console ]

**共用安全群組**

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

1. 在左導覽窗格中，選擇**安全群組**。

1. 選擇安全群組，檢視其詳細資訊。

1. 選擇 **Sharing (共用)** 標籤 。

1. 選擇**共用安全群組**。

1. 選擇 **Create resource share (建立資源共用)**。因此， AWS RAM 主控台會開啟，您將在其中為安全群組建立資源共享。

1. 輸入共用資源的**名稱**。

1. 在**資源 – 選用**下，選擇**安全群組**。

1. 選擇安全群組。安全群組不能是預設安全群組，也不能與預設 VPC 相關聯。

1. 選擇**下一步**。

1. 檢閱允許主體執行的動作，然後選擇**下一步**。

1. 在**主體 – 選用**下，選擇**僅允許在組織內共用**。

1. 在**主體**下，選擇下列其中一個主體類型，然後輸入適當的數字：
   + **AWS 帳戶**：您 Organization 中帳戶的帳戶號碼。
   + **Organization**： AWS Organizations ID。
   + **組織單位 (OU)**：組織中的 OU 的 ID。
   + **IAM 角色**：IAM 角色的 ARN。建立角色的帳戶必須與建立此資源共享的帳戶是相同組織的成員。
   + **IAM 使用者**：IAM 使用者的 ARN。建立使用者的帳戶必須與建立此資源共享的帳戶是相同組織的成員。
   + **服務主體**：您無法與服務主體共用安全群組。

1. 選擇**新增**。

1. 選擇**下一步**。

1. 選擇 **Create resource share (建立資源共用)**。

1. 在**共用資源**下，等待以查看 `Associated` 的**狀態**。如果有安全群組關聯失敗，可能是因為上述其中一個限制。檢視安全群組的詳細資訊，以及詳細資訊頁面上的**共用**標籤，以查看與安全群組無法共用原因相關的任何訊息。

1. 返回 VPC 主控台安全群組清單。

1. 選擇您共用的安全群組。

1. 選擇 **Sharing (共用)** 標籤 。您的 AWS RAM 資源應該會在那裡顯示。如果沒有，資源共用建立可能失敗，您可能需要重新建立。

------
#### [ Command line ]

**共用安全群組**

1. 您必須先為要共用的安全群組建立資源共用 AWS RAM。如需如何使用 在 中建立資源共享的步驟 AWS RAM AWS CLI，請參閱*AWS RAM 《 使用者指南*》中的[在 中建立資源共享 AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing-create.html) 

1. 若要檢視建立的資源共用關聯，請使用 [get-resource-share-associations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/get-resource-share-associations.html)。

------

安全群組現在已共用。您可以在相同 VPC 內的共用子網路中[啟動 EC2 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/LaunchingAndUsingInstances.html)時選取安全群組。

## 停止共用安全群組
<a name="stop-share-sg-org"></a>

本節說明如何使用 AWS 管理主控台 和 AWS CLI 來停止與 Organization 中的其他帳戶共用安全群組。

------
#### [ AWS Management Console ]

**停止共用安全群組**

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

1. 在左導覽窗格中，選擇**安全群組**。

1. 選擇安全群組，檢視其詳細資訊。

1. 選擇 **Sharing (共用)** 標籤 。

1. 選擇安全群組資源共用，然後選擇**停止共用**。

1. 選擇**是，停止共用**。

------
#### [ Command line ]

**停止共用安全群組**

使用 [delete-resource-share](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ec2/delete-resource-share.html) 刪除資源共用。

------

安全群組不再共用。擁有者停止共用安全群組後，適用下列規則：
+ 現有參與者彈性網絡介面 (ENI) 會繼續取得對未共用安全群組所做的任何安全群組規則更新。取消共用只會防止參與者與未共用的群組建立新的關聯。
+ 參與者無法再將未共用的安全群組與其擁有的任何 ENI 建立關聯。
+ 參與者可以描述和刪除仍然與未共用安全群組相關聯的 ENI。
+ 如果參與者仍有與未共用安全群組相關聯的 ENI，則擁有者無法刪除未共用的安全群組。擁有者只能在參與者取消安全群組與其所有 EN 的關聯 (移除) 之後，才能刪除安全群組。
+ 參與者無法使用與未共用安全群組相關聯的 ENI 啟動新的 EC2 執行個體。

# 使用網路存取控制清單控制子網路流量
<a name="vpc-network-acls"></a>

*網路存取控制清單 (ACL)* 會允許或拒絕子網層級的特定傳入或傳出流量。您可使用 VPC 的預設網路 ACL，亦可使用與安全群組規則類似的規則來為 VPC 建立自訂網路 ACL，為 VPC 提供多一層的安全性。

使用網路 ACL 無需額外收費。

下圖顯示具有兩個子網路的 VPC。每個子網路都具有網路 ACL。當流量進入 VPC (例如，從對等 VPC、VPN 連線或網際網路) 時，路由器會將流量傳送至其目的地。網路 ACL A 會判斷哪些目的地為子網路 1 的流量允許進入子網路 1，以及哪些目的地為子網路 1 以外位置的流量允許離開子網路 1。同樣地，網路 ACL B 會判斷哪些流量允許進入和離開子網路 2。

![\[具有兩個子網路的 VPC 和每個子網路的網路 ACL。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/network-acl.png)


如需安全群組與網路 ACL 間差異的相關資訊，請參閱[比較安全群組和網路 ACL](infrastructure-security.md#VPC_Security_Comparison)。

**Topics**
+ [網路 ACL 基本概念](#nacl-basics)
+ [網路 ACL 規則](nacl-rules.md)
+ [VPC 的預設網路 ACL](default-network-acl.md)
+ [VPC 的自訂網路 ACL](custom-network-acl.md)
+ [路徑 MTU 探索與網路 ACL](path_mtu_discovery.md)
+ [為您的 VPC 建立網路 ACL](create-network-acl.md)
+ [管理 VPC 的網路 ACL 關聯](network-acl-associations.md)
+ [刪除 VPC 的網路 ACL](delete-network-acl.md)
+ [範例：控制對子網路中執行個體的存取](nacl-examples.md)

## 網路 ACL 基本概念
<a name="nacl-basics"></a>

下列是開始之前需要了解的網路 ACL 基本事項。

**網路 ACL 關聯**
+ VPC 中的每個子網路都必須與一個網路 ACL 建立關聯。如果您未明確將子網路與網路 ACL 建立關聯，子網路就會自動與[預設網路 ACL](default-network-acl.md) 建立關聯。
+ 您可以建立[自訂網路 ACL](custom-network-acl.md) 並將其與子網路關聯，以允許或拒絕子網路層級的特定傳入或傳出流量。
+ 您可以將網路 ACL 與多個子網路建立關聯。不過，子網路一次只能與一個網路 ACL 相關聯。當您為網路 ACL 與子網路建立關聯時，系統就會移除先前的關聯。

**網路 ACL 規則**
+ 網路 ACL 具有傳入規則和傳出規則。[每個網路 ACL 擁有的規則數量有配額 (或限制)](amazon-vpc-limits.md#vpc-limits-nacls)。每個規則都可以允許或拒絕流量。每個規則都有一個從 1 至 32766 的數字。在決定是允許還是拒絕流量時，我們會依序評估規則，從編號最低的規則開始。如果流量符合規則，則會套用規則，我們不會評估任何其他規則。我們建議您先以增量方式建立規則 (例如 10 或 100 的增量)，以便稍後可在需要時插入新規則。
+ 當流量進入和離開子網路時，我們會評估網路 ACL 規則，而不是在子網路內路由時。
+ NACL 為*無狀態*，這表示不會儲存有關先前傳送或接收的流量資訊。例如，如果您建立了允許子網路之特定輸入流量的 NACL 規則，則不會自動允許對該流量的回應。這與安全群組的工作方式相反。安全群組為*無狀態*，這表示會儲存有關先前傳送或接收的流量資訊。例如，如果安全群組允許 EC2 執行個體的輸入流量，則無論輸出安全群組規則如何，都會自動允許回應。

**限制**
+ 網路 ACL 有配額 (也稱為限制)。如需詳細資訊，請參閱[網路 ACL](amazon-vpc-limits.md#vpc-limits-nacls)。
+ 網路 ACL 無法封鎖傳送至 Route 53 Resolver (也稱為 VPC\$12 IP 地址或 AmazonProvidedDNS) 或從其傳送的 DNS 請求。若要透過 Route 53 Resolver 篩選 DNS 請求，請啟用 [Route 53 Resolver DNS 防火牆](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-dns-firewall.html)。
+ 網路 ACL 無法封鎖傳送至執行個體中繼資料服務 (IMDS) 的流量。若要管理對 IMDS 的存取權限，請參閱《Amazon EC2 使用者指南》**中的[設定執行個體中繼資料選項](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-options.html)。
+ 網路 ACL 不會篩選往返下列位置的流量：
  + Amazon 網域名稱服務 (DNS)
  + Amazon 動態主機設定通訊協定 (DHCP)
  + Amazon EC2 執行個體中繼資料
  + Amazon ECS 任務中繼資料端點
  + Windows 執行個體的授權啟動
  + Amazon Time Sync Service
  + 預設 VPC 路由器使用的保留 IP 地址

# 網路 ACL 規則
<a name="nacl-rules"></a>

您可以在預設網路 ACL 中新增或移除規則，或為您的 VPC 建立額外的網路 ACL。當您在網路 ACL 中新增或移除規則時，系統會自動將變更套用至與網路 ACL 建立關聯的子網路。

下列為部分網路 ACL 規則：
+ **規則編號**。規則評估順序是從最低的編號規則開始。只要規則符合流量，即會套用規則，不論是否有任何編號更高的規則可能與其抵觸均同。
+ **類型**。流量類型；例如 SSH。您也可以指定所有流量或自訂範圍。
+ **Protocol (通訊協定**)。您可以指定任何具有標準通訊協定號碼的通訊協定。如需詳細資訊，請參閱 [Protocol Numbers](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)。若您指定 ICMP 為通訊協定，您可以指定任何或所有的 ICMP 類型及代碼。
+ **連接埠範圍**。流量的接聽連接埠或連接埠範圍。例如，80 代表 HTTP 流量。
+ **來源**。[僅限傳入規則] 流量的來源 (CIDR 範圍)。
+ **Destination (目的地**)。[僅限傳出規則] 流量的目的地 (CIDR 範圍)。
+ **允許/拒絕**。*允許*還是*拒絕*指定的流量。

如需規則範例，請參閱 [範例：控制對子網路中執行個體的存取](nacl-examples.md)。

## 考量事項
<a name="nacl-rule-considerations"></a>
+ 每個網路 ACL 的規則數量有配額 (亦稱為限制)。如需詳細資訊，請參閱[Amazon VPC 配額](amazon-vpc-limits.md)。
+ 當您新增或刪除 ACL 的規則時，任何與該 ACL 相關聯的子網路都會套用變更。這些變更在很短時間後便會生效。
+ 如果您使用命令列工具或 Amazon EC2 API 新增規則，CIDR 範圍會自動修改為其標準形式。例如，如果您指定 CIDR 範圍為 `100.68.0.18/18`，我們會建立具有 `100.68.0.0/18` CIDR 範圍的規則。
+ 如果您必須開放範圍很廣的連接埠，但該範圍內有要拒絕的特定連接埠，則您可能想要新增拒絕規則。請務必為拒絕規則設定比允許更廣連接埠流量範圍的規則更小的編號。
+ 如果同時從網路 ACL 新增與刪除規則，請多加小心。如果您刪除傳入或傳出規則，然後新增的新項目數量超過允許的數量 (請參閱 [Amazon VPC 配額](amazon-vpc-limits.md))，則選擇要刪除的項目將會被移除，而新項目則*不會*新增。這可能會導致未預期的連線問題，並且阻止進出 VPC 的存取行為。

# VPC 的預設網路 ACL
<a name="default-network-acl"></a>

虛擬私有雲端 (VPC) 自動隨附預設網路 ACL。系統會將預設網路 ACL 設定為允許所有流量流進和流出其相關聯的子網路。每個網路 ACL 也包括規則編號為星號 (\$1) 的規則。這些規則可確保在封包未符合任何其他編號規則時拒絕該封包。

您可以透過新增規則或移除預設編號規則來修改預設網路 ACL。您無法刪除規則編號為星號的規則。

**預設傳入規則**  
下表顯示預設網路 ACL 的預設傳入規則。只有在建立具有關聯 IPv6 CIDR 區塊的 VPC，或將 IPv6 CIDR 區塊與 VPC 建立關聯後，才能新增 IPv6 規則。不過，如果您已修改預設網路 ACL 的傳入規則，我們就不會在您將 IPv6 區塊與 VPC 建立關聯時新增允許所有傳入 IPv6 流量的規則。


| 規則 \$1 | 類型 | 通訊協定 | 連接埠範圍  | 來源 | 允許/拒絕 | 
| --- | --- | --- | --- | --- | --- | 
|  100  | 所有 IPv4 流量 |  全部  |  全部  | 0.0.0.0/0 |  允許  | 
|  101  |  所有 IPv6 流量  |  全部  |  全部  |  ::/0  |  允許  | 
|  \$1  | 所有流量 |  全部  |  全部  | 0.0.0.0/0 |  拒絕  | 
|  \$1  |  所有 IPv6 流量  |  全部  |  全部  |  ::/0  |  拒絕  | 

**預設傳出規則**  
下表顯示預設網路 ACL 的預設傳出規則。只有在建立具有關聯 IPv6 CIDR 區塊的 VPC，或將 IPv6 CIDR 區塊與 VPC 建立關聯後，才能新增 IPv6 規則。不過，如果您已修改預設網路 ACL 的傳出規則，我們就不會在您將 IPv6 區塊與 VPC 建立關聯時新增允許所有傳出 IPv6 流量的規則。


| 規則 \$1 | 類型 | 通訊協定 | 連接埠範圍 | 目的地 | 允許/拒絕 | 
| --- | --- | --- | --- | --- | --- | 
|  100  | 所有流量 |  全部  |  全部  | 0.0.0.0/0 |  允許  | 
|  101  |  所有 IPv6 流量  |  全部  |  全部  |  ::/0  |  允許  | 
|  \$1  | 所有流量 |  全部  |  全部  | 0.0.0.0/0 |  拒絕  | 
|  \$1  |  所有 IPv6 流量  |  全部  |  全部  |  ::/0  |  拒絕  | 

# VPC 的自訂網路 ACL
<a name="custom-network-acl"></a>

您可以建立自訂網路 ACL 並將其與子網路關聯，以允許或拒絕子網路層級的特定傳入或傳出流量。如需詳細資訊，請參閱[為您的 VPC 建立網路 ACL](create-network-acl.md)。

每個網路 ACL 都包含規則編號為星號 (\$1) 的預設傳入規則和預設傳出規則。這些規則可確保在封包未符合任何其他規則時拒絕該封包。

可以透過新增或移除規則來修改網路 ACL。您無法刪除規則編號為星號的規則。

對於每個新增的規則，必須設有允許回應流量的傳入或傳出規則。如需如何選取適當的暫時性連接埠範圍的詳細資訊，請參閱[暫時性連接埠](#nacl-ephemeral-ports)。

**傳入規則範例**  
下表顯示網路 ACL 的傳入規則。僅當 VPC 具有關聯的 IPv6 CIDR 區塊時，才能新增 IPv6 規則。IPv4 和 IPv6 流量會分別評估。因此，IPv4 流量的任何規則都不適用於 IPv6 流量。您可以在對應的 IPv4 規則旁新增 IPv6 規則，或在最後一個 IPv4 規則後新增 IPv6 規則。

在封包前往子網路時，系統會依據與子網路相關聯的網路 ACL 傳入規則評估該封包 (從編號最小的規則開始)。例如，假設有目的地為 HTTPS 連接埠 (443) 的 IPv4 流量。該封包不符合規則 100 或 105。但該封包符合規則 110，而該規則允許流量進入子網路。如果封包的目的地是連接埠 139 (NetBIOS)，它就不符合任何編號規則，因此 IPv4 流量的 \$1 規則最終也會拒絕該封包。


| 規則 \$1 | 類型 | 通訊協定 | 連接埠範圍 | 來源 | 允許/拒絕 | 說明 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 100 | HTTP | TCP | 80 | 0.0.0.0/0 | 允許 |  允許來自任何 IPv4 地址的傳入 HTTP 流量。  | 
| 105 | HTTP | TCP | 80 | ::/0 | 允許 |  允許來自任何 IPv6 地址的傳入 HTTP 流量。  | 
| 110 | HTTPS | TCP | 443 | 0.0.0.0/0 | 允許 |  允許來自任何 IPv4 地址的傳入 HTTPS 流量。  | 
| 115 | HTTPS | TCP | 443 | ::/0 | 允許 | 允許來自任何 IPv6 地址的傳入 HTTPS 流量。 | 
| 120 | SSH | TCP | 22 | *192.0.2.0/24* | 允許 |  允許來自您家用網路公有 IPv4 地址範圍的傳入 SSH 流量 (透過網際網路閘道)。  | 
| 140 | 自訂 TCP | TCP | *32768-65535* | 0.0.0.0/0 | 允許 |  允許來自網際網路的傳入回傳 IPv4 流量 (針對出自子網路的請求)。  | 
| 145 | 自訂 TCP | TCP | *32768-65535* | ::/0 | 允許 |  允許來自網際網路的傳入回傳 IPv6 流量 (針對出自子網路的請求)。  | 
| \$1 | 所有流量 | 全部 | 全部 | 0.0.0.0/0 | 拒絕 |  拒絕上述規則 (無法修改) 尚未處理的所有傳入 IPv4 流量。  | 
| \$1 | 所有流量 | 全部 | 全部 | ::/0 | 拒絕 |  拒絕上述規則 (無法修改) 尚未處理的所有傳入 IPv6 流量。  | 

**傳出規則範例**  
下表顯示自訂網路 ACL 的傳出規則範例。僅當 VPC 具有關聯的 IPv6 CIDR 區塊時，才能新增 IPv6 規則。IPv4 和 IPv6 流量會分別評估。因此，IPv4 流量的任何規則都不適用於 IPv6 流量。您可以在對應的 IPv4 規則旁新增 IPv6 規則，或在最後一個 IPv4 規則後新增 IPv6 規則。


| 規則 \$1 | 類型 | 通訊協定 | 連接埠範圍 | 目的地 | 允許/拒絕 | 說明 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 100 | HTTP | TCP | 80 | 0.0.0.0/0 | 允許 | 允許傳出 IPv4 HTTP 流量從子網路流向網際網路。 | 
| 105 | HTTP | TCP | 80 | ::/0 | 允許 | 允許傳出 IPv6 HTTP 流量從子網路流向網際網路。 | 
| 110 | HTTPS | TCP | 443 | 0.0.0.0/0 | 允許 | 允許傳出 IPv4 HTTPS 流量從子網路流向網際網路。 | 
| 115 | HTTPS | TCP | 443 | ::/0 | 允許 | 允許傳出 IPv6 HTTPS 流量從子網路流向網際網路。 | 
| 120 | 自訂 TCP | TCP | *1024-65535* | *192.0.2.0/24* | 允許 |  允許對來自家用網路的 SSH 流量進行傳出回應。  | 
| 140 | 自訂 TCP | TCP | *32768-65535* | 0.0.0.0/0 | 允許 | 允許對網際網路上的用戶端進行傳出 IPv4 回應 (例如，提供網頁服務)。 | 
| 145 | 自訂 TCP | TCP | *32768-65535* | ::/0 | 允許 | 允許對網際網路上的用戶端進行傳出 IPv6 回應 (例如，提供網頁服務)。  | 
| \$1 | 所有流量 | 全部 | 全部 | 0.0.0.0/0 | 拒絕 | 拒絕上述規則尚未處理的所有傳出 IPv4 流量。 | 
| \$1 | 所有流量 | 全部 | 全部 | ::/0 | 拒絕 | 拒絕上述規則尚未處理的所有傳出 IPv6 流量。 | 

## 暫時性連接埠
<a name="nacl-ephemeral-ports"></a>

上節的範例網路 ACL 是使用 32768-65535 暫時性連接埠範圍。不過，建議您依據所使用的用戶端類型或要通訊的目標，為您的網路 ACL 使用不同範圍。

初始化請求的用戶端會選擇暫時性連接埠範圍。範圍需視用戶端作業系統而定。
+ 許多 Linux 核心 (包括 Amazon Linux 核心) 使用的連接埠 32768-61000。
+ 來自 Elastic Load Balancing 的請求會使用連線埠 1024-65535。
+ Windows 作業系統到 Windows Server 2003 使用連接埠 1025-5000。
+ Windows Server 2008 和更新版本使用連接埠 49152-65535。
+ NAT 閘道使用連接埠 1024-65535。
+ AWS Lambda 函數使用連接埠 1024-65535。

例如，如果送達 VPC 之 Web 伺服器的請求是來自網際網路的 Windows 10 用戶端，您的網路 ACL 就必須具有傳出規則以讓流量通往連接埠 49152-65535。

如果啟動請求的用戶端是您 VPC 中的執行個體，您的網路 ACL 就必須具有傳入規則以讓流量通往特定執行個體作業系統的暫時性連接埠。

實際操作時，為了涵蓋各種可能初始化流量至 VPC 中公開執行個體的不同用戶端類型，您可以開啟暫時性連接埠 1024-65535。不過，您也可以新增規則至 ACL 以拒絕該範圍內任何惡意連接埠上的流量。請務必比開啟廣泛暫時性連接埠的允許規則更早在資料表中放入拒絕規則。

## 自訂網路 ACLs和其他 AWS 服務
<a name="nacl-other-services"></a>

如果您建立自訂網路 ACL，請注意它如何影響您使用其他 AWS 服務建立的資源。

透過 Elastic Load Balancing，如果您已在後端執行個體子網路的網路 ACL 中，針對來源為 `0.0.0.0/0` 或子網路 CIDR 的所有流量新增*拒絕*規則，您的負載平衡器就無法對執行個體執行運作狀態檢查。如需有關負載平衡器與後端執行個體之建議網路 ACL 規則的詳細資訊，請參閱下列主題：
+ [Application Load Balancer 的網路 ACL](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-troubleshooting.html)
+ [Network Load Balancer 的網路 ACL](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/target-group-register-targets.html#network-acls)
+ [Classic Load Balancer 的網路 ACL](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-vpc-network-acls.html)

## 對連線能力問題進行疑難排解
<a name="network-acl-rules-troubleshoot"></a>

Reachability Analyzer 是一種靜態組態分析工具。使用 Reachability Analyzer 來分析 VPC 中兩項資源之間的網路連線能力並進行偵錯。Reachability Analyzer 會在可連線虛擬路徑時，在這些路徑之間產生逐個躍點的詳細資訊，並在無法連線時識別導致阻礙的元件。例如，它可以識別遺失或設定錯誤的網路 ACL 規則。

如需詳細資訊，請參閱 [Reachability Analyzer Guide](https://docs.aws.amazon.com/vpc/latest/reachability/) (《Reachability Analyzer 指南》)。

# 路徑 MTU 探索與網路 ACL
<a name="path_mtu_discovery"></a>

路徑 MTU 探索可用於確認兩個裝置間的路徑 MTU。路徑 MTU 是原始主機和接收主機之間的路徑上支援的最大封包尺寸。

針對 IPv4，若主機傳送的封包大小大於接收主機的 MTU，或是大於路徑上裝置的 MTU，則接收主機或裝置便會丟棄封包，然後傳回下列 ICMP 訊息：`Destination Unreachable: Fragmentation Needed and Don't Fragment was Set` (類型 3，代碼 4)。這會指示傳輸主機將承載分割成多個較小的封包，然後重新傳輸它們。

IPv6 通訊協定不支援網路中的分段。若主機傳送的封包大小大於接收主機的 MTU，或是大於路徑上裝置的 MTU，則接收主機或裝置便會丟棄封包，然後傳回下列 ICMP 訊息：`ICMPv6 Packet Too Big (PTB)` (類型 2)。這會指示傳輸主機將承載分割成多個較小的封包，然後重新傳輸它們。

如果子網路中主機之間的最大傳輸單位 (MTU) 不同，或您的執行個體透過網際網路進行對等通訊，則您必須新增下列網路 ACL 規則，同時適用於傳入和傳出。這可確保路徑 MTU 探索能夠正確運作，並防止封包遺失。為類型選取 **Custom ICMP Rule (自訂 ICMP 規則)**，而且若 **Destination Unreachable (無法連接目的地)**，則為連接埠範圍 (類型 3，代碼 4) 選取**需要分段並設定 DF 旗標**。如果您使用追蹤路由，也必須新增以下規則：為連接埠範圍 (類型 11、代碼 0) 選取 **Custom ICMP Rule (自訂 ICMP 規則)** 類型，以及 **Time Exceeded (超過時間)**、**TTL expired transit (TTL 過期傳輸)**。如需詳細資訊，請參閱*《Amazon EC2 使用者指南》*中的 [EC2 執行個體的網路最高傳輸裝置 (MTU)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/network_mtu.html)。

# 為您的 VPC 建立網路 ACL
<a name="create-network-acl"></a>

下列任務說明如何建立網路 ACL、將規則新增至網路 ACL，然後將網路 ACL 與子網路建立關聯。

**Topics**
+ [步驟 1：建立網路 ACL](#CreateACL)
+ [步驟 2：新增規則](#Rules)
+ [步驟 3：將子網路與網路 ACL 建立關聯](#NetworkACL)
+ [(選用) 透過 Firewall Manager 管理網路 ACL](#nacls-using-firewall-manager)

## 步驟 1：建立網路 ACL
<a name="CreateACL"></a>

您可以為 VPC 建立自訂網路 ACL。自訂網路 ACL 的初始規則會封鎖所有傳入與傳出流量。您的新自訂網路 ACL 預設不會與子網路建立關聯，但必須與子網路明確建立關聯。

**透過主控台建立網路 ACL**

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

1. 在導覽窗格中，選擇 **Network ACLs (網路 ACL)**。

1. 選擇**建立網路 ACL**。

1. (選用) 在**名稱**欄位中，輸入網路 VPC 的名稱。

1. 在 **VPC** 欄位中選取 VPC。

1. (選用) 在**標籤**欄位中選擇**新增標籤**，然後輸入標籤索引鍵與標籤值。

1. 選擇**建立網路 ACL**。

**透過命令列建立網路 ACL**
+ [create-network-acl](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-acl.html) (AWS CLI)
+ [New-EC2NetworkAcl](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkAcl.html) (AWS Tools for Windows PowerShell)

## 步驟 2：新增規則
<a name="Rules"></a>

您可以新增允許或拒絕傳入或傳出流量的規則。

我們會從最小的編號開始，按照順序來處理規則。建議您在規則編號之間保留間隔 (例如 100、200、300)，而不是使用連續編號 (101、102、103)。這麼做可讓您更輕鬆地新增規則，而不需要重新編號現有的規則。

如果您使用的是 Amazon EC2 API 或命令列工具，則無法修改規則。您只能新增和刪除規則。如果您使用的是 Amazon VPC 主控台，則可以修改現有規則的項目。主控台會移除現有的規則，並為您新增規則。如果您需要變更 ACL 中的規則順序，您必須使用新的規則編號來新增規則，然後刪除原始規則。

**透過主控台將規則新增至網路 ACL**

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

1. 在導覽窗格中，選擇 **Network ACLs (網路 ACL)**。

1. 選擇網路 ACL。

1. 若要新增傳入規則，請執行下列動作：

   1. 選擇 **Inbound Rules** (傳入規則) 索引標籤。

   1. 依次選擇**編輯傳入規則**、**新增規則**。

   1. 輸入尚未使用的規則編號、類型、通訊協定、連接埠範圍、來源，以及是否允許或拒絕流量。對於某些類型，我們會為您填寫通訊協定與連接埠。如果系統提示您輸入連接埠範圍，請輸入連接埠編號或連接埠範圍 (例如 49152-65535)。

      若要使用未列出的通訊協定，請選擇**自訂通訊協定**類型，然後選取通訊協定。如需詳細資訊，請參閱 [IANA 通訊協定編號](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)。

   1. 選擇**儲存變更**。

1. 若要新增傳出規則，請執行下列動作：

   1. 選擇 **Outbound rules** (傳出規則) 索引標籤。

   1. 依次選擇**編輯傳出規則**、**新增規則**。

   1. 輸入尚未使用的規則編號、類型、通訊協定、連接埠範圍、來源，以及是否允許或拒絕流量。對於某些類型，我們會為您填寫通訊協定與連接埠。如果系統提示您輸入連接埠範圍，請輸入連接埠編號或連接埠範圍 (例如 49152-65535)。

      若要使用未列出的通訊協定，請選擇**自訂通訊協定**類型，然後選取通訊協定。如需詳細資訊，請參閱 [IANA 通訊協定編號](http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml)。

   1. 選擇**儲存變更**。

**透過命令列將規則新增至網路 ACL**
+ [create-network-acl-entry](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-network-acl-entry.html) (AWS CLI)
+ [New-EC2NetworkAclEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2NetworkAclEntry.html) (AWS Tools for Windows PowerShell)

**透過命令列取代網路 ACL 中的規則**
+ [replace-network-acl-entry](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-network-acl-entry.html) (AWS CLI)
+ [Set-EC2NetworkAclEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2NetworkAclEntry.html) (AWS Tools for Windows PowerShell)

**透過命令列刪除網路 ACL 中的規則**
+ [delete-network-acl-entry](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-network-acl-entry.html) (AWS CLI)
+ [Remove-EC2NetworkAclEntry](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2NetworkAclEntry.html) (AWS Tools for Windows PowerShell)

## 步驟 3：將子網路與網路 ACL 建立關聯
<a name="NetworkACL"></a>

若要將網路 ACL 的規則套用至特定子網路，您必須將子網路與網路 ACL 建立關聯。您可以將網路 ACL 與多個子網路建立關聯。不過，一個子網路只能與一個網路 ACL 相關聯。根據預設，如果有任何未與特定 ACL 相關聯的子網路，系統會將其與預設網路 ACL 建立關聯。

**將子網路與網路 ACL 建立關聯**

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

1. 在導覽窗格中，選擇 **Network ACLs (網路 ACL)**，然後選取網路 ACL。

1. 在詳細資訊窗格中，在 **Subnet Associations (子網路關聯)** 標籤上，選擇 **Edit (編輯)**。選取子網路的 **Associate (關聯)** 核取方塊以與網路 ACL 建立關聯，然後選擇 **Save (儲存)**。

## (選用) 透過 Firewall Manager 管理網路 ACL
<a name="nacls-using-firewall-manager"></a>

AWS Firewall Manager 簡化跨多個帳戶和子網路的網路 ACL 管理和維護任務。您可以使用 Firewall Manager 來監控組織中的帳戶和子網路，並自動套用您定義的網路 ACL 組態。當您想要保護整個組織，或者您經常新增要從中央系統管理員帳戶自動保護的新子網路時，Firewall Manager 特別有用。

使用 Firewall Manager 網路 ACL 政策，您可以使用單一管理員帳戶來設定、監控和管理您想要在組織中使用的網路 ACL 中定義的最小規則集。您可以指定組織中哪些帳戶和子網路在 Firewall Manager 政策的範圍內。Firewall Manager 會報告範圍內子網路的網路 ACL 合規狀態，而且您可以設定 Firewall Manager 來自動修復不合規的網路 ACL。

如需詳細資訊，請參閱《AWS Firewall Manager 開發人員指南》**中的下列資源：
+ [AWS Firewall Manager 先決條件](https://docs.aws.amazon.com/waf/latest/developerguide/fms-prereq.html)
+ [設定 AWS Firewall Manager 網路 ACL 政策](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-fms-network-acl.html)
+ [搭配 Firewall Manager 使用網路 ACL 政策](https://docs.aws.amazon.com/waf/latest/developerguide/network-acl-policies.html)

# 管理 VPC 的網路 ACL 關聯
<a name="network-acl-associations"></a>

每個子網路皆與一個網路 ACL 相關聯。您首次建立子網路時，它就會與 VPC 的預設網路 ACL 建立關聯。您可以建立自訂網路 ACL，並將其與一或多個子網路建立關聯，取代先前的網路 ACL 關聯。

**Topics**
+ [描述網路 ACL 關聯](#describe-network-acl-association)
+ [變更與網路 ACL 相關聯的子網路](#DisassociateNetworkACL)
+ [變更與子網路相關聯的網路 ACL。](#ChangeNetworkACL)

## 描述網路 ACL 關聯
<a name="describe-network-acl-association"></a>

您可以描述與子網路相關聯的網路 ACL，也可以描述哪些子網路與網路 ACL 相關聯。

**透過主控台描述與子網路相關聯的網路 ACL**

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

1. 在導覽窗格中，選擇 **Subnets** (子網)。

1. 選擇子網路。

1. 選擇**網路 ACL** 索引標籤。

**使用 描述與子網路相關聯的網路 ACL AWS CLI**  
使用下列 [describe-network-acls](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-network-acls.html) 命令列出與指定子網路相關聯的網路 ACL。

```
aws ec2 describe-network-acls --filters Name=association.subnet-id,Values=subnet-0d2d1b81e0bc9c6d4 --query NetworkAcls[*].NetworkAclId
```

以下為範例輸出。

```
[
    "acl-03701d1f82d8c3fd6"
]
```

**透過主控台描述與網路 ACL 相關聯的子網路**

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

1. 在導覽窗格中，選擇 **Network ACLs (網路 ACL)**。

1. 選擇網路 ACL。

1. 選取**子網路關聯**索引標籤。

**使用 描述與網路 ACL 相關聯的子網路 AWS CLI**  
使用下列 [describe-network-acls](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-network-acls.html) 命令列出與指定網路 ACL 相關聯的子網路。

```
aws ec2 describe-network-acls --network-acl-ids acl-060415a18fcc9afde --query NetworkAcls[*].Associations[].SubnetId
```

以下為範例輸出。

```
[
    "subnet-0d2d1b81e0bc9c6d4",
    "subnet-0e990c67809773b19",
    "subnet-0eb17d85f5dfd33b1",
    "subnet-0e01d500780bb7468"
]
```

## 變更與網路 ACL 相關聯的子網路
<a name="DisassociateNetworkACL"></a>

您可以取消自訂網路 ACL 與子網路的關聯。您取消子網路與自訂網路 ACL 的關聯後，我們會自動將其與 VPC 的預設網路 ACL 建立關聯。這些變更在很短時間後便會生效。

**將子網路與網路 ACL 建立關聯**

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

1. 在導覽窗格中，選擇 **Network ACLs (網路 ACL)**。

1. 選擇網路 ACL。

1. 依次選擇**動作**、**編輯子網路關聯**。

1. 從**選取的子網路**中移除子網路。

1. 選擇**儲存變更**。

## 變更與子網路相關聯的網路 ACL。
<a name="ChangeNetworkACL"></a>

您可以變更與子網路相關聯的網路 ACL。例如，當您建立子網路時，它一開始就會與 VPC 的預設網路 ACL 建立關聯。如果建立自訂網路 ACL，可以將網路 ACL 與一個或多個子網路建立關聯來套用網路 ACL 規則。

變更子網路的網路 ACL 之後，變更在很短時間後便會生效。

**變更與子網路相關聯的網路 ACL**

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

1. 在導覽窗格中，選擇 **Subnets** (子網)。

1. 選擇子網路。

1. 依次選擇**動作**、**編輯網路 ACL 關聯**。

1. 在**網路 ACL ID** 欄位中，選取要與子網路建立關聯的網路 ACL，並檢閱所選網路 ACL 的傳入與傳出規則。

1. 選擇**儲存**。

**透過命令列取代網路 ACL 關聯**
+ [replace-network-acl-association](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-network-acl-association.html) (AWS CLI)
+ [Set-EC2NetworkAclAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2NetworkAclAssociation.html) (AWS Tools for Windows PowerShell)

# 刪除 VPC 的網路 ACL
<a name="delete-network-acl"></a>

網路 ACL 結束使用後即可予以刪除。不能刪除與子網路相關聯的網路 ACL。您無法刪除預設網路 ACL。

**透過主控台從網路 ACL 移除子網路關聯**

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

1. 在導覽窗格中，選擇 **Network ACLs (網路 ACL)**。**關聯對象**資料欄會指出與每個網路 ACL 相關聯的子網路數量。如果沒有相關聯的子網路，則此資料欄為 `-`。

1. 選擇網路 ACL。

1. 依次選擇**動作**、**編輯子網路關聯**。

1. 移除子網路關聯。

1. 選擇**儲存變更**。

**透過命令列描述您的網路 ACL (包括關聯)**
+ [describe-network-acls](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-network-acls.html) (AWS CLI)
+ [Get-EC2NetworkAcl](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2NetworkAcl.html) (AWS Tools for Windows PowerShell)

**透過命令列取代網路 ACL 關聯**
+ [replace-network-acl-association](https://docs.aws.amazon.com/cli/latest/reference/ec2/replace-network-acl-association.html) (AWS CLI)
+ [Set-EC2NetworkAclAssociation](https://docs.aws.amazon.com/powershell/latest/reference/items/Set-EC2NetworkAclAssociation.html) (AWS Tools for Windows PowerShell)

**透過主控台刪除網路 ACL**

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

1. 在導覽窗格中，選擇 **Network ACLs (網路 ACL)**。

1. 選擇網路 ACL。

1. 依次選擇**動作**、**刪除網路 ACL**。

1. 出現確認提示時，請輸入 **delete**，然後選擇 **Delete** (刪除)。

**透過命令列刪除網路 ACL**
+ [delete-network-acl](https://docs.aws.amazon.com/cli/latest/reference/ec2/delete-network-acl.html) (AWS CLI)
+ [Remove-EC2NetworkAcl](https://docs.aws.amazon.com/powershell/latest/reference/items/Remove-EC2NetworkAcl.html) (AWS Tools for Windows PowerShell)

# 範例：控制對子網路中執行個體的存取
<a name="nacl-examples"></a>

在此範例中，子網路中的執行個體可以彼此通訊，並可從信任的遠端電腦存取，以執行管理任務。遠端電腦可能是區域網路中的電腦 (如圖中所示)，也可能是位於不同子網路或 VPC 中的執行個體。子網路的網路 ACL 規則和執行個體的安全群組規則允許來自遠端電腦 IP 位址的存取。其他所有來自網際網路或其他網路的流量都會遭拒。

![\[使用安全群組和 NACL\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/nacl-example-diagram.png)


使用網路 ACL，可讓您彈性變更執行個體的安全群組或安全群組規則，並將網路 ACL 作為備份防禦層。例如，如果您不小心更新了安全群組，允許來自任何地方的傳入 SSH 存取，但網路 ACL 僅允許來自遠端電腦 IP 位址範圍的存取，則網路 ACL 會拒絕來自任何其他 IP 位址的傳入 SSH 流量。

## 網路 ACL 規則
<a name="nacl-examples-network-acl-rules"></a>

以下是與子網路關聯的網路 ACL 的傳入規則範例。這些規則會套用至子網路中的所有執行個體。


| 規則 \$1 | 類型 | 通訊協定 | 連接埠範圍 | 來源 | 允許/拒絕 | 說明 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 100 | SSH | TCP | 22 | 172.31.1.2/32 | 允許 | 允許來自遠端電腦的傳入流量。 | 
| \$1 | 所有流量 | 全部 | 全部 | 0.0.0.0/0 | 拒絕 | 拒絕所有其他傳入流量。 | 

以下是與子網路關聯的網路 ACL 的傳出規則範例。網路 ACL 無狀態。因此，您必須包含允許回應傳入流量的規則。


| 規則 \$1 | 類型 | 通訊協定 | 連接埠範圍 | 目的地 | 允許/拒絕 | 說明 | 
| --- | --- | --- | --- | --- | --- | --- | 
| 100 | 自訂 TCP | TCP | 1024-65535 | 172.31.1.2/32 | 允許 | 允許對遠端電腦的傳出回應。 | 
| \$1 | 所有流量 | 全部 | 全部 | 0.0.0.0/0 | 拒絕 | 拒絕所有其他傳出流量。 | 

## 安全群組規則
<a name="nacl-examples-security-group-rules"></a>

以下是與執行個體關聯的安全群組的傳入規則範例。這些規則適用於與安全群組相關聯的所有執行個體。如果使用者具有與執行個體相關聯的金鑰對的私有金鑰，則可以使用 SSH 從遠端電腦連線至執行個體。


| 通訊協定類型 | 通訊協定 | 連接埠範圍 | 來源 | 評論 | 
| --- | --- | --- | --- | --- | 
| 所有流量 | 全部 | 全部 | sg-1234567890abcdef0 | 允許與此安全群組相關聯之執行個體間的通訊。 | 
| SSH | TCP | 22 | 172.31.1.2/32 | 允許來自遠端電腦的傳入 SSH 存取。 | 

以下是與執行個體關聯的安全群組的傳出規則範例。安全群組具狀態。因此，您不需要允許回應傳入流量的規則。


| 通訊協定類型 | 通訊協定 | 連接埠範圍 | 目的地 | 評論 | 
| --- | --- | --- | --- | --- | 
| 所有流量 | 全部 | 全部 | sg-1234567890abcdef0 | 允許與此安全群組相關聯之執行個體間的通訊。 | 

## 網路 ACL 與安全群組之間的差異
<a name="compare-security-layers"></a>

下表總結了網路 ACL 與安全群組之間的基本差異。


| 特性 | 網路 ACL | 安全群組 | 
| --- | --- | --- | 
| 操作層級 | 子網路層級 | 執行個體層級 | 
| Scope (範圍) | 適用於關聯子網路中的所有執行個體 | 適用於與安全群組相關聯的所有執行個體 | 
| 規則類型 | 支援允許與拒絕規則 | 僅支援允許規則 | 
| 規則評估 | 以遞增順序評估規則，直至找到流量的相符項為止 | 在決定是否允許流量前，先評估所有規則 | 
| 傳回流量 | 必須明確允許 (無狀態) | 自動允許 (具狀態) | 

# Amazon Virtual Private Cloud 的恢復能力
<a name="disaster-recovery-resiliency"></a>

 AWS 全球基礎設施是以 AWS 區域 和 可用區域為基礎建置。 AWS 區域 提供多個實體隔離和隔離的可用區域，這些可用區域使用低延遲、高輸送量和高備援聯網進行連接。透過可用區域，您可以設計與操作的應用程式和資料庫，在可用區域之間自動容錯移轉而不會發生中斷。可用區域的可用性、容錯能力和擴展能力，均較單一或多個資料中心的傳統基礎設施還高。

AWS 區域 是主要建置區塊，每個區塊代表不同的地理位置，其中包含多個實體分隔和隔離的可用區域。這些可用區域是透過低延遲、高輸送量和高備援網路連線結構來連接，因此可在它們之間進行無縫通訊和資料傳輸。

可用區域的架構是關鍵差異因素，因為它們的設計比傳統的單一或多個資料中心設定更強大且容錯能力更高。透過將資源分散到區域內的多個可用區域，應用程式和資料庫可以設計成在區域之間自動容錯移轉，而不會中斷服務。此備援和高可用性層級是關鍵任務工作負載的關鍵需求，可讓組織建置彈性的雲端原生解決方案。

此外， AWS 基礎設施的擴展和全球觸角讓客戶能夠更接近最終使用者部署其應用程式，從而減少延遲並改善整體使用者體驗。全球多個區域的可用性也允許有效的資料主權和合規，因為客戶可以在其特定法規和業務需求所需的地理範圍內存放和處理資料。

透過利用 AWS 全球基礎設施，組織可以將其雲端環境建構為高可用性、容錯能力和可擴展性，並靈活地適應不斷變化的需求和不斷變化的業務需求。此穩固的基礎是成功實作現代雲端型應用程式和服務的關鍵推動因素。

如需 AWS 區域 和可用區域的詳細資訊，請參閱 [AWS 全球基礎設施](https://aws.amazon.com/about-aws/global-infrastructure/)。

您可以設定 VPC 以符合工作負載的彈性需求。如需詳細資訊，請參閱下列內容：
+ [了解彈性模式和權衡 ](https://aws.amazon.com/blogs/architecture/understand-resiliency-patterns-and-trade-offs-to-architect-efficiently-in-the-cloud/)(AWS 架構部落格）
+ [規劃您的網路拓撲 ](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/plan-your-network-topology.html)(AWS Well-Architected Framework)
+ [Amazon Virtual Private Cloud Connectivity Options](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html) (AWS 白皮書）

# Amazon Virtual Private Cloud 的合規驗證
<a name="VPC-compliance"></a>

若要了解 是否 AWS 服務 在特定合規計劃範圍內，請參閱[AWS 服務 合規計劃範圍內](https://aws.amazon.com/compliance/services-in-scope/)然後選擇您感興趣的合規計劃。如需一般資訊，請參閱[AWS 合規計劃](https://aws.amazon.com/compliance/programs/)。

您可以使用 下載第三方稽核報告 AWS Artifact。如需詳細資訊，請參閱[在 中下載報告 AWS Artifact](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html)。

您使用 時的合規責任 AWS 服務 取決於資料的機密性、您公司的合規目標，以及適用的法律和法規。如需使用 時合規責任的詳細資訊 AWS 服務，請參閱 [AWS 安全文件](https://docs.aws.amazon.com/security/)。

# 封鎖對 VPC 和子網路的公開存取
<a name="security-vpc-bpa"></a>

VPC Block Public Access (BPA) 是一種集中式安全功能，可讓您以授權形式防止公開網際網路存取整個 AWS 帳戶的 VPC 資源，確保符合安全要求，同時為特定例外狀況和稽核功能提供靈活性。

VPC BPA 功能具有下列模式：
+ **雙向**：此區域中往返網際網路閘道和僅輸出網際網路閘道 (排除 VPC 和子網路除外) 的所有流量都會遭到封鎖。
+ **僅輸入**：此區域中 VPC 的所有網際網路流量 (排除 VPC 或子網路除外) 都會遭到封鎖。僅允許進出 NAT 閘道和僅輸出網際網路閘道的流量，因為這些閘道僅允許建立傳出連線。

您也可以針對您不想封鎖的流量，為此功能建立「排除」。排除項目是可套用至單一 VPC 或子網路的模式，其會將其從帳戶的 VPC BPA 模式排除，並允許雙向或僅限輸出存取。

排除項目可以有下列其中一種模式：
+ **雙向**：允許進出排除 VPC 和子網路的所有網際網路流量。
+ **僅輸出**：允許來自排除 VPC 和子網路的傳出網際網路流量。已封鎖對排除 VPC 和子網路的傳入網際網路流量。這僅適用於 VPC BPA 設定為雙向時。

**Topics**
+ [VPC BPA 基礎知識](security-vpc-bpa-basics.md)
+ [評估 VPC BPA 的影響並監控 VPC BPA](security-vpc-bpa-assess-impact-main.md)
+ [進階範例](security-vpc-bpa-example.md)

# VPC BPA 基礎知識
<a name="security-vpc-bpa-basics"></a>

本節涵蓋 VPC BPA 的重要詳細資訊，包括哪些服務支援它，以及如何使用它。

**Topics**
+ [區域可用性](#security-vpc-bpa-reg-avail)
+ [AWS 服務影響和支援](#security-vpc-bpa-service-support)
+ [VPC BPA 的限制](#security-vpc-bpa-limits)
+ [使用 IAM 政策控制對 VPC BPA 的存取](#security-vpc-bpa-iam-example)
+ [為您的帳戶啟用 VPC BPA 雙向模式](#security-vpc-bpa-enable-bidir)
+ [將 VPC BPA 模式變更為僅輸入](#security-vpc-bpa-ingress-only)
+ [建立和刪除排除項目](#security-vpc-bpa-exclusions)
+ [在組織層級啟用 VPC BPA](#security-vpc-bpa-exclusions-orgs)

## 區域可用性
<a name="security-vpc-bpa-reg-avail"></a>

VPC BPA 適用於所有商業 [AWS 區域](https://aws.amazon.com//about-aws/global-infrastructure/regions_az/)，包括 GovCloud 和中國區域。

在本指南中，您還可以找到有關將網路存取分析器和 Reachability Analyzer 與 VPC BPA 搭配使用的資訊。請注意，並非所有商業區域都提供網路存取分析器和 Reachability Analyzer。如需有關網路存取分析器和 Reachability Analyzer 區域可用性的資訊，請參閱*《網路存取分析器指南》*中的[限制](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/how-network-access-analyzer-works.html#analyzer-limitations)和*《Reachability Analyzer 指南》*中的[考量](https://docs.aws.amazon.com/vpc/latest/reachability/how-reachability-analyzer-works.html#considerations)。

## AWS 服務影響和支援
<a name="security-vpc-bpa-service-support"></a>

下列資源和服務支援 VPC BPA，而這些服務和資源的流量會受到 VPC BPA 的影響：
+ **網際網路閘道**：會封鎖所有傳入和傳出流量。
+ **僅輸出網際網路閘道**：封鎖所有傳出流量。僅輸出網際網路閘道不允許傳入流量。
+ **Gateway Load Balancer (GWLB)**：即使排除包含 GWLB 端點的子網路，也會封鎖所有傳入與傳出流量。
+ **NAT 閘道**：會封鎖所有傳入和傳出流量。NAT 閘道需要網際網路閘道才能進行網際網路連線。
+ **面向網際網路的 Network Load Balancer**：會封鎖所有傳入和傳出流量。面向網際網路的 Network Load Balancer 需要網際網路閘道才能進行網際網路連線。
+ **面向網際網路的 Application Load Balancer**：會封鎖所有傳入和傳出流量。面向網際網路的 Application Load Balancer 需要網際網路閘道才能進行網際網路連線。
+ **Amazon CloudFront VPC 來源**：所有傳入與傳出流量都會遭到封鎖。
+ **Direct Connect**：使用公有虛擬介面 (公有 IPv4 位址或全域單播 IPv6 位址) 的所有傳入與傳出流量都會遭到封鎖。此流量會使用網際網路閘道 (或僅限輸出網際網路閘道) 進行連線。
+ **AWS Global Accelerator**：無論目標是否可從網際網路存取，都會封鎖傳入 VPCs 的流量。
+ **AWS Network Firewall**：即使排除包含防火牆端點的子網路，也會封鎖所有傳入與傳出流量。
+ **AWS Wavelength 電信業者閘道**：所有傳入和傳出流量都會遭到封鎖。

VPC BPA 不會封鎖或影響與私有連線相關的流量，例如下列服務和資源的流量：
+ AWS Client VPN
+ AWS CloudWAN
+ AWS Outposts 本機閘道
+ AWS Site-to-Site VPN
+ Transit Gateway
+ AWS Verified Access

  

**重要**  
如果您要透過子網路中 EC2 執行個體上執行的設備 (例如第三方安全或監控工具) 路由傳入與傳出流量，則使用 VPC BPA 時，該子網路需要設定為排除項目，以確保流量能順利進出。將流量傳送至設備子網路而非網際網路閘道的其他子網路，不需要新增為排除項目。
即使 VPC BPA 未透過 VPC 中的網際網路閘道開啟，也允許從 VPC 中的資源私下傳送至 VPC 中執行之其他服務的流量，例如 Route 53 Resolver。這些服務可能會代表您向 VPC 外部的資源提出請求，例如，為了解決 DNS 查詢，如果未透過其他安全控制緩解，則可能會公開 VPC 內資源活動的相關資訊。

## VPC BPA 的限制
<a name="security-vpc-bpa-limits"></a>

不允許 NAT 閘道和僅輸出網際網路閘道的 Local Zones (LZ) 不支援 VPC BPA 僅輸入模式。

## 使用 IAM 政策控制對 VPC BPA 的存取
<a name="security-vpc-bpa-iam-example"></a>

如需允許/拒絕存取 VPC BPA 功能的 IAM 政策範例，請參閱 [封鎖對 VPC 和子網路的公開存取](vpc-policy-examples.md#vpc-bpa-example-iam)。

## 為您的帳戶啟用 VPC BPA 雙向模式
<a name="security-vpc-bpa-enable-bidir"></a>

VPC BPA 雙向模式會封鎖此區域中往返網際網路閘道和僅輸出網際網路閘道的所有流量 (排除 VPC 和子網路除外)。如需排除的更多相關資訊，請參閱[建立和刪除排除項目](#security-vpc-bpa-exclusions)。

**重要**  
強烈建議您在生產帳戶中啟用 VPC BPA 之前，先徹底檢閱需要網際網路存取的工作負載。

**注意**  
若要在帳戶中的 VPC 和子網路上啟用 VPC BPA，您必須擁有 VPC 和子網路。
如果您目前與其他帳戶共用 VPC 子網路，子網路擁有者強制執行的 VPC BPA 模式也適用於參與者流量，但參與者無法控制影響共用子網路的 VPC BPA 設定。

------
#### [ AWS 管理主控台 ]

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

1. 在左側的導覽窗格中，選擇**設定**。

1. 選擇**編輯公開存取設定**。

1. 選擇**開啟「封鎖公開存取」**和**雙向**，然後選擇**儲存變更**。

1. 等待**狀態**變更為**開啟**。VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

VPC BPA 雙向模式現已開啟。

------
#### [ AWS CLI ]

1. 開啟 VPC BPA：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional
   ```

   VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

1. 檢視 VPC BPA 的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-options
   ```

------

## 將 VPC BPA 模式變更為僅輸入
<a name="security-vpc-bpa-ingress-only"></a>

VPC BPA 僅輸入模式會封鎖此區域中 VPC 的所有網際網路流量 (排除 VPC 或子網路除外)。僅允許進出 NAT 閘道和僅輸出網際網路閘道的流量，因為這些閘道僅允許建立傳出連線。

------
#### [ AWS 管理主控台 ]

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

1. 在左側的導覽窗格中，選擇**設定**。

1. 選擇**編輯公開存取設定**。

1. 將方向變更為**僅限輸入**。

1. 儲存變更並等待狀態更新。VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

------
#### [ AWS CLI ]

1. 修改 VPC BPA 區塊方向：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-ingress
   ```

   VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

1. 檢視 VPC BPA 的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-options
   ```

------

## 建立和刪除排除項目
<a name="security-vpc-bpa-exclusions"></a>

VPC BPA 排除項目是可套用至單一 VPC 或子網路的模式，其會將其從帳戶的 VPC BPA 模式排除，並允許雙向或僅限輸出存取。即使帳戶未啟用 VPC BPA，您也可以為 VPC 和子網路建立 VPC BPA 排除項目，以確保在開啟 VPC BPA 時，排除項目不會發生流量中斷。VPC 的排除會自動套用至 VPC 中的所有子網路。

您最多可以建立 50 個排除。如需有關請求提高限制的資訊，請參閱 [Amazon VPC 配額](amazon-vpc-limits.md) 中*每個帳戶的 VPC BPA 排除*。

------
#### [ AWS 管理主控台 ]

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

1. 在左側的導覽窗格中，選擇**設定**。

1. 在**封鎖公開存取**索引標籤的**排除項目**下，執行下列其中一項動作：
   + 若要刪除排除項目，請選取排除項目，然後選擇**動作** > **刪除排除項目**。
   + 若要建立排除項目，請選擇**建立排除項目**並繼續後續步驟。

1. 選擇區塊方向：
   + **雙向**：允許所有往返排除 VPC 和子網路的網際網路流量。
   + **僅輸出**：允許來自排除 VPC 和子網路的傳出網際網路流量。封鎖對排除 VPC 和子網路的傳入網際網路流量。當 VPC BPA 設定為**雙向**時，此設定適用。

1. 選擇 VPC 或子網路。

1. 選擇**建立排除**。

1. 等待**排除狀態**變更為**作用中**。您可能需要重新整理排除資料表才能查看變更。

已建立排除。

------
#### [ AWS CLI ]

1. 修改排除允許方向：

   ```
   aws ec2 --region us-east-2 create-vpc-block-public-access-exclusion --subnet-id subnet-id --internet-gateway-exclusion-mode allow-bidirectional
   ```

1. 可能需要一些時間才能更新排除狀態。檢視排除的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-exclusions --exclusion-ids exclusion-id
   ```

------

## 在組織層級啟用 VPC BPA
<a name="security-vpc-bpa-exclusions-orgs"></a>

如果您使用 AWS Organizations 來管理組織中的帳戶，則可以使用 [AWS Organizations 宣告政策](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_declarative.html)在組織中的帳戶強制執行 VPC BPA。如需 VPC BPA 宣告政策的詳細資訊，請參閱*《AWS Organizations 使用者指南》*中的[支援宣告政策](https://docs.aws.amazon.com//organizations/latest/userguide/orgs_manage_policies_declarative_syntax.html#declarative-policy-vpc-block-public-access)。

**注意**  
您可以使用 VPC BPA 宣告政策來設定是否允許排除，但無法使用政策建立排除。若要建立排除，您仍然必須在擁有 VPC 的帳戶中建立排除。如需有關建立 VPC BPA 排除的詳細資訊，請參閱[建立和刪除排除項目](#security-vpc-bpa-exclusions)。
如果已啟用 VPC BPA 宣告政策，則在**封鎖公開存取**設定中，您會看到**依宣告政策管理**，而且您將無法在帳戶層級修改 VPC BPA 設定。

# 評估 VPC BPA 的影響並監控 VPC BPA
<a name="security-vpc-bpa-assess-impact-main"></a>

本節包含有關您可以在開啟 VPC BPA 之前評估其影響的資訊，以及如何在開啟流量之後監控流量是否遭到封鎖的資訊。

**Topics**
+ [使用網路存取分析器評估 VPC BPA 的影響](#security-vpc-bpa-assess-impact)
+ [使用流量日誌監控 VPC BPA 影響](#security-vpc-bpa-fl)
+ [使用 CloudTrail 追蹤排除刪除](#security-vpc-bpa-cloudtrail)
+ [使用 Reachability Analyzer 確認連線已封鎖](#security-vpc-bpa-verify-RA)

## 使用網路存取分析器評估 VPC BPA 的影響
<a name="security-vpc-bpa-assess-impact"></a>

在本節中，您將使用網路存取分析器檢視帳戶中使用網際網路閘道的資源，*然後再*啟用 VPC BPA 和封鎖存取。使用此分析來了解在帳戶中開啟 VPC BPA 並封鎖流量的影響。

**注意**  
網路存取分析器不支援 IPv6；因此您將無法使用它來檢視 VPC BPA 對僅限輸出網際網路閘道傳出 IPv6 流量的潛在影響。
您需要為使用網路存取分析器執行的分析付費。如需詳細資訊，請參閱《網路存取分析器指南》**中的[定價](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/what-is-network-access-analyzer.html#pricing)。
如需有關網路存取分析器區域可用性的資訊，請參閱*《網路存取分析器指南》*中的[限制](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/how-network-access-analyzer-works.html#analyzer-limitations)。

------
#### [ AWS 管理主控台 ]

1. 在 開啟 AWS Network Insights 主控台[https://console.aws.amazon.com/networkinsights/](https://console.aws.amazon.com/networkinsights/)。

1. 選擇**網路存取分析器**。

1. 選擇**建立網路存取範圍**。

1. 選擇**評估 VPC 封鎖公開存取的影響**，然後選擇**下一步**。

1. 範本已設定為分析您帳戶中網際網路閘道的往返流量。您可以在**來源**和**目的地**下檢視。

1. 選擇**下一步**。

1. 選擇**建立網路存取範圍**。

1. 選擇您剛建立的範圍，然後選擇**分析**。

1. 等候分析完成。

1. 檢視分析的調查結果。**調查結果**下的每一列都顯示了封包在網路中往返於您帳戶中的網際網路閘道的網路路徑。在此情況下，如果您開啟 VPC BPA，且這些調查結果中出現的任何 VPC 和/或子網路都未設定為 VPC BPA 排除項目，則流向這些 VPC 和子網路的流量將受到限制。

1. 分析每個調查結果，了解 VPC BPA 對您 VPC 資源的影響。

影響分析已完成。

------
#### [ AWS CLI ]

1. 建立網路存取範圍：

   ```
   aws ec2 create-network-insights-access-scope --region us-east-2 --match-paths "Source={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" "Destination={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}"
   ```

1. 開始範圍分析：

   ```
   aws ec2 start-network-insights-access-scope-analysis  --region us-east-2 --network-insights-access-scope-id nis-id
   ```

1. 取得分析的結果：

   ```
   aws ec2 get-network-insights-access-scope-analysis-findings  --region us-east-2 --network-insights-access-scope-analysis-id nisa-0aa383a1938f94cd1 --max-items 1
   ```

   結果會顯示您帳戶中所有 VPC 中往返網際網路閘道的流量。結果會組織為「調查結果」。"FindingId": "AnalysisFinding-1" 表示這是分析中的第一個調查結果。請注意，有多個調查結果，每個調查結果都表示流量流程會因為開啟 VPC BPA 而受到影響。第一個調查結果會顯示從網際網路閘道 ("SequenceNumber": 1) 開始的流量，傳遞至 NACL ("SequenceNumber": 2) 給安全群組 ("SequenceNumber"： 3)，並在執行個體 ("SequenceNumber": 4) 結束。

1. 分析調查結果，了解 VPC BPA 對 VPC 資源的影響。

影響分析已完成。

------

## 使用流量日誌監控 VPC BPA 影響
<a name="security-vpc-bpa-fl"></a>

VPC 流程日誌是一項可讓您擷取傳入及傳出您 VPC 中彈性網路介面之 IP 流量相關資訊的功能。您可以使用此功能來監控 VPC BPA 封鎖到達執行個體網路介面的流量。

使用 [使用流量日誌工作](working-with-flow-logs.md) 中的步驟為您的 VPC 建立流程日誌。

當您建立流程日誌時，請務必使用包含欄位 `reject-reason` 的自訂格式。

當您檢視流量日誌時，如果流向 ENI 的流量因 VPC BPA 而遭到拒絕，您會在流量日誌項目中看到 `BPA` 的 `reject-reason`。

除了 VPC 流程日誌的標準[限制](flow-logs-limitations.md)之外，請注意 VPC BPA 特有的下列限制：
+ VPC BPA 的流量日誌不包含[跳過的記錄](flow-logs-records-examples.md#flow-log-example-no-data)。
+ 即使您在流量日誌中包含 `bytes` 欄位，VPC BPA 的流量日誌也不會包含 [`bytes`](flow-log-records.md#flow-logs-fields)。

## 使用 CloudTrail 追蹤排除刪除
<a name="security-vpc-bpa-cloudtrail"></a>

本節說明如何使用 AWS CloudTrail 來監控和追蹤 VPC BPA 排除的刪除。

------
#### [ AWS 管理主控台 ]

您可以在透過 [https://console.aws.amazon.com/cloudtrailv2/](https://console.aws.amazon.com/cloudtrailv2/) 存取 AWS CloudTrail 主控台，在其中查詢**資源類型** > `AWS::EC2::VPCBlockPublicAccessExclusion`，以檢視 **CloudTrail 事件歷史記錄**中任何已刪除的排除。

------
#### [ AWS CLI ]

您可以使用 `lookup-events` 命令來檢視與刪除排除項目相關的事件：

```
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::VPCBlockPublicAccessExclusion
```

------

## 使用 Reachability Analyzer 確認連線已封鎖
<a name="security-vpc-bpa-verify-RA"></a>

[VPC Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 可用來評估是否可以根據您的網路組態達到特定網路路徑，包括 VPC BPA 設定。

如需 Reachability Analyzer 區域可用性的相關資訊，請參閱*《Reachability Analyzer 指南》*中的[考量](https://docs.aws.amazon.com/vpc/latest/reachability/how-reachability-analyzer-works.html#considerations)。

------
#### [ AWS 管理主控台 ]

1. 在 開啟 AWS Network Insights 主控台[https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer](https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer)。

1. 按一下**建立並分析路徑**。

1. 針對**來源類型**，選擇**網際網路閘道**，然後從**來源**下拉式清單中選擇您要封鎖流量的網際網路閘道。

1. 針對**目的地類型**，選擇**執行個體**，然後從**目的地**下拉式清單中選擇您要封鎖流量的執行個體。

1. 按一下**建立並分析路徑**。

1. 等候分析完成。這可能需要幾分鐘的時間。

1. 完成後，您應該會看到**連線性狀態**為**無法連線**，而且**路徑詳細資訊**顯示 `VPC_BLOCK_PUBLIC_ACCESS_ENABLED ` 是造成此連線能力問題的原因。

------
#### [ AWS CLI ]

1. 使用您要封鎖來自 (來源) 的流量的網際網路閘道 ID 和您要封鎖流向 (目的地) 執行個體的 ID 建立網路路徑：

   ```
   aws ec2 --region us-east-2 create-network-insights-path --source igw-id --destination instance-id --protocol TCP
   ```

1. 在網路路徑上開始分析：

   ```
   aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
   ```

1. 檢索分析的結果：

   ```
   aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
   ```

1. 確認 `VPC_BLOCK_PUBLIC_ACCESS_ENABLED` 為 `ExplanationCode`，無法連線。

------

# 進階範例
<a name="security-vpc-bpa-example"></a>

本節包含進階範例，可協助您了解 VPC 封鎖公開存取功能在不同案例中的運作方式。每個案例都會先建立案例，因此依序完成步驟非常重要。

**重要**  
請勿在生產帳戶中瀏覽此範例。強烈建議您在生產帳戶中啟用 VPC BPA 之前，先徹底檢閱需要網際網路存取的工作負載。

**注意**  
若要完全了解 VPC BPA 功能，您需要帳戶中的特定資源。在本節中，我們提供 CloudFormation 範本，您可以用來佈建所需的資源，以完全了解此功能的運作方式。您使用 CloudFormation 範本佈建的資源，以及您使用網路存取分析器和 Reachability Analyzer 執行的分析，會有相關的成本。如果您使用本節中的範本，請確定您在完成此範例時完成清除步驟。

**Topics**
+ [部署 CloudFormation 範本 (選用)](#security-vpc-bpa-example-deploy-cfn)
+ [使用網路存取分析器檢視 VPC BPA 的影響](#vpc-bpa-naa)
+ [案例 1 – 連線至未開啟 VPC BPA 的執行個體](#vpc-bpa-scenario-1-connect-scen1)
+ [案例 2 – 開啟 VPC BPA 雙向模式](#vpc-bpa-scenario-1-connect-scen2)
+ [案例 3 – 將 VPC BPA 變更為僅限輸入模式](#vpc-bpa-scenario-3)
+ [案例 4 – 建立排除](#vpc-bpa-scenario-4)
+ [案例 5 – 修改排除模式](#vpc-bpa-scenario-5)
+ [案例 6 – 修改 VPC BPA 模式](#vpc-bpa-scenario-6)
+ [清除](#vpc-bpa-scenario-cleanup)

## 部署 CloudFormation 範本 (選用)
<a name="security-vpc-bpa-example-deploy-cfn"></a>

若要示範此功能的運作方式，您需要 VPC、子網路、執行個體和其他資源。為了讓您更輕鬆地完成此示範，我們提供 CloudFormation 範本，您可以使用此範本快速分割此示範中案例所需的資源。此步驟为選用，您可能只想檢視本節案例中的圖表。

**注意**  
與您在本節中建立的 CloudFormation 範本資源相關聯的成本，例如 NAT 閘道和公有 IPv4 地址的成本。為了避免成本過高，請確定您完成清除步驟，以移除為本範例所建立的所有資源。
此 CloudFormation 範本會建立 VPC BPA 所需的基礎資源，但不會啟用 VPC BPA 功能本身。此處部署的資源旨在協助您在選擇單獨啟用 VPC BPA 功能之後，了解與測試該功能。

範本會在您的帳戶中建立下列資源：
+ 出口限定網際網路閘道
+ 網際網路閘道
+ NAT 閘道
+ 兩個公有子網路
+ 一個私有子網路
+ 兩個具有公有及私有 IPv4 地址的 EC2 執行個體
+ 一個具有 IPv6 地址和私有 IPv4 地址的 EC2 執行個體
+ 一個僅具有私有 IPv4 地址的 EC2 執行個體
+ 允許 SSH 和 ICMP 傳入流量以及允許所有傳出流量的安全群組
+ VPC 流程日誌
+ 子網路 B 中的一個 EC2 執行個體連線端點

複製下面的範本，並將其儲存至 .yaml 檔案。

```
AWSTemplateFormatVersion: '2010-09-09'
Description: Creates a VPC with public and private subnets, NAT gateway, and EC2 instances for VPC BPA.

Parameters:
  InstanceAMI:
    Description: ID of the Amazone Machine Image (AMI) to use with the instances launched by this template
    Type: AWS::EC2::Image::Id
  InstanceType:
    Description: EC2 Instance type to use with the instances launched by this template
    Type: String
    Default: t2.micro
 
Resources:

  # VPC
  VPCBPA:
    Type: AWS::EC2::VPC
    Properties:
      CidrBlock: 10.0.0.0/16
      EnableDnsHostnames: true
      EnableDnsSupport: true
      InstanceTenancy: default
      Tags:
        - Key: Name
          Value: VPC BPA

  # VPC IPv6 CIDR
  VPCBPAIpv6CidrBlock:
    Type: AWS::EC2::VPCCidrBlock
    Properties:
      VpcId: !Ref VPCBPA
      AmazonProvidedIpv6CidrBlock: true

  # EC2 Key Pair
  VPCBPAKeyPair:
    Type: AWS::EC2::KeyPair
    Properties:
      KeyName: vpc-bpa-key

  # Internet Gateway  
  VPCBPAInternetGateway:
    Type: AWS::EC2::InternetGateway
    Properties:
      Tags:
        - Key: Name
          Value: VPC BPA Internet Gateway
    
  VPCBPAInternetGatewayAttachment:
    Type: AWS::EC2::VPCGatewayAttachment
    Properties:
      VpcId: !Ref VPCBPA
      InternetGatewayId: !Ref VPCBPAInternetGateway

  # Egress-Only Internet Gateway
  VPCBPAEgressOnlyInternetGateway:
    Type: AWS::EC2::EgressOnlyInternetGateway
    Properties:
      VpcId: !Ref VPCBPA

  # Subnets
  VPCBPAPublicSubnetA:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref VPCBPA
      CidrBlock: 10.0.1.0/24
      MapPublicIpOnLaunch: true
      Tags:
        - Key: Name
          Value: VPC BPA Public Subnet A
      
  VPCBPAPublicSubnetB:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref VPCBPA
      CidrBlock: 10.0.2.0/24
      MapPublicIpOnLaunch: true
      Tags:
        - Key: Name
          Value: VPC BPA Public Subnet B
      
  VPCBPAPrivateSubnetC:
    Type: AWS::EC2::Subnet
    Properties:
      VpcId: !Ref VPCBPA
      CidrBlock: 10.0.3.0/24
      MapPublicIpOnLaunch: false
      Ipv6CidrBlock: !Select [0, !GetAtt VPCBPA.Ipv6CidrBlocks]
      AssignIpv6AddressOnCreation: true
      Tags:
        - Key: Name
          Value: VPC BPA Private Subnet C

  # NAT Gateway
  VPCBPANATGateway:
    Type: AWS::EC2::NatGateway
    Properties:
      AllocationId: !GetAtt VPCBPANATGatewayEIP.AllocationId
      SubnetId: !Ref VPCBPAPublicSubnetB
      Tags:
        - Key: Name
          Value: VPC BPA NAT Gateway

  VPCBPANATGatewayEIP:
    Type: AWS::EC2::EIP
    Properties:
      Domain: vpc
      Tags:
        - Key: Name
          Value: VPC BPA NAT Gateway EIP

  # Route Tables
  VPCBPAPublicRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref VPCBPA
      Tags:
        - Key: Name
          Value: VPC BPA Public Route Table
      
  VPCBPAPublicRoute:
    Type: AWS::EC2::Route
    DependsOn: VPCBPAInternetGatewayAttachment
    Properties:
      RouteTableId: !Ref VPCBPAPublicRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      GatewayId: !Ref VPCBPAInternetGateway
      
  VPCBPAPublicSubnetARouteTableAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref VPCBPAPublicSubnetA
      RouteTableId: !Ref VPCBPAPublicRouteTable
      
  VPCBPAPublicSubnetBRouteTableAssoc:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref VPCBPAPublicSubnetB
      RouteTableId: !Ref VPCBPAPublicRouteTable
      
  VPCBPAPrivateRouteTable:
    Type: AWS::EC2::RouteTable
    Properties:
      VpcId: !Ref VPCBPA
      Tags:
        - Key: Name
          Value: VPC BPA Private Route Table
      
  VPCBPAPrivateRoute:
    Type: AWS::EC2::Route
    Properties:
      RouteTableId: !Ref VPCBPAPrivateRouteTable
      DestinationCidrBlock: 0.0.0.0/0
      NatGatewayId: !Ref VPCBPANATGateway
      
  VPCBPAPrivateSubnetCRoute:
    Type: AWS::EC2::Route
    Properties:
      RouteTableId: !Ref VPCBPAPrivateRouteTable
      DestinationIpv6CidrBlock: ::/0
      EgressOnlyInternetGatewayId: !Ref VPCBPAEgressOnlyInternetGateway
      
  VPCBPAPrivateSubnetCRouteTableAssociation:
    Type: AWS::EC2::SubnetRouteTableAssociation
    Properties:
      SubnetId: !Ref VPCBPAPrivateSubnetC
      RouteTableId: !Ref VPCBPAPrivateRouteTable

  # EC2 Instances Security Group
  VPCBPAInstancesSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: VPC BPA Instances Security Group
      GroupDescription: Allow SSH and ICMP access
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0
        - IpProtocol: icmp
          FromPort: -1
          ToPort: -1
          CidrIp: 0.0.0.0/0
      VpcId: !Ref VPCBPA
      Tags:
        - Key: Name
          Value: VPC BPA Instances Security Group

  # EC2 Instances
  VPCBPAInstanceA:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref InstanceAMI
      InstanceType: t2.micro
      KeyName: !Ref VPCBPAKeyPair
      SubnetId: !Ref VPCBPAPublicSubnetA
      SecurityGroupIds:
        - !Ref VPCBPAInstancesSecurityGroup
      Tags:
        - Key: Name
          Value: VPC BPA Instance A

  VPCBPAInstanceB:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref InstanceAMI
      InstanceType: !Ref InstanceType
      KeyName: !Ref VPCBPAKeyPair
      SubnetId: !Ref VPCBPAPublicSubnetB
      SecurityGroupIds:
        - !Ref VPCBPAInstancesSecurityGroup
      Tags:
        - Key: Name
          Value: VPC BPA Instance B

  VPCBPAInstanceC:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref InstanceAMI
      InstanceType: !Ref InstanceType
      KeyName: !Ref VPCBPAKeyPair
      SubnetId: !Ref VPCBPAPrivateSubnetC
      SecurityGroupIds:
        - !Ref VPCBPAInstancesSecurityGroup
      Tags:
        - Key: Name
          Value: VPC BPA Instance C

  VPCBPAInstanceD:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref InstanceAMI
      InstanceType: !Ref InstanceType
      KeyName: !Ref VPCBPAKeyPair
      NetworkInterfaces:
        - DeviceIndex: '0'
          GroupSet:
            - !Ref VPCBPAInstancesSecurityGroup
          SubnetId: !Ref VPCBPAPrivateSubnetC
          Ipv6AddressCount: 1
      Tags:
        - Key: Name
          Value: VPC BPA Instance D

  # Flow Logs IAM Role
  VPCBPAFlowLogRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: vpc-flow-logs.amazonaws.com
            Action: 'sts:AssumeRole'
      Tags:
        - Key: Name
          Value: VPC BPA Flow Logs Role
      
  VPCBPAFlowLogPolicy:
    Type: AWS::IAM::Policy
    Properties:
      PolicyName: VPC-BPA-FlowLogsPolicy
      PolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Action:
              - 'logs:CreateLogGroup'
              - 'logs:CreateLogStream'
              - 'logs:PutLogEvents'
              - 'logs:DescribeLogGroups'
              - 'logs:DescribeLogStreams'
            Resource: '*'
      Roles:
        - !Ref VPCBPAFlowLogRole

  # Flow Logs
  VPCBPAFlowLog:
    Type: AWS::EC2::FlowLog
    Properties:
      ResourceId: !Ref VPCBPA
      ResourceType: VPC
      TrafficType: ALL
      LogDestinationType: cloud-watch-logs
      LogGroupName: /aws/vpc-flow-logs/VPC-BPA
      DeliverLogsPermissionArn: !GetAtt VPCBPAFlowLogRole.Arn
      LogFormat: '${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status} ${vpc-id} ${subnet-id} ${instance-id} ${tcp-flags} ${type} ${pkt-srcaddr} ${pkt-dstaddr} ${region} ${az-id} ${sublocation-type} ${sublocation-id} ${pkt-src-aws-service} ${pkt-dst-aws-service} ${flow-direction} ${traffic-path} ${reject-reason}'
      Tags:
        - Key: Name
          Value: VPC BPA Flow Logs

  # EC2 Instance Connect Endpoint
  VPCBPAEC2InstanceConnectEndpoint:
    Type: AWS::EC2::InstanceConnectEndpoint
    Properties:
      SecurityGroupIds:
        - !Ref VPCBPAInstancesSecurityGroup
      SubnetId: !Ref VPCBPAPublicSubnetB

Outputs:
  VPCBPAVPCId:
    Description: A reference to the created VPC
    Value: !Ref VPCBPA
    Export:
      Name: vpc-id

  VPCBPAPublicSubnetAId:
    Description: The ID of the public subnet A
    Value: !Ref VPCBPAPublicSubnetA
    
  VPCBPAPublicSubnetAName:
    Description: The name of the public subnet A
    Value: VPC BPA Public Subnet A

  VPCBPAPublicSubnetBId:
    Description: The ID of the public subnet B
    Value: !Ref VPCBPAPublicSubnetB
    
  VPCBPAPublicSubnetBName:
    Description: The name of the public subnet B
    Value: VPC BPA Public Subnet B

  VPCBPAPrivateSubnetCId:
    Description: The ID of the private subnet C
    Value: !Ref VPCBPAPrivateSubnetC
    
  VPCBPAPrivateSubnetCName:
    Description: The name of the private subnet C
    Value: VPC BPA Private Subnet C

  VPCBPAInstanceAId:
    Description: The ID of instance A
    Value: !Ref VPCBPAInstanceA

  VPCBPAInstanceBId:
    Description: The ID of instance B
    Value: !Ref VPCBPAInstanceB

  VPCBPAInstanceCId:
    Description: The ID of instance C
    Value: !Ref VPCBPAInstanceC

  VPCBPAInstanceDId:
    Description: The ID of instance D
    Value: !Ref VPCBPAInstanceD
```

------
#### [ AWS 管理主控台 ]

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

1. 選擇**建立堆疊**並上傳 .yaml 範本檔案。

1. 完成啟動範本的步驟。您需要輸入[映像 ID](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html) 和[執行個體類型](https://aws.amazon.com/ec2/instance-types/) (例如 t2.micro)。您也需要允許 CloudFormation 為您建立 IAM 角色，以建立流量日誌，並取得登入 CloudWatch 的許可。

1. 啟動堆疊後，請檢視**事件**標籤以檢視進度，並確保完成堆疊後再繼續。

------
#### [ AWS CLI ]

1. 執行下列命令來建立 CloudFormation 堆疊：

   ```
   aws cloudformation create-stack --stack-name VPC-BPA-stack --template-body file://sampletemplate.yaml --capabilities CAPABILITY_IAM --region us-east-2
   ```

   輸出：

   ```
   {
       "StackId": "arn:aws:cloudformation:us-east-2:470889052923:stack/VPC-BPA-stack/8a7a2cc0-8001-11ef-b196-06386a84b72f"
   }
   ```

1. 檢視進度，並確保完成堆疊後再繼續：

   ```
   aws cloudformation describe-stack-events --stack-name VPC-BPA-stack --region us-east-2
   ```

------

## 使用網路存取分析器檢視 VPC BPA 的影響
<a name="vpc-bpa-naa"></a>

在本節中，您將使用網路存取分析器來檢視帳戶中使用網際網路閘道的資源。使用此分析來了解在帳戶中開啟 VPC BPA 並封鎖流量的影響。

如需有關網路存取分析器區域可用性的資訊，請參閱*《網路存取分析器指南》*中的[限制](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/how-network-access-analyzer-works.html#analyzer-limitations)。

------
#### [ AWS 管理主控台 ]

1. 在 開啟 AWS Network Insights 主控台[https://console.aws.amazon.com/networkinsights/](https://console.aws.amazon.com/networkinsights/)。

1. 選擇**網路存取分析器**。

1. 選擇**建立網路存取範圍**。

1. 選擇**評估 VPC 封鎖公開存取的影響**，然後選擇**下一步**。

1. 範本已設定為分析您帳戶中網際網路閘道的往返流量。您可以在**來源**和**目的地**下檢視。

1. 選擇**下一步**。

1. 選擇**建立網路存取範圍**。

1. 選擇您剛建立的範圍，然後選擇**分析**。

1. 等候分析完成。

1. 檢視分析的調查結果。**調查結果**下的每一列都顯示了封包在網路中往返於您帳戶中的網際網路閘道的網路路徑。在此情況下，如果您開啟 VPC BPA，且這些調查結果中出現的任何 VPC 和/或子網路都未設定為 VPC BPA 排除項目，則流向這些 VPC 和子網路的流量將受到限制。

1. 分析每個調查結果，了解 VPC BPA 對您 VPC 資源的影響。

影響分析已完成。

------
#### [ AWS CLI ]

1. 建立網路存取範圍：

   ```
   aws ec2 create-network-insights-access-scope --match-paths "Source={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" "Destination={ResourceStatement={ResourceTypes=["AWS::EC2::InternetGateway"]}}" --region us-east-2
   ```

   輸出：

   ```
   {
     "NetworkInsightsAccessScope": {
       "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e",
       "NetworkInsightsAccessScopeArn": "arn:aws:ec2:us-east-2:470889052923:network-insights-access-scope/nis-04cad3c4b3a1d5e3e",
       "CreatedDate": "2024-09-30T15:55:53.171000+00:00",
       "UpdatedDate": "2024-09-30T15:55:53.171000+00:00"
     },
     "NetworkInsightsAccessScopeContent": {
       "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e",
       "MatchPaths": [
         {
           "Source": {
             "ResourceStatement": {
               "ResourceTypes": [
                 "AWS::EC2::InternetGateway"
               ]
             }
           }
         },
         {
           "Destination": {
             "ResourceStatement": {
               "ResourceTypes": [
                 "AWS::EC2::InternetGateway"
               ]
             }
           }
         }
       ]
     }
   }
   ```

1. 開始範圍分析：

   ```
   aws ec2 start-network-insights-access-scope-analysis --network-insights-access-scope-id nis-04cad3c4b3a1d5e3e --region us-east-2
   ```

   輸出：

   ```
   {
     "NetworkInsightsAccessScopeAnalysis": {
       "NetworkInsightsAccessScopeAnalysisId": "nisa-0aa383a1938f94cd1",
       "NetworkInsightsAccessScopeAnalysisArn": "arn:aws:ec2:us-east-2:470889052923:network-insights-access-scope-analysis/nisa-0aa383a1938f94cd",
       "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e",
       "Status": "running",
       "StartDate": "2024-09-30T15:56:59.109000+00:00",
       "AnalyzedEniCount": 0
     }
   }
   ```

1. 取得分析的結果：

   ```
   aws ec2 get-network-insights-access-scope-analysis-findings --network-insights-access-scope-analysis-id nisa-0aa383a1938f94cd1 --region us-east-2 --max-items 1
   ```

   輸出：

   ```
   {
     "AnalysisFindings": [
       {
         "NetworkInsightsAccessScopeAnalysisId": "nisa-0aa383a1938f94cd1",
         "NetworkInsightsAccessScopeId": "nis-04cad3c4b3a1d5e3e",
         "FindingId": "AnalysisFinding-1",
         "FindingComponents": [
           {
             "SequenceNumber": 1,
             "Component": {
               "Id": "igw-04a5344b4e30486f1",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:internet-gateway/igw-04a5344b4e30486f1",
               "Name": "VPC BPA Internet Gateway"
             },
             "OutboundHeader": {
               "DestinationAddresses": [
                 "10.0.1.85/32"
               ]
             },
             "InboundHeader": {
               "DestinationAddresses": [
                 "10.0.1.85/32"
               ],
               "DestinationPortRanges": [
                 {
                   "From": 22,
                   "To": 22
                 }
               ],
               "Protocol": "6",
               "SourceAddresses": [
                 "0.0.0.0/5",
                 "100.0.0.0/10",
                 "96.0.0.0/6"
               ],
               "SourcePortRanges": [
                 {
                   "From": 0,
                   "To": 65535
                 }
               ]
             },
             "Vpc": {
               "Id": "vpc-0762547ec48b6888d",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:vpc/vpc-0762547ec48b6888d",
               "Name": "VPC BPA"
             }
           },
           {
             "SequenceNumber": 2,
             "AclRule": {
               "Cidr": "0.0.0.0/0",
               "Egress": false,
               "Protocol": "all",
               "RuleAction": "allow",
               "RuleNumber": 100
             },
             "Component": {
               "Id": "acl-06194fc3a4a03040b",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:network-acl/acl-06194fc3a4a03040b"
             }
           },
           {
             "SequenceNumber": 3,
             "Component": {
               "Id": "sg-093dde06415d03924",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:security-group/sg-093dde06415d03924",
               "Name": "VPC BPA Instances Security Group"
             },
             "SecurityGroupRule": {
               "Cidr": "0.0.0.0/0",
               "Direction": "ingress",
               "PortRange": {
                 "From": 22,
                 "To": 22
               },
               "Protocol": "tcp"
             }
           },
           {
             "SequenceNumber": 4,
             "AttachedTo": {
               "Id": "i-058db34f9a0997895",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:instance/i-058db34f9a0997895",
               "Name": "VPC BPA Instance A"
             },
             "Component": {
               "Id": "eni-0fa23f2766f03b286",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:network-interface/eni-0fa23f2766f03b286"
             },
             "InboundHeader": {
               "DestinationAddresses": [
                 "10.0.1.85/32"
               ],
               "DestinationPortRanges": [
                 {
                   "From": 22,
                   "To": 22
                 }
               ],
               "Protocol": "6",
               "SourceAddresses": [
                 "0.0.0.0/5",
                 "100.0.0.0/10",
                 "96.0.0.0/6"
               ],
               "SourcePortRanges": [
                 {
                   "From": 0,
                   "To": 65535
                 }
               ]
             },
             "Subnet": {
               "Id": "subnet-035d235a762eeed04",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:subnet/subnet-035d235a762eeed04",
               "Name": "VPC BPA Public Subnet A"
             },
             "Vpc": {
               "Id": "vpc-0762547ec48b6888d",
               "Arn": "arn:aws:ec2:us-east-2:470889052923:vpc/vpc-0762547ec48b6888d",
               "Name": "VPC BPA"
             }
           }
         ]
       }
     ],
     "AnalysisStatus": "succeeded",
     "NetworkInsightsAccessScopeAnalysisId": "nisa-0aa383a1938f94cd1",
     "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAxfQ=="
   }
   ```

   結果會顯示您帳戶中所有 VPC 中往返網際網路閘道的流量。結果會組織為「調查結果」。"FindingId": "AnalysisFinding-1" 表示這是分析中的第一個調查結果。請注意，有多個調查結果，每個調查結果都表示流量流程會因為開啟 VPC BPA 而受到影響。第一個調查結果會顯示從網際網路閘道 ("SequenceNumber": 1) 開始的流量，傳遞至 NACL ("SequenceNumber": 2) 給安全群組 ("SequenceNumber"： 3)，並在執行個體 ("SequenceNumber": 4) 結束。

1. 分析調查結果，了解 VPC BPA 對 VPC 資源的影響。

影響分析已完成。

------

## 案例 1 – 連線至未開啟 VPC BPA 的執行個體
<a name="vpc-bpa-scenario-1-connect-scen1"></a>

在本節中，公有子網路 A 與 B 中的 EC2 執行個體可透過網際網路閘道從網際網路連線，同时允許傳入與傳出流量。私有子網路中的執行個體 C 與 D 可以透過 NAT 閘道或僅限輸出網際網路閘道啟動傳出流量，但無法直接從網際網路連線。此設定提供對某些資源的網際網路存取，同時保護其他資源。此設定旨在設定基準，並確保在啟用 VPC BPA 之前，可以連接所有執行個體，並 Ping 公有 IP 位址。

未開啟 VPC BPA 的 VPC 圖表：

![\[此圖表顯示未啟用 VPC BPA 的 VPC。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-bpa-1.png)


### 1.1 連線至執行個體
<a name="vpc-bpa-scenario-1-connect-scen1-sub"></a>

完成本節，在 VPC BPA 關閉的情況下連線至您的執行個體，以確保您可以順利連線。此範例中使用 CloudFormation 建立的所有執行個體的名稱都類似於「VPC BPA 執行個體 A」。

------
#### [ AWS 管理主控台 ]

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 開啟執行個體 A 詳細資訊。

1. 使用 **EC2 執行個體連線** > **連線 EC2 執行個體連線端點**選項連線至執行個體 A。

1. 選擇**連線**。成功連線至執行個體後，請 Ping www.amazon.com 以確認您可以將傳出請求傳送至網際網路。

1. 使用您用來連線至執行個體 A 的相同方法，連線至執行個體 B、C 和 D。從每個執行個體中，Ping www.amazon.com 以確認您可以將傳出請求傳送至網際網路。

------
#### [ AWS CLI ]

1. 使用公有 IPv4 地址 Ping 執行個體 A 以檢查傳入流量：

   ```
   ping 18.225.8.244
   ```

   輸出：

   ```
   Pinging 18.225.8.244 with 32 bytes of data:
   
   Reply from 18.225.8.244: bytes=32 time=51ms TTL=110
   Reply from 18.225.8.244: bytes=32 time=61ms TTL=110
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available. Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_   ~_  ####_        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~._.   _/
   / /
   /m/'
   Last login: Fri Sep 27 18:27:57 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING www-amazon-com.customer.fastly.net (18.65.233.187) 56(84) bytes of data.
   64 bytes from 18.65.233.187 (18.65.233.187): icmp_seq=15 ttl=58 time=2.06 ms
   64 bytes from 18.65.233.187 (18.65.233.187): icmp_seq=16 ttl=58 time=2.26 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 使用公有 IPv4 地址 Ping 執行個體 B 以檢查傳入流量：

   ```
   ping 3.18.106.198
   ```

   輸出：

   ```
   Pinging 3.18.106.198 with 32 bytes of data:
   Reply from 3.18.106.198: bytes=32 time=83ms TTL=110
   Reply from 3.18.106.198: bytes=32 time=54ms TTL=110
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id  i-08552a0774b5c8f72 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.
   Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   / /
   /m/'
   Last login: Fri Sep 27 18:12:27 2024 from 3.16.146.5
   [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=249 time=1.55 ms
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=249 time=1.67 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 連線至執行個體 C。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.
   Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   / /
   /m/'
   Last login: Thu Sep 19 20:31:26 2024 from 10.0.2.86
   [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.75 ms
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.97 ms
   64 bytes from server-3-160-24-26.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=3 ttl=248 time=1.08 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 連線至執行個體 D。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   The authenticity of host '10.0.3.59 can't be established.
   ECDSA key fingerprint is SHA256:c4naBCqbC61/cExDyccEproNU+1HHSpMSzl2J6cOtIZA8g.
   Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
   Warning: Permanently added '10.0.3.59' (ECDSA) to the list of known hosts.
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   _/ _/
   _/m/'
   [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
   PING www.amazon.com(2600:9000:25f3:ee00:7:49a5:5fd4:b121 (2600:9000:25f3:ee00:7:49a5:5fd4:b121)) 56 data bytes
   64 bytes from 2600:9000:25f3:ee00:7:49a5:5fd4:b121 (2600:9000:25f3:ee00:7:49a5:5fd4:b121): icmp_seq=1 ttl=58 time=1.19 ms
   64 bytes from 2600:9000:25f3:ee00:7:49a5:5fd4:b121 (2600:9000:25f3:ee00:7:49a5:5fd4:b121): icmp_seq=2 ttl=58 time=1.38 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

------

## 案例 2 – 開啟 VPC BPA 雙向模式
<a name="vpc-bpa-scenario-1-connect-scen2"></a>

在本節中，您將開啟 VPC BPA，並封鎖您帳戶中網際網路閘道的往返流量。

圖表，顯示已開啟 VPC BPA 雙向模式：

![\[圖表，顯示 VPC 已啟用 VPC BPA 雙向模式。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-bpa-2.png)


### 2.1 啟用 VPC BPA 雙向模式
<a name="vpc-bpa-scenario-1-connect-scen2-sub1"></a>

完成本節以啟用 VPC BPA。VPC BPA 雙向模式會封鎖此區域中往返網際網路閘道和僅輸出網際網路閘道的所有流量 (排除 VPC 和子網路除外)。

------
#### [ AWS 管理主控台 ]

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

1. 在左側的導覽窗格中，選擇**設定**。

1. 選擇**編輯公開存取設定**。

1. 選擇**開啟「封鎖公開存取」**和**雙向**，然後選擇**儲存變更**。

1. 等待**狀態**變更為**開啟**。VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

VPC BPA 現已開啟。

------
#### [ AWS CLI ]

1. 使用 modify-vpc-block-public-access-options 命令來開啟 VPC BPA：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional
   ```

   VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

1. 檢視 VPC BPA 的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-options
   ```

------

### 2.2 連線至執行個體
<a name="vpc-bpa-scenario-1-connect-scen2-sub2"></a>

完成本節以連線至您的執行個體。

------
#### [ AWS 管理主控台 ]

1. Ping 執行個體 A 和執行個體 B 的公有 IPv4 地址，如您在案例 1 中所執行的一樣。請注意，流量會遭到封鎖。

1. 使用 **EC2 執行個體連線** > **連線 EC2 執行個體連線端點**選項連線至執行個體 A，如您在案例 1 中所執行的一樣。請確定您使用端點選項。

1. 選擇**連線**。成功連線至執行個體後，請 Ping https：//www.amazon.com。請注意，所有傳出流量都會遭到封鎖。

1. 使用您用來連線至執行個體 A 的相同方法，連線至執行個體 B、C 和 D，並測試傳出請求到網際網路。請注意，所有傳出流量都會遭到封鎖。

------
#### [ AWS CLI ]

1. 使用公有 IPv4 地址 Ping 執行個體 A 以檢查傳入流量：

   ```
   ping 18.225.8.244
   ```

   輸出：

   ```
   Pinging 18.225.8.244 with 32 bytes of data:
   
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   The authenticity of host '10.0.1.85' can't be established.
   ECDSA key fingerprint is SHA256:3zo/gSss+HAZ+7eTyWlOB/Ke04IM+hadjsoLJeRTWBk.
   Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
   Warning: Permanently added '10.0.1.85' (ECDSA) to the list of known hosts.
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_   ~_  ####_        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~._.   _/
   / /
   /m/'
   Last login: Fri Sep 27 14:16:53 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用公有 IPv4 地址 Ping 執行個體 B 以檢查傳入流量：

   ```
   ping 3.18.106.198
   ```

   輸出：

   ```
   Pinging 3.18.106.198 with 32 bytes of data:
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id  i-08552a0774b5c8f72 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   The authenticity of host '10.0.2.98' can't be established.
   ECDSA key fingerprint is SHA256:0IjXKKyVlDthcCfI0IPIJMUiItAOLYKRNLGTYURnFXo.
   Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
   Warning: Permanently added '10.0.2.98' (ECDSA) to the list of known hosts.
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   / /
   /m/'
   Last login: Fri Sep 27 14:18:16 2024 from 3.16.146.5
   [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 連線至執行個體 C。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   / /
   /m/'
   Last login: Tue Sep 24 15:17:56 2024 from 10.0.2.86
   [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 連線至執行個體 D。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   _/ _/
   _/m/'
   Last login: Fri Sep 27 16:42:01 2024 from 3.16.146.5
   [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
   PING www.amazon.com(2600:9000:25f3:8200:7:49a5:5fd4:b121 (2600:9000:25f3:8200:7:49a5:5fd4:b121)) 56 data bytes
   ```

   請注意，Ping 會失敗並封鎖流量。

------

### 2.3 選用：使用 Reachability Analyzer 確認連線已封鎖
<a name="vpc-bpa-scenario-1-connect-scen2-sub3"></a>

[VPC Reachability Analyzer](https://docs.aws.amazon.com/vpc/latest/reachability/what-is-reachability-analyzer.html) 可用來了解是否可以根據您的網路組態達到特定網路路徑，包括 VPC BPA 設定。在此範例中，您將分析先前嘗試的相同網路路徑，以確認 VPC BPA 是連線失敗的原因。

------
#### [ AWS 管理主控台 ]

1. 透過 [https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer](https://console.aws.amazon.com/networkinsights/home#ReachabilityAnalyzer) 前往 Network Insights 主控台。

1. 按一下**建立並分析路徑**。

1. 在**來源類型**欄位中，選擇**網際網路閘道**，然後從**來源**下拉式清單中選取標記為 **VPC BPA 網際網路閘道**的網際網路閘道。

1. 在**目的地類型**欄位中，選擇**執行個體**，然後從**目的地**下拉式清單中選取標記為 **VPC BPA 執行個體 A** 的執行個體。

1. 按一下**建立並分析路徑**。

1. 等候分析完成。這可能需要幾分鐘的時間。

1. 完成後，您應該會看到**連線性狀態**為**無法連線**，而且**路徑詳細資訊**顯示 `VPC_BLOCK_PUBLIC_ACCESS_ENABLED` 為原因。

------
#### [ AWS CLI ]

1. 使用標記為 VPC BPA 網路閘道的網際網路閘道 ID 和標記為 VPC BPA 執行個體 A 的執行個體 ID 建立網路路徑：

   ```
   aws ec2 --region us-east-2 create-network-insights-path --source igw-id --destination instance-id --protocol TCP
   ```

1. 在網路路徑上開始分析：

   ```
   aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
   ```

1. 檢索分析的結果：

   ```
   aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
   ```

1. 確認 `VPC_BLOCK_PUBLIC_ACCESS_ENABLED` 為 `ExplanationCode`，無法連線。

------

請注意，您也可以[使用流量日誌監控 VPC BPA 影響](security-vpc-bpa-assess-impact-main.md#security-vpc-bpa-fl)。

## 案例 3 – 將 VPC BPA 變更為僅限輸入模式
<a name="vpc-bpa-scenario-3"></a>

在本節中，您將變更 VPC BPA 流量方向，並只允許使用 NAT 閘道或僅輸出網際網路閘道的流量。公有子網路中的 EC2 執行個體 A 與 B 將無法從網際網路連線，因為 BPA 會封鎖透過網際網路閘道傳入的流量。私有子網路中的執行個體 C 與 D 仍可透過 NAT 閘道和僅限輸出網際網路閘道啟動傳出流量，因此仍然可以連線網際網路。

開啟的 VPC BPA 僅輸入模式的圖表：

![\[圖表，顯示 VPC 已啟用 VPC BPA 僅限輸入。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-bpa-3.png)


### 3.1 將模式變更為僅輸入
<a name="vpc-bpa-scenario-1-connect-scen3-sub1"></a>

完成本節以變更模式。

------
#### [ AWS 管理主控台 ]

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

1. 在左側的導覽窗格中，選擇**設定**。

1. 在**封鎖公開存取**索引標籤中，選擇**編輯公開存取設定**。

1. 在 VPC 主控台中修改公開存取設定，並將方向變更為**僅輸入**。

1. 儲存變更並等待狀態更新。VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

------
#### [ AWS CLI ]

1. 修改 VPC BPA 模式：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-ingress
   ```

   VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

1. 檢視 VPC BPA 的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-options
   ```

------

### 3.2 連線至執行個體
<a name="vpc-bpa-scenario-1-connect-scen3-sub2"></a>

完成本節以連線至執行個體。

------
#### [ AWS 管理主控台 ]

1. Ping 執行個體 A 和執行個體 B 的公有 IPv4 地址，如您在案例 1 中所執行的一樣。請注意，流量會遭到封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 A 和 B，如同您在案例 1 中所做的，並從中 Ping www.amazon.com。請注意，您無法從執行個體 A 或 B 在網際網路上 Ping 公有網站，且流量會遭到封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 C 和 D，如同您在案例 1 中所做的，並從中 Ping www.amazon.com。請注意，您可以從執行個體 C 或 D 對網際網路上 Ping 公有網站，並允許流量。

------
#### [ AWS CLI ]

1. 使用公有 IPv4 地址 Ping 執行個體 A 以檢查傳入流量：

   ```
   ping 18.225.8.244
   ```

   輸出：

   ```
   Pinging 18.225.8.244 with 32 bytes of data:
   
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   The authenticity of host '10.0.1.85' can't be established.
   ECDSA key fingerprint is SHA256:3zo/gSss+HAZ+7eTyWlOB/Ke04IM+hadjsoLJeRTWBk.
   Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
   Warning: Permanently added '10.0.1.85' (ECDSA) to the list of known hosts.
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_   ~_  ####_        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~._.   _/
   / /
   /m/'
   Last login: Fri Sep 27 14:16:53 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用公有 IPv4 地址 Ping 執行個體 B 以檢查傳入流量：

   ```
   ping 3.18.106.198
   ```

   輸出：

   ```
   Pinging 3.18.106.198 with 32 bytes of data:
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   The authenticity of host '10.0.2.98 ' can't be established.
   ECDSA key fingerprint is SHA256:0IjXKKyVlDthcCfI0IPIJMUiItAOLYKRNLGTYURnFXo.
   Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
   Warning: Permanently added '10.0.2.98' (ECDSA) to the list of known hosts.
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   _/ /
   /m/'
   Last login: Fri Sep 27 14:18:16 2024 from 3.16.146.5
   [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 連線至執行個體 C。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'                                                                                        
   Last login: Tue Sep 24 15:28:09 2024 from 10.0.2.86                                                     
   [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com                                                         
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.                                 
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.84 ms
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.40 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 連線至執行個體 D。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 16:48:38 2024 from 3.16.146.5
   [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
   PING www.amazon.com(2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121)) 56 data bytes
   64 bytes from 2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121): icmp_seq=14 ttl=58 time=1.47 ms
   64 bytes from 2600:9000:25f3:5800:7:49a5:5fd4:b121 (2600:9000:25f3:5800:7:49a5:5fd4:b121): icmp_seq=16 ttl=58 time=1.59 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

------

## 案例 4 – 建立排除
<a name="vpc-bpa-scenario-4"></a>

在本節中，您會建立排除項目。然後，VPC BPA 只會封鎖*沒有*排除項目的子網路上的流量。VPC BPA 排除項目是可套用至單一 VPC 或子網路的模式，其會將其從帳戶的 VPC BPA 模式排除，並允許雙向或僅限輸出存取。即使帳戶未啟用 VPC BPA，您也可以為 VPC 和子網路建立 VPC BPA 排除項目，以確保在開啟 VPC BPA 時，排除項目不會發生流量中斷。

在此範例中，我們將建立子網路 A 的排除，以顯示到排除的流量受到 VPC BPA 的影響。

開啟 VPC BPA 僅輸入模式和開啟雙向模式的子網路 A 排除的圖表：

![\[此圖表顯示僅限輸入模式下具有 VPC BPA 排除項目的 VPC。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-bpa-4.png)


### 4.1 建立子網路 A 的排除
<a name="vpc-bpa-scenario-1-connect-scen4-sub1"></a>

完成本節以建立排除。VPC BPA 排除項目是可套用至單一 VPC 或子網路的模式，其會將其從帳戶的 VPC BPA 模式排除，並允許雙向或僅限輸出存取。即使帳戶未啟用 VPC BPA，您也可以為 VPC 和子網路建立 VPC BPA 排除項目，以確保在開啟 VPC BPA 時，排除項目不會發生流量中斷。

------
#### [ AWS 管理主控台 ]

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

1. 在左側的導覽窗格中，選擇**設定**。

1. 在**封鎖公開存取**標籤的**排除**下，選擇**建立排除**。

1. 選擇 **VPC BPA 公有子網路 A**，確保選取允許方向**雙向**，然後選擇**建立排除**。

1. 等待**排除狀態**變更為**作用中**。您可能需要重新整理排除資料表才能查看變更。

已建立排除。

------
#### [ AWS CLI ]

1. 修改排除允許方向：

   ```
   aws ec2 --region us-east-2 create-vpc-block-public-access-exclusion --subnet-id subnet-id --internet-gateway-exclusion-mode allow-bidirectional
   ```

1. 可能需要一些時間才能更新排除狀態。檢視排除的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-exclusions --exclusion-ids exclusion-id
   ```

------

### 4.2 連線至執行個體
<a name="vpc-bpa-scenario-1-connect-scen4-sub2"></a>

完成本節以連線至執行個體。

------
#### [ AWS 管理主控台 ]

1. Ping 執行個體 A 的公有 IPv4 地址。請注意，允許流量。

1. Ping 執行個體 B 的公有 IPv4 地址。請注意，流量已封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 A，如同您在案例 1 中所做的，並 Ping www.amazon.com。請注意，您可以從執行個體 A 在網際網路上 Ping 公有網站。允許流量。

1. 使用 EC2 執行個體連線連線至執行個體 B，如同您在案例 1 中所做的，並從中 Ping www.amazon.com。請注意，您無法從執行個體 B 在網際網路上 Ping 公有網站。流量會遭到封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 C 和 D，如同您在案例 1 中所做的，並從中 Ping www.amazon.com。請注意，您可以從執行個體 C 或 D 對網際網路上 Ping 公有網站。允許流量。

------
#### [ AWS CLI ]

1. 使用公有 IPv4 地址 Ping 執行個體 A 以檢查傳入流量：

   ```
   ping 18.225.8.244
   ```

   輸出：

   ```
   Pinging 18.225.8.244 with 32 bytes of data:
   
   Reply from 18.225.8.244: bytes=32 time=51ms TTL=110
   Reply from 18.225.8.244: bytes=32 time=61ms TTL=110
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #_   ~_  ####_        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~._.   _/
   / /
   /m/'
   Last login: Fri Sep 27 17:58:12 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=249 time=1.03 ms
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=249 time=1.72 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 使用公有 IPv4 地址 Ping 執行個體 B 以檢查傳入流量：

   ```
   ping 3.18.106.198
   ```

   輸出：

   ```
   Pinging 3.18.106.198 with 32 bytes of data:
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-08552a0774b5c8f72 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   _/ /
   /m/'
   Last login: Fri Sep 27 18:12:03 2024 from 3.16.146.5
   [ec2-user@ip-10-0-2-98 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 連線至執行個體 C。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 --connection-type eice
   ```

   Output

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
   ,     #   ~_  ####        Amazon Linux 2023
   ~~  _#####\  ~~     ###|
   ~~       #/ ___   https://aws.amazon.com/linux/amazon-linux-2023
   ~~       V~' '->
   ~~~         /
   ~~..   _/
   _/ /
   /m/'                                                                                           
   Last login: Tue Sep 24 15:28:09 2024 from 10.0.2.86                                                     
   [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com                                                         
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.                                 
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=1 ttl=248 time=1.84 ms
   64 bytes from server-3-160-24-126.cmh68.r.cloudfront.net (18.65.233.187): icmp_seq=2 ttl=248 time=1.40 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 連線至執行個體 D。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 --connection-type eice
   ```

   Output

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:00:52 2024 from 3.16.146.5
   [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
   PING www.amazon.com(g2600-141f-4000-059a-0000-0000-0000-3bd4.deploy.static.akamaitechnologies.com (2600:141f:4000:59a::3bd4)) 56 data bytes
   64 bytes from g2600-141f-4000-059a-0000-0000-0000-3bd4.deploy.static.akamaitechnologies.com (2600:141f:4000:59a::3bd4): icmp_seq=1 ttl=48 time=15.9 ms
   64 bytes from g2600-141f-4000-059a-0000-0000-0000-3bd4.deploy.static.akamaitechnologies.com (2600:141f:4000:59a::3bd4): icmp_seq=2 ttl=48 time=15.8 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

------

### 4.3 選用：驗證與 Reachability Analyzer 的連線
<a name="vpc-bpa-scenario-1-connect-scen4-sub3"></a>

使用案例 2 中的 Reachability Analyzer 中建立的相同網路路徑，您現在可以執行新的分析，並確認現在已為公有子網路 A 建立排除項目，即可連線該路徑。

如需 Reachability Analyzer 區域可用性的相關資訊，請參閱*《Reachability Analyzer 指南》*中的[考量](https://docs.aws.amazon.com/vpc/latest/reachability/how-reachability-analyzer-works.html#considerations)。

------
#### [ AWS 管理主控台 ]

1. 從您先前在 Network Insights 主控台中建立的網路路徑中，按一下**重新執行分析**。

1. 等候分析完成。這可能需要幾分鐘的時間。

1. 確認路徑現在**可連線**。

------
#### [ AWS CLI ]

1. 使用先前建立的網路路徑 ID，開始新的分析：

   ```
   aws ec2 --region us-east-2 start-network-insights-analysis --network-insights-path-id nip-id
   ```

1. 檢索分析的結果：

   ```
   aws ec2 --region us-east-2 describe-network-insights-analyses --network-insights-analysis-ids nia-id
   ```

1. 確認 `VPC_BLOCK_PUBLIC_ACCESS_ENABLED` 說明代碼不再存在。

------

## 案例 5 – 修改排除模式
<a name="vpc-bpa-scenario-5"></a>

在本節中，您將變更排除的允許流量方向，以查看它如何影響 VPC BPA。

**注意**  
在此案例中，您会將排除模式變更為僅限輸出。請注意，當您執行此操作時，子網路 A 上的僅限輸出排除項目不允許傳出流量，這與直覺不相符，因為您預期它允許傳出流量。不過，由於帳戶層級 BPA 是僅限輸入，因此會忽略僅限輸出排除項目，且子網路 A 的網際網路閘道路由受到 VPC BPA 的限制，會封鎖傳出流量。若要在子網路 A 上啟用傳出流量，您必須將 VPC BPA 切換為雙向模式。

開啟 VPC BPA 僅輸入模式和開啟僅輸出模式的子網路 A 排除的圖表：

![\[圖表，顯示 VPC 的 VPC BPA 處於僅限輸入模式，允許透過 NAT 閘道傳出的流量。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-bpa-5.png)


### 5.1 將排除允許方向變更為僅輸出
<a name="vpc-bpa-scenario-1-connect-scen5-sub1"></a>

完成本節以變更排除允許方向。

------
#### [ AWS 管理主控台 ]

1. 編輯您在案例 4 中建立的排除，並將允許方向變更為**僅輸出**。

1. 選擇**儲存變更**。

1. 等待**排除**狀態變更為**作用中**。VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。您可能需要重新整理排除資料表才能查看變更。

------
#### [ AWS CLI ]

1. 修改排除允許方向：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-exclusion --exclusion-id exclusion-id --internet-gateway-exclusion-mode allow-egress
   ```

   VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

1. 可能需要一些時間才能更新排除狀態。檢視排除的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-exclusion
   ```

------

### 5.2 連線至執行個體
<a name="vpc-bpa-scenario-1-connect-scen5-sub2"></a>

完成本節以連線至執行個體。

------
#### [ AWS 管理主控台 ]

1. Ping 執行個體 A 和 B 的公有 IPv4 地址。請注意，流量已封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 A 和 B，如同您在案例 1 中所做的，並 Ping www.amazon.com。請注意，您無法從執行個體 A 或 B 在網際網路上 Ping 公有網站。流量會遭到封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 C 和 D，如同您在案例 1 中所做的，並從中 Ping www.amazon.com。請注意，您可以從執行個體 C 或 D 對網際網路上 Ping 公有網站。允許流量。

------
#### [ AWS CLI ]

1. 使用公有 IPv4 地址 Ping 執行個體 A 以檢查傳入流量：

   ```
   ping 18.225.8.244
   ```

   輸出：

   ```
   Pinging 18.225.8.244 with 32 bytes of data:
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:09:55 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用公有 IPv4 地址 Ping 執行個體 B 以檢查傳入流量：

   ```
   ping 3.18.106.198
   ```

   輸出：

   ```
   Pinging 3.18.106.198 with 32 bytes of data:
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:09:55 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 連線至執行個體 C。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 --connection-type eice      
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:00:31 2024 from 3.16.146.5
   [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
   PING www.amazon.com(2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121)) 56 data bytes
   64 bytes from 2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121): icmp_seq=1 ttl=58 time=1.51 ms
   64 bytes from 2600:9000:25f3:a600:7:49a5:5fd4:b121 (2600:9000:25f3:a600:7:49a5:5fd4:b121): icmp_seq=2 ttl=58 time=1.49 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

1. 連線至執行個體 D。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:13:55 2024 from 3.16.146.5
   [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
   PING www.amazon.com(2606:2cc0::374 (2606:2cc0::374)) 56 data bytes
   64 bytes from 2606:2cc0::374 (2606:2cc0::374): icmp_seq=1 ttl=58 time=1.21 ms
   64 bytes from 2606:2cc0::374 (2606:2cc0::374): icmp_seq=2 ttl=58 time=1.51 ms
   ```

   請注意，Ping 成功且流量未遭到封鎖。

------

## 案例 6 – 修改 VPC BPA 模式
<a name="vpc-bpa-scenario-6"></a>

在本節中，您將變更 VPC BPA 區塊方向，以查看其如何影響流量。在此案例中，在雙向模式中啟用 VPC BPA 會封鎖所有流量，就像案例 1 一樣。除非排除可存取 NAT 閘道或僅輸出網際網路閘道，否則會封鎖流量。

開啟 VPC BPA 雙向模式和開啟僅輸出模式的子網路 A 排除的圖表：

![\[此圖表顯示僅限輸入模式下具有 VPC BPA 的 VPC，允許透過 NAT 閘道傳出流量。\]](http://docs.aws.amazon.com/zh_tw/vpc/latest/userguide/images/vpc-bpa-6.png)


### 6.1 將 VPC BPA 變更為雙向模式
<a name="vpc-bpa-scenario-1-connect-scen6-sub1"></a>

完成本節以變更 VPC BPA 模式。

------
#### [ AWS 管理主控台 ]

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

1. 在左側的導覽窗格中，選擇**設定**。

1. 選擇**編輯公開存取設定**。

1. 將區塊方向變更為**雙向**，然後選擇**儲存變更**。

1. 等待**狀態**變更為**開啟**。VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

------
#### [ AWS CLI ]

1. 修改 VPC BPA 區塊方向：

   ```
   aws ec2 --region us-east-2 modify-vpc-block-public-access-options --internet-gateway-block-mode block-bidirectional
   ```

   VPC BPA 設定可能需要幾分鐘的時間才會生效，並更新狀態。

1. 檢視 VPC BPA 的狀態：

   ```
   aws ec2 --region us-east-2 describe-vpc-block-public-access-options
   ```

------

### 6.2 連線至執行個體
<a name="vpc-bpa-scenario-1-connect-scen6-sub2"></a>

完成本節以連線至執行個體。

------
#### [ AWS 管理主控台 ]

1. Ping 執行個體 A 和 B 的公有 IPv4 地址。請注意，流量已封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 A 和 B，如同您在案例 1 中所做的，並 Ping www.amazon.com。請注意，您無法從執行個體 A 或 B 在網際網路上 Ping 公有網站。流量會遭到封鎖。

1. 使用 EC2 執行個體連線連線至執行個體 C 和 D，如同您在案例 1 中所做的，並從中 Ping www.amazon.com。請注意，您無法從執行個體 C 或 D 在網際網路上 Ping 公有網站。流量會遭到封鎖。

------
#### [ AWS CLI ]

1. 使用公有 IPv4 地址 Ping 執行個體 A 以檢查傳入流量：

   ```
   ping 18.225.8.244
   ```

   輸出：

   ```
   Pinging 18.225.8.244 with 32 bytes of data:
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:17:44 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用公有 IPv4 地址 Ping 執行個體 A 以檢查傳入流量：

   ```
   ping 3.18.106.198
   ```

   輸出：

   ```
   Pinging 3.18.106.198 with 32 bytes of data:
   Request timed out.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 使用私有 IPv4 地址來連線和檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-058db34f9a0997895 --region us-east-2 --connection-type eice
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:09:55 2024 from 3.16.146.5
   [ec2-user@ip-10-0-1-85 ~]$ ping www.amazon.com
   PING d3ag4hukkh62yn.cloudfront.net (18.65.233.187) 56(84) bytes of data.
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 連線至執行個體 C。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-04eca55f2a482b2c4 --region us-east-2 --connection-type eice                                   
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:19:45 2024 from 3.16.146.5
   [ec2-user@ip-10-0-3-180 ~]$ ping www.amazon.com
   PING www.amazon.com(2600:9000:25f3:6200:7:49a5:5fd4:b121 (2600:9000:25f3:6200:7:49a5:5fd4:b121)) 56 data bytes
   ```

   請注意，Ping 會失敗並封鎖流量。

1. 連線至執行個體 D。由於沒有公有 IP 位址可供 Ping，請使用「EC2 執行個體連線」連線執行個體，然後從執行個體 Ping 公有 IP 來檢查傳出流量：

   ```
   aws ec2-instance-connect ssh --instance-id i-05f9e6a9cfac1dba0 --region us-east-2 --connection-type eice                                  
   ```

   輸出：

   ```
   A newer release of "Amazon Linux" is available.  Version 2023.5.20240916:
   Run "/usr/bin/dnf check-release-update" for full release and version update info
      ,     #_   ~\_  ####_        Amazon Linux 2023
     ~~  \_#####\  ~~     \###|
     ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
      ~~       V~' '->
       ~~~         /
         ~~._.   _/
            _/ _/
          _/m/'
   Last login: Fri Sep 27 18:20:58 2024 from 3.16.146.5
   [ec2-user@ip-10-0-3-59 ~]$ ping www.amazon.com
   PING www.amazon.com(2600:9000:25f3:b400:7:49a5:5fd4:b121 (2600:9000:25f3:b400:7:49a5:5fd4:b121)) 56 data bytes
   ```

   請注意，Ping 會失敗並封鎖流量。

------

## 清除
<a name="vpc-bpa-scenario-cleanup"></a>

在本節中，您將刪除為此進階範例建立的所有資源。請務必清理資源，以避免帳戶中建立的資源產生過多的額外費用。

### 刪除 CloudFormation 資源
<a name="vpc-bpa-scenario-1-connect-cleanup-sub1"></a>

完成本節以刪除您使用 CloudFormation 範本建立的資源。

------
#### [ AWS 管理主控台 ]

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

1. 選擇 VPC BPA 堆疊。

1. 選擇 **刪除**。

1. 開始刪除堆疊後，請檢視**事件**標籤以檢視進度，並確保堆疊已刪除。您可能需要[強制刪除堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)，才能將其完全刪除。

------
#### [ AWS CLI ]

1. 刪除 CloudFormation 堆疊。您可能需要[強制刪除堆疊](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)，才能將其完全刪除。

   ```
   aws cloudformation delete-stack --stack-name VPC-BPA-stack --region us-east-2
   ```

1. 檢視進度並確保堆疊已刪除。

   ```
   aws cloudformation describe-stack-events --stack-name VPC-BPA-stack --region us-east-2
   ```

------

### 使用 CloudTrail 追蹤排除項目刪除
<a name="vpc-bpa-scenario-1-connect-cleanup-sub2"></a>

完成本節以使用 追蹤排除刪除 AWS CloudTrail。當您刪除排除時，會顯示 CloudTrail 項目。

------
#### [ AWS 管理主控台 ]

您可以在 的 CloudTrail 主控台中查詢**資源類型** > **AWS::EC2::VPCBlockPublicAccessExclusion**，以檢視 AWS CloudTrail 事件歷史記錄中任何已刪除的排除[https://console.aws.amazon.com/cloudtrailv2/](https://console.aws.amazon.com/cloudtrailv2/)。

------
#### [ AWS CLI ]

您可以使用 lookup-events 命令來檢視與刪除排除相關的事件：

```
aws cloudtrail lookup-events --lookup-attributes AttributeKey=ResourceType,AttributeValue=AWS::EC2::VPCBlockPublicAccessExclusion
```

------

進階範例已完成。

# VPC 的安全最佳實務
<a name="vpc-security-best-practices"></a>

 以下最佳實務為一般準則，並不代表完整的安全解決方案。這些最佳實務可能不適用或無法滿足您的環境需求，因此請將其視為實用建議就好，而不要當作是指示。
+ 將子網路新增至 VPC 以託管應用程式時，在多個可用區域中建立子網路。可用區域是一個或多個離散的資料中心，在 AWS 區域中具有備援電源、聯網和連線能力。使用多個可用區域可使生產應用程式具備高可用性、容錯能力和可擴展性。
+ 使用安全群組來控制到子網路中 EC2 執行個體的流量。如需詳細資訊，請參閱[Security groups (安全群組)](vpc-security-groups.md)。
+ 使用網路 ACL 來控制子網路層級的傳出和傳入流量。如需詳細資訊，請參閱[使用網路存取控制清單控制子網路流量](vpc-network-acls.md)。
+ 使用 AWS Identity and Access Management (IAM) 聯合身分、使用者和角色管理對 VPC 中 AWS 資源的存取。如需詳細資訊，請參閱[Amazon VPC 的身分和存取管理](security-iam.md)。
+ 使用 VPC 流量日誌以監控從 VPC、子網路或網路介面傳入和傳出的 IP 流量。如需詳細資訊，請參閱[VPC 流程日誌](flow-logs.md)。
+ 使用網路存取分析器識別對 VPC 中資源的意外網路存取。如需詳細資訊，請參閱 [Network Access Analyzer Guide](https://docs.aws.amazon.com/vpc/latest/network-access-analyzer/) (《網路存取分析器指南》)。
+  AWS Network Firewall 使用 透過篩選傳入和傳出流量來監控和保護您的 VPC。如需詳細資訊，請參閱 [AWS Network Firewall 指南](https://docs.aws.amazon.com/network-firewall/latest/developerguide/)。
+ 使用 Amazon GuardDuty 偵測您 AWS 環境中帳戶、容器、工作負載和資料的潛在威脅。基礎威脅偵測包括監控與您的 Amazon EC2 執行個體相關聯的 VPC 流程日誌。如需詳細資訊，請參閱*《Amazon GuardDuty 使用者指南》*中的 [VPC 流程日誌](https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_data-sources.html#guardduty_vpc)。

如需 VPC 安全常見問答集的解答，請參閱 [Amazon VPC 常見問答集](https://aws.amazon.com/vpc/faqs/)中的*安全和篩選*。