

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

# 中的安全性 AWS App Mesh
<a name="security"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

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

安全性是 AWS 與您之間的共同責任。[‬共同責任模型‭](https://aws.amazon.com/compliance/shared-responsibility-model/)‬ 將此描述為雲端*‬的‭*‬安全和雲端*‬內*‬的安全：
+ **雲端的安全性** – AWS 負責保護在 Cloud AWS 中執行 AWS 服務的基礎設施。 AWS 也為您提供可安全使用的服務。在 [AWS 合規計畫](https://aws.amazon.com/compliance/programs/)中，第三方稽核員會定期測試並驗證我們的安全功效。若要進一步瞭解適用於 AWS App Mesh的合規計劃，請參閱 [合規計劃範圍內的AWS 服務](https://aws.amazon.com/compliance/services-in-scope/)。App Mesh 負責安全地將組態交付至本機代理，包括 TLS 憑證私有金鑰等秘密。
+ **雲端的安全性** – 您的責任取決於您使用 AWS 的服務。您還需要負責其他因素，包括：
  + 資料的機密性、您公司的要求，以及適用的法律和法規。
  + App Mesh 資料平面的安全組態，包括允許流量在 VPC 內的服務之間傳遞的安全群組組態。
  + 與 App Mesh 相關聯的運算資源組態。
  + 與您的運算資源相關聯的 IAM 政策，以及它們可以從 App Mesh 控制平面擷取的組態。

本文件可協助您了解如何在使用 App Mesh 時套用共同責任模型。下列主題說明如何設定 App Mesh 以符合您的安全與合規目標。您也會了解如何使用其他 AWS 服務來協助您監控和保護 App Mesh 資源。

**App Mesh 安全性原則**  
客戶應該能夠視需要調整安全性。平台不應阻止它們更安全。根據預設，平台功能是安全的。

**Topics**
+ [Transport Layer Security (TLS)](tls.md)
+ [交互 TLS 驗證](mutual-tls.md)
+ [AWS App Mesh 如何使用 IAM](security-iam.md)
+ [使用 記錄 AWS App Mesh API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)
+ [中的資料保護 AWS App Mesh](data-protection.md)
+ [的合規驗證 AWS App Mesh](compliance.md)
+ [中的基礎設施安全 AWS App Mesh](infrastructure-security.md)
+ [中的彈性 AWS App Mesh](disaster-recovery-resiliency.md)
+ [中的組態和漏洞分析 AWS App Mesh](configuration-vulnerability-analysis.md)

# Transport Layer Security (TLS)
<a name="tls"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

在 App Mesh 中，Transport Layer Security (TLS) 會加密部署在運算資源上的 Envoy 代理程式之間的通訊，這些資源由網格端點在 App Mesh 中表示，例如 [虛擬節點](virtual_nodes.md)和 [虛擬閘道](virtual_gateways.md)。代理會交涉和終止 TLS。使用 應用程式部署代理時，您的應用程式程式碼不負責交涉 TLS 工作階段。代理會代表您的應用程式交涉 TLS。

App Mesh 可讓您以下列方式提供 TLS 憑證給代理：
+ 來自 AWS Certificate Manager (ACM) 的私有憑證，由 AWS 私有憑證授權單位 () 發行AWS 私有 CA。
+ 儲存在您自有憑證授權機構 (CA) 發行之虛擬節點本機檔案系統中的憑證 
+ Secrets Discovery Service (SDS) 端點透過本機 Unix Domain Socket 提供的憑證。

[Envoy Proxy 授權](proxy-authorization.md) 必須針對網格端點表示的已部署 Envoy 代理啟用 。我們建議您在啟用代理授權時，將存取權限制為您啟用加密的網格端點。

## 憑證需求
<a name="virtual-node-tls-prerequisites"></a>

憑證上的其中一個主體別名 (SANs) 必須符合特定條件，視網格端點所代表的實際服務探索方式而定。
+ **DNS** – 其中一個憑證 SANs 必須符合 DNS 服務探索設定中提供的值。對於具有服務探索名稱 的應用程式`mesh-endpoint.apps.local`，您可以建立與該名稱相符的憑證，或使用萬用字元 的憑證`*.apps.local`。
+ **AWS Cloud Map** – 其中一個憑證 SANs 必須符合使用 格式 AWS Cloud Map 的服務探索設定中提供的值`service-name.namespace-name`。對於具有 serviceName AWS Cloud Map 的服務探索設定`mesh-endpoint`和 namespaceName 的應用程式`apps.local`，您可以建立與名稱 相符的憑證`mesh-endpoint.apps.local`，或使用萬用字元的憑證 `*.apps.local.`

對於這兩種探索機制，如果憑證 SANs都不符合 DNS 服務探索設定，Envoys 之間的連線會失敗並顯示下列錯誤訊息，如用戶端 Envoy 所示。

```
TLS error: 268435581:SSL routines:OPENSSL_internal:CERTIFICATE_VERIFY_FAILED
```

## TLS 身分驗證憑證
<a name="authentication-certificates"></a>

使用 TLS 身分驗證時，App Mesh 支援憑證的多個來源。

**AWS 私有 CA**  
憑證必須存放在與將使用憑證的網格端點相同的區域和 AWS 帳戶中的 ACM 中。CA 的憑證不需要位於相同的 AWS 帳戶中，但仍需要位於與網格端點相同的區域。如果您沒有 AWS 私有 CA，則必須先[建立一個](https://docs.aws.amazon.com/acm-pca/latest/userguide/PcaCreateCa.html)，才能從中請求憑證。如需 AWS 私有 CA 使用 ACM 從現有 請求憑證的詳細資訊，請參閱[請求私有憑證](https://docs.aws.amazon.com/acm/latest/userguide/gs-acm-request-private.html)。憑證不能是公有憑證。  
您用於 TLS 用戶端政策的私有 CAs 必須是根使用者 CAs。  
若要設定具有憑證和 CAs虛擬節點 AWS 私有 CA，您用來呼叫 App Mesh 的委託人 （例如使用者或角色） 必須具有下列 IAM 許可：  
+ 對於您新增至接聽程式 TLS 組態的任何憑證，委託人必須擁有 `acm:DescribeCertificate`許可。
+ 對於在 TLS 用戶端政策上設定的任何 CAs，委託人必須擁有 `acm-pca:DescribeCertificateAuthority`許可。
與其他帳戶共用 CAs可能會將這些帳戶意外的權限授予 CA。對於不需要從 CA 發行憑證`acm-pca:GetCertificateAuthorityCertificate`的帳戶，我們建議您使用資源型政策來限制存取 `acm-pca:DescribeCertificateAuthority`和 。
您可以將這些許可新增至連接至委託人的現有 IAM 政策，或建立新的委託人和政策，並將政策連接至委託人。如需詳細資訊，請參閱[編輯 IAM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)、[建立 IAM 政策和](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html)[新增 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)。  
您需要支付每個 操作的每月費用， AWS 私有 CA 直到您將其刪除為止。您還需要為每月發行的私有憑證和匯出的私有憑證付費。如需詳細資訊，請參閱[AWS Certificate Manager 定價](https://aws.amazon.com//certificate-manager/pricing/)。
當您為網格端點代表的 Envoy Proxy 啟用代理[授權](proxy-authorization.md)時，您必須指派您使用的 IAM 角色下列 IAM 許可：  
+ 對於在虛擬節點接聽程式上設定的任何憑證，角色必須具有 `acm:ExportCertificate`許可。
+ 對於在 TLS 用戶端政策上設定的任何 CAs，角色必須具有 `acm-pca:GetCertificateAuthorityCertificate`許可。

**檔案系統**  
您可以使用 檔案系統將憑證分發給 Envoy。您可以透過在檔案路徑上提供憑證鏈和對應的私有金鑰來執行此操作。如此一來，即可從 Envoy 附屬代理存取這些資源。

**Envoy 的秘密探索服務 (SDS)**  
Envoy 透過 Secrets Discovery 通訊協定，從特定端點擷取 TLS 憑證等秘密。如需此通訊協定的詳細資訊，請參閱 Envoy 的 [SDS 文件](https://www.envoyproxy.io/docs/envoy/latest/configuration/security/secret)。  
當 SDS 做為憑證和憑證鏈的來源時，App Mesh 會將 Envoy 代理設定為使用代理本機的 Unix Domain Socket 做為 Secret Discovery Service (SDS) 端點。您可以使用 `APPMESH_SDS_SOCKET_PATH`環境變數來設定此端點的路徑。  
App Mesh Envoy 代理版本 1.15.1.0 及更新版本支援使用 Unix Domain Socket 的 Local Secrets Discovery Service。  
App Mesh 支援使用 gRPC 的 V2 SDS 通訊協定。

**與 SPIFFE 執行期環境 (SPIRE) 整合**  
您可以使用 SDS API 的任何附屬實作，包括 [SPIFFE 執行期環境 (SPIRE) ](https://github.com/spiffe/spire)等現有工具鏈。SPIRE 旨在啟用分散式系統中多個工作負載之間的交互 TLS 身分驗證部署。它會在執行時間證明工作負載的身分。SPIRE 也會將特定工作負載、短期和自動輪換金鑰和憑證直接交付至工作負載。  
您應該將 SPIRE Agent 設定為 Envoy 的 SDS 供應商。允許它直接為 Envoy 提供提供相互 TLS 身分驗證所需的金鑰材料。在 Envoy 代理旁邊的附屬中執行 SPIRE 代理程式。代理程式會視需要負責重新產生短期金鑰和憑證。代理程式會證明 Envoy，並判斷當 Envoy 連線到 SPIRE 代理程式公開的 SDS 伺服器時，應提供給 Envoy 哪些服務身分和 CA 憑證。  
在此過程中，會輪換服務身分和 CA 憑證，並將更新串流回 Envoy。Envoy 會立即將它們套用至新的連線，而不會中斷或停機，也不會讓私有金鑰接觸檔案系統。

## App Mesh 如何設定 Envoy 來交涉 TLS
<a name="envoy-configuration-tls"></a>

App Mesh 在決定如何在網格中設定 Envoys 之間的通訊時，同時使用用戶端和伺服器的網格端點組態。

**使用用戶端政策**  
當用戶端政策強制執行 TLS 的使用，且用戶端政策中的其中一個連接埠符合伺服器政策的連接埠時，用戶端政策會用來設定用戶端的 TLS 驗證內容。例如，如果虛擬閘道的用戶端政策符合虛擬節點的伺服器政策，則會使用虛擬閘道用戶端政策中定義的設定，在代理之間嘗試 TLS 交涉。如果用戶端政策不符合伺服器政策的連接埠，則根據伺服器政策的 TLS 設定，代理之間的 TLS 可能會也可能不會交涉。

**沒有用戶端政策**  
如果用戶端尚未設定用戶端政策，或用戶端政策不符合伺服器的連接埠，App Mesh 將使用伺服器來判斷是否要從用戶端交涉 TLS，以及如何進行交涉。例如，如果虛擬閘道尚未指定用戶端政策，且虛擬節點尚未設定 TLS 終止，則不會在代理之間交涉 TLS。如果用戶端未指定相符的用戶端政策，且伺服器已設定為 TLS 模式`STRICT`或 `PERMISSIVE`，則代理會設定為交涉 TLS。根據為 TLS 終止提供憑證的方式，適用下列額外行為。  
+ **ACM 受管 TLS 憑證** – 當伺服器已使用 ACM 受管憑證設定 TLS 終止時，App Mesh 會自動設定用戶端以交涉 TLS，並根據憑證鏈結所在的根使用者 CA 來驗證憑證。
+ **以檔案為基礎的 TLS 憑證** – 當伺服器已使用代理本機檔案系統的憑證設定 TLS 終止時，App Mesh 會自動設定用戶端來交涉 TLS，但不會驗證伺服器的憑證。

**主體替代名稱**  
您可以選擇性地指定要信任的主體別名 (SANs清單。SANs必須為 FQDN 或 URI 格式。如果提供 SANs，Envoy 會驗證所出示憑證的主體別名是否符合此清單上的其中一個名稱。  
如果您未在終止網格端點上指定 SAN，則該節點的 Envoy 代理不會在對等用戶端憑證上驗證 SAN。如果您未在原始網格端點上指定 SAN，則終止端點提供的憑證上的 SAN 必須與網格端點服務探索組態相符。  
如需詳細資訊，請參閱 App Mesh [TLS：憑證需求](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#virtual-node-tls-prerequisites)。  
只有在 TLS 的用戶端政策設定為 時，才能使用萬用字元 SANs`not enforced`。如果用戶端虛擬節點或虛擬閘道的用戶端政策設定為強制執行 TLS，則無法接受萬用字元 SAN。

## 驗證加密
<a name="verify-encryption"></a>

啟用 TLS 之後，您可以查詢 Envoy 代理以確認通訊已加密。Envoy 代理會發出 資源的統計資料，協助您了解 TLS 通訊是否正常運作。例如，Envoy 代理會記錄針對指定網格端點交涉的成功 TLS 交握次數統計資料。`my-mesh-endpoint` 使用以下命令判斷名為 的網格端點有多少成功 TLS 交握。

```
curl -s 'http://my-mesh-endpoint.apps.local:9901/stats' | grep ssl.handshake
```

在下列範例傳回輸出中，網格端點有三個交握，因此會加密通訊。

```
listener.0.0.0.0_15000.ssl.handshake: 3
```

當 TLS 交涉失敗時，Envoy 代理也會發出統計資料。判斷網格端點是否有 TLS 錯誤。

```
curl -s 'http://my-mesh-endpoint.apps.local:9901/stats' | grep -e "ssl.*\(fail\|error\)"
```

在傳回輸出的範例中，數個統計資料沒有錯誤，因此 TLS 交涉成功。

```
listener.0.0.0.0_15000.ssl.connection_error: 0
listener.0.0.0.0_15000.ssl.fail_verify_cert_hash: 0
listener.0.0.0.0_15000.ssl.fail_verify_error: 0
listener.0.0.0.0_15000.ssl.fail_verify_no_cert: 0
listener.0.0.0.0_15000.ssl.ssl.fail_verify_san: 0
```

如需 Envoy TLS 統計資料的詳細資訊，請參閱 [Envoy 接聽程式統計資料](https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/stats)。

## 憑證續約
<a name="certificate-renewal"></a>

**AWS 私有 CA**  
當您使用 ACM 續約憑證時，續約的憑證會在續約完成後的 35 分鐘內自動分發給您連接的代理。我們建議您使用 受管續約，在接近有效期間結束時自動續約憑證。如需詳細資訊，請參閱 AWS Certificate Manager 《 使用者指南》中的 [ACM Amazon 發行憑證的受管續約](https://docs.aws.amazon.com/acm/latest/userguide/managed-renewal.html)。

**您自己的憑證**  
從本機檔案系統使用憑證時，Envoy 不會在憑證變更時自動重新載入憑證。您可以重新啟動或重新部署 Envoy 程序，以載入新的憑證。您也可以將較新的憑證放在不同的檔案路徑，並使用該檔案路徑更新虛擬節點或閘道組態。

## 設定 Amazon ECS 工作負載以搭配 使用 TLS 身分驗證 AWS App Mesh
<a name="mtls-configure-ecs"></a>

您可以設定您的網格以使用 TLS 身分驗證。確定憑證可供您新增至工作負載的 Envoy 代理附屬項目使用。您可以將 EBS 或 EFS 磁碟區連接到 Envoy 附屬，也可以從 AWS Secrets Manager 存放和擷取憑證。
+ 如果您使用以檔案為基礎的憑證分佈，請將 EBS 或 EFS 磁碟區連接至您的 Envoy 附屬。確定憑證和私有金鑰的路徑符合其中設定的路徑 AWS App Mesh。
+ 如果您使用的是 SDS 型分佈，請新增可實作 Envoy 的 SDS API 並存取憑證的附屬項目。

**注意**  
Amazon ECS 不支援 SPIRE。

## 設定 Kubernetes 工作負載以搭配 使用 TLS 身分驗證 AWS App Mesh
<a name="mtls-configure-kubernetes"></a>

您可以設定 Kubernetes 的 AWS App Mesh 控制器，為虛擬節點和虛擬閘道服務後端和接聽程式啟用 TLS 身分驗證。請確定憑證可供您新增至工作負載的 Envoy 代理附屬項目使用。您可以在相互 TLS 身分驗證的[逐步解說](https://docs.aws.amazon.com/app-mesh/latest/userguide/mutual-tls.html#mtls-walkthrough)區段中查看每個分發類型的範例。
+ 如果您使用以檔案為基礎的憑證分佈，請將 EBS 或 EFS 磁碟區連接至您的 Envoy 附屬。確定憑證和私有金鑰的路徑符合控制器中設定的路徑。或者，您可以使用掛載在檔案系統的 Kubernetes 秘密。
+ 如果您使用的是 SDS 型分佈，您應該設定節點本機 SDS 供應商，以實作 Envoy 的 SDS API。Envoy 將透過 UDS 連接它。若要在 EKS AppMesh 控制器中啟用 SDS 型 mTLS 支援，請將 `enable-sds`旗標設定為 ，`true`並透過 `sds-uds-path`旗標將本機 SDS 提供者的 UDS 路徑提供給控制器。如果您使用 helm，您可以將這些設定為控制器安裝的一部分：

  ```
  --set sds.enabled=true
  ```

**注意**  
如果您在 Fargate 模式下使用 Amazon Elastic Kubernetes Service (Amazon EKS)，您將無法使用 SPIRE 來分發憑證。

# 交互 TLS 驗證
<a name="mutual-tls"></a>

**重要**  
支援終止通知：2026 年 9 月 30 日， AWS 將停止支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

相互 TLS (Transport Layer Security) 身分驗證是 TLS 的選用元件，可提供雙向對等身分驗證。相互 TLS 身分驗證透過 TLS 新增一層安全性，讓您的服務可以驗證進行連線的用戶端。

在工作階段交涉過程中，用戶端與伺服器關係中的用戶端也會提供 X.509 憑證。伺服器使用此憑證來識別和驗證用戶端。此程序有助於驗證憑證是否由信任的憑證授權機構 (CA) 發行，以及憑證是否為有效的憑證。它也會使用憑證上的主體別名 (SAN) 來識別用戶端。

您可以為 支援的所有通訊協定啟用交互 TLS 身分驗證 AWS App Mesh。它們是 TCP、HTTP/1.1、HTTP/2、gRPC。

**注意**  
使用 App Mesh，您可以為來自 服務的 Envoy 代理之間的通訊設定交互 TLS 身分驗證。不過，您的應用程式與 Envoy 代理之間的通訊不會加密。

## 相互 TLS 身分驗證憑證
<a name="mtls-certificates"></a>

AWS App Mesh 支援兩個可能的憑證來源進行交互 TLS 身分驗證。TLS 用戶端政策中的用戶端憑證和接聽程式 TLS 組態中的伺服器驗證可從下列來源取得：
+ **檔案系統 –** 來自正在執行之 Envoy 代理的本機檔案系統的憑證。若要將憑證分發至 Envoy，您需要提供憑證鏈和私有金鑰的檔案路徑給 App Mesh API。
+ **Envoy 的秘密探索服務 (SDS) –** Bring-your-own附屬，可實作 SDS 並允許將憑證傳送至 Envoy。其中包括 SPIFFE 執行期環境 (SPIRE)。

**重要**  
App Mesh 不會存放用於交互 TLS 身分驗證的憑證或私有金鑰。相反地，Envoy 會將它們存放在記憶體中。

## 設定網格端點
<a name="mtls-configure-mesh-endpoints"></a>

為您的網格端點設定交互 TLS 身分驗證，例如虛擬節點或閘道。這些端點提供憑證並指定信任的授權單位。

若要這樣做，您需要同時為用戶端和伺服器佈建 X.509 憑證，並在 TLS 終止和 TLS 起始的驗證內容中明確定義信任的授權憑證。

**網格內部的信任**  
伺服器端憑證是在虛擬節點接聽程式 (TLS 終止） 中設定，而用戶端憑證是在虛擬節點服務後端 (TLS 起始） 中設定。作為此組態的替代方案，您可以為虛擬節點的所有服務後端定義預設用戶端政策，然後，如有需要，您可以針對特定後端覆寫此政策。虛擬閘道只能使用套用到其所有後端的預設用戶端政策進行設定。  
您可以為兩個網格的虛擬閘道上的傳入流量啟用交互 TLS 身分驗證，藉此設定跨不同網格的信任。

**在網格外部的信任**  
在虛擬閘道接聽程式中指定伺服器端憑證以進行 TLS 終止。設定與虛擬閘道通訊的外部服務，以呈現用戶端憑證。憑證應衍生自伺服器端憑證在 Virtual Gateway 接聽程式上用於 TLS 起始的相同憑證授權單位 (CAs) 之一。

## 將服務遷移至交互 TLS 身分驗證
<a name="mtls-migrating-services"></a>

將 App Mesh 中的現有服務遷移至交互 TLS 身分驗證時，請遵循這些準則來維持連線。

**遷移透過純文字通訊的服務**

1. 在伺服器端點上啟用 TLS 組態的`PERMISSIVE`模式。此模式允許純文字流量連線到端點。

1. 在伺服器上設定交互 TLS 身分驗證，指定伺服器憑證、信任鏈，以及選擇性的信任 SANs。

1. 確認通訊是透過 TLS 連線進行。

1. 在用戶端上設定交互 TLS 身分驗證，指定用戶端憑證、信任鏈，以及選擇性的信任 SANs。

1. 在伺服器上啟用 TLS 組態的`STRICT`模式。

**遷移透過 TLS 通訊的服務**

1. 在用戶端上設定交互 TLS 設定，指定用戶端憑證和選用的信任 SANs。在後端伺服器請求用戶端憑證之前，用戶端憑證不會傳送至其後端。

1. 在伺服器上設定交互 TLS 設定，指定信任鏈和選擇性信任SANs。因此，您的伺服器會請求用戶端憑證。

## 驗證交互 TLS 身分驗證
<a name="mtls-verification"></a>

您可以參考 [Transport Layer Security：驗證加密](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html#verify-encryption)文件，以查看 Envoy 如何準確發出 TLS 相關統計資料。對於交互 TLS 身分驗證，您應該檢查下列統計資料：
+ `ssl.handshake`
+ `ssl.no_certificate`
+ `ssl.fail_verify_no_cert`
+ `ssl.fail_verify_san`

以下兩個統計資料範例一起顯示，成功終止虛擬節點的 TLS 連線都來自提供憑證的用戶端。

```
listener.0.0.0.0_15000.ssl.handshake: 3
```

```
listener.0.0.0.0_15000.ssl.no_certificate: 0
```

下一個統計資料範例顯示從虛擬用戶端節點 （或閘道） 到後端虛擬節點的連線失敗。伺服器憑證中顯示的主體別名 (SAN) 不符合用戶端信任的任何 SANs。

```
cluster.cds_egress_my-mesh_my-backend-node_http_9080.ssl.fail_verify_san: 5
```

## App Mesh 交互 TLS 身分驗證演練
<a name="mtls-walkthrough"></a>
+  [相互 TLS 身分驗證演練](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-mutual-tls-file-provided)：此演練說明如何使用 App Mesh CLI 建立具有相互 TLS 身分驗證的顏色應用程式。
+  [Amazon EKS 交互 TLS SDS 型演練](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-mtls-sds-based)：此演練說明如何透過 Amazon EKS 和 SPIFFE 執行期環境 (SPIRE) 使用交互 TLS SDS 型身分驗證。
+  [Amazon EKS 交互 TLS 檔案型演練](https://github.com/aws/aws-app-mesh-examples/tree/main/walkthroughs/howto-k8s-mtls-file-based)：此演練說明如何搭配 Amazon EKS 和 SPIFFE 執行期環境 (SPIRE) 使用交互 TLS 檔案型身分驗證。

# AWS App Mesh 如何使用 IAM
<a name="security-iam"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

AWS Identity and Access Management (IAM) 是一種 AWS 服務 ，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可控制誰可以*進行身分驗證* （登入） 和*授權* （具有許可），以使用 App Mesh 資源。IAM 是您可以免費使用 AWS 服務 的 。

**Topics**
+ [目標對象](#security_iam_audience)
+ [使用身分驗證](#security_iam_authentication)
+ [使用政策管理存取權](#security_iam_access-manage)
+ [AWS App Mesh 如何使用 IAM](security_iam_service-with-iam.md)
+ [AWS App Mesh 身分型政策範例](security_iam_id-based-policy-examples.md)
+ [AWS App Mesh 的 受管政策](security-iam-awsmanpol.md)
+ [使用 App Mesh 的服務連結角色](using-service-linked-roles.md)
+ [Envoy Proxy 授權](proxy-authorization.md)
+ [對 AWS App Mesh 身分和存取進行故障診斷](security_iam_troubleshoot.md)

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

使用方式 AWS Identity and Access Management (IAM) 會根據您的角色而有所不同：
+ **服務使用者** — 若無法存取某些功能，請向管理員申請所需許可 (請參閱 [對 AWS App Mesh 身分和存取進行故障診斷](security_iam_troubleshoot.md))
+ **服務管理員** — 負責設定使用者存取權並提交相關許可請求 (請參閱 [AWS App Mesh 如何使用 IAM](security_iam_service-with-iam.md))
+ **IAM 管理員** — 撰寫政策以管理存取控制 (請參閱 [AWS App Mesh 身分型政策範例](security_iam_id-based-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)。

# AWS App Mesh 如何使用 IAM
<a name="security_iam_service-with-iam"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

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

**Topics**
+ [App Mesh 身分型政策](#security_iam_service-with-iam-id-based-policies)
+ [App Mesh 資源型政策](#security_iam_service-with-iam-resource-based-policies)
+ [以 App Mesh 標籤為基礎的授權](#security_iam_service-with-iam-tags)
+ [App Mesh IAM 角色](#security_iam_service-with-iam-roles)

## App Mesh 身分型政策
<a name="security_iam_service-with-iam-id-based-policies"></a>

使用 IAM 身分型政策，您可以指定允許或拒絕的動作和資源，以及在何種條件下允許或拒絕動作。App Mesh 支援特定動作、資源和條件索引鍵。若要了解您在 JSON 政策中使用的所有元素，請參閱 *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` 元素描述您可以用來允許或拒絕政策中存取的動作。政策會使用動作來授予執行相關聯動作的許可。

App Mesh 中的政策動作在動作之前使用下列字首：`appmesh:`。例如，若要授予某人使用 `appmesh:ListMeshes` API 操作列出帳戶中網格的許可，請在其政策中包含 `appmesh:ListMeshes`動作。政策陳述式必須包含 `Action` 或 `NotAction` 元素。

若要在單一陳述式中指定多個  動作，請用逗號分隔，如下所示。

```
"Action": [
      "appmesh:ListMeshes",
      "appmesh:ListVirtualNodes"
]
```

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

```
"Action": "appmesh:Describe*"
```



若要查看 App Mesh 動作清單，請參閱《*IAM 使用者指南*》中的 [定義的動作 AWS App Mesh](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsappmesh.html#awsappmesh-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": "*"
```



App Mesh `mesh` 資源具有下列 ARN。

```
arn:${Partition}:appmesh:${Region}:${Account}:mesh/${MeshName}
```

如需 ARNs 格式的詳細資訊，請參閱 [Amazon Resource Name (ARNs AWS 和服務命名空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

例如，若要在陳述式的區域*碼*區域中指定名為 的網格*應用程式*，請使用下列 ARN。

```
arn:aws:appmesh:Region-code:111122223333:mesh/apps
```

如需指定屬於特定帳戶的所有執行個體，請使用萬用字元 (\$1)。

```
"Resource": "arn:aws:appmesh:Region-code:111122223333:mesh/*"
```

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

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

許多 App Mesh API 動作涉及多個資源。例如， `CreateRoute`會建立具有虛擬節點目標的路由，因此 IAM 使用者必須具有使用路由和虛擬節點的許可。若要在單一陳述式中指定多項資源，請使用逗號分隔 ARN。

```
"Resource": [
      "arn:aws:appmesh:Region-code:111122223333:mesh/apps/virtualRouter/serviceB/route/*",
      "arn:aws:appmesh:Region-code:111122223333:mesh/apps/virtualNode/serviceB"
]
```

若要查看 App Mesh 資源類型及其 ARNs的清單，請參閱《*IAM 使用者指南*》中的 [定義的資源 AWS App Mesh](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsappmesh.html#awsappmesh-resources-for-iam-policies)。若要了解您可以使用哪些動作指定每個資源的 ARN，請參閱 [AWS App Mesh定義的動作](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsappmesh.html#awsappmesh-actions-as-permissions)。

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

App Mesh 支援使用一些全域條件金鑰。若要查看 AWS 全域條件金鑰，請參閱 *IAM 使用者指南*中的 [AWS 全域條件內容金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)。若要查看 App Mesh 支援的全域條件金鑰清單，請參閱《*IAM 使用者指南*》中的 [的條件金鑰 AWS App Mesh](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsappmesh.html#awsappmesh-policy-keys)。若要了解您可以使用哪些動作和資源搭配條件索引鍵，請參閱[動作定義者 AWS App Mesh](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsappmesh.html#awsappmesh-actions-as-permissions)。

### 範例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



若要檢視 App Mesh 身分型政策的範例，請參閱 [AWS App Mesh 身分型政策範例](security_iam_id-based-policy-examples.md)。

## App Mesh 資源型政策
<a name="security_iam_service-with-iam-resource-based-policies"></a>

App Mesh 不支援以資源為基礎的政策。不過，如果您使用 AWS Resource Access Manager (AWS RAM) 服務跨 AWS 服務共用網格，則服務會將資源型政策套用至您的網格 AWS RAM 。如需詳細資訊，請參閱[授予網格的許可](sharing.md#sharing-permissions-resource)。

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

您可以將標籤連接至 App Mesh 資源，或在請求中將標籤傳遞至 App Mesh。如需根據標籤控制存取，請使用 `appmesh:ResourceTag/key-name`、`aws:RequestTag/key-name` 或 `aws:TagKeys` 條件索引鍵，在政策的[條件元素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)中，提供標籤資訊。如需標記 App Mesh 資源的詳細資訊，請參閱[標記 AWS 資源](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)。

若要檢視身分型政策範例，以根據該資源上的標籤來限制存取資源，請參閱 [建立具有限制標籤的 App Mesh 網格](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-view-widget-tags)。

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

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

### 搭配 App Mesh 使用臨時登入資料
<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 操作來取得臨時安全登入資料。

App Mesh 支援使用臨時登入資料。

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

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

App Mesh 支援服務連結角色。如需建立或管理 App Mesh 服務連結角色的詳細資訊，請參閱 [使用 App Mesh 的服務連結角色](using-service-linked-roles.md)。

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

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

App Mesh 不支援服務角色。

# AWS App Mesh 身分型政策範例
<a name="security_iam_id-based-policy-examples"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

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

若要了解如何使用這些範例 JSON 政策文件建立 IAM 身分型政策，請參閱《IAM 使用者指南》**中的[在 JSON 標籤上建立政策](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)
+ [使用 App Mesh 主控台](#security_iam_id-based-policy-examples-console)
+ [允許使用者檢視他們自己的許可](#security_iam_id-based-policy-examples-view-own-permissions)
+ [建立網格](#policy_example1)
+ [列出並描述所有網格](#policy_example2)
+ [建立具有限制標籤的 App Mesh 網格](#security_iam_id-based-policy-examples-view-widget-tags)

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

身分型政策會判斷您帳戶中的某個人員是否可以建立、存取或刪除 App Mesh 資源。這些動作可能會讓您的 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)。

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

若要存取 AWS App Mesh 主控台，您必須擁有一組最低許可。這些許可必須允許您列出和檢視 AWS 帳戶中 App Mesh 資源的詳細資訊。如果您建立比最基本必要許可更嚴格的身分型政策，則對於具有該政策的實體 (IAM 使用者或角色) 而言，主控台就無法如預期運作。您可以將 `[AWSAppMeshReadOnly](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSAppMeshReadOnly%24jsonEditor)`受管政策連接至使用者。如需詳細資訊，請參閱《IAM 使用者指南》**中的[新增許可到使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)。

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

## 允許使用者檢視他們自己的許可
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

此範例會示範如何建立政策，允許 IAM 使用者檢視附加到他們使用者身分的內嵌及受管政策。此政策包含在主控台或使用 或 AWS CLI AWS API 以程式設計方式完成此動作的許可。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

## 建立網格
<a name="policy_example1"></a>

此範例示範如何建立政策，允許使用者在任何區域中為帳戶建立網格。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "appmesh:CreateMesh",
            "Resource": "arn:aws:appmesh:*:123456789012:CreateMesh"
        }
    ]
}
```

------

## 列出並描述所有網格
<a name="policy_example2"></a>

此範例示範如何建立政策，以允許使用者唯讀存取列出和描述所有網格。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "appmesh:DescribeMesh",
                "appmesh:ListMeshes"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 建立具有限制標籤的 App Mesh 網格
<a name="security_iam_id-based-policy-examples-view-widget-tags"></a>

您可以在 IAM 政策中使用標籤，以控制哪些標籤可以在 IAM 請求中傳遞。您可以指定可從 IAM 使用者或角色新增、變更或移除哪些標籤鍵值對。此範例示範如何建立允許建立網格的政策，但前提是網格是使用名為 *teamName* 的標籤建立，且值為 *booksTeam*。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "appmesh:CreateMesh",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/teamName": "booksTeam"
                }
            }
        }
    ]
}
```

------

您可以將此政策連接到您帳戶中的 IAM 使用者。如果使用者嘗試建立網格，則網格必須包含名為 的標籤`teamName`和值 `booksTeam`。如果網格不包含此標籤和值，則嘗試建立網格會失敗。如需詳細資訊，請參閱*《IAM 使用者指南》*中的 [IAM JSON 政策元素：條件](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)。

# AWS App Mesh 的 受管政策
<a name="security-iam-awsmanpol"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

 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 受管政策：AWSAppMeshServiceRolePolicy
<a name="security-iam-awsmanpol-AWSAppMeshServiceRolePolicy"></a>

您可以將 `AWSAppMeshServiceRolePolicy` 連接到 IAM 實體。啟用存取使用或管理的 AWS 服務和資源 AWS App Mesh。

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

如需 許可詳細資訊的詳細資訊`AWSAppMeshServiceRolePolicy`，請參閱 [App Mesh 的服務連結角色許可](https://docs.aws.amazon.com/app-mesh/latest/userguide/using-service-linked-roles.html#slr-permissions)。

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

您可以將 `AWSAppMeshEnvoyAccess` 連接到 IAM 實體。用於存取虛擬節點組態的 App Mesh Envoy 政策。

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

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

您可以將 `AWSAppMeshFullAccess` 連接到 IAM 實體。提供 AWS App Mesh APIs和 的完整存取權 AWS 管理主控台。

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

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

您可以將 `AWSAppMeshPreviewEnvoyAccess` 連接到 IAM 實體。用於存取虛擬節點組態的 App Mesh Preview Envoy 政策。

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

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

您可以將 `AWSAppMeshPreviewServiceRolePolicy` 連接到 IAM 實體。啟用存取使用或管理的 AWS 服務和資源 AWS App Mesh。

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

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

您可以將 `AWSAppMeshReadOnly` 連接到 IAM 實體。提供 API AWS App Mesh APIs唯讀存取權 AWS 管理主控台。

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

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

檢視自此服務開始追蹤這些變更 AWS App Mesh 以來， AWS 受管政策更新的詳細資訊。如需有關此頁面變更的自動提醒，請訂閱 AWS App Mesh 文件歷史記錄頁面上的 RSS 摘要。


| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  [AWSAppMeshFullAccess](#security-iam-awsmanpol-AWSAppMeshFullAccess) – 已更新政策。  |  更新`AWSAppMeshFullAccess`以允許存取 `TagResource`和 `UntagResource`APIs。  | 2024 年 4 月 24 日 | 
|  [AWSAppMeshServiceRolePolicy](#security-iam-awsmanpol-AWSAppMeshServiceRolePolicy)、[AWSServiceRoleForAppMesh](https://docs.aws.amazon.com/app-mesh/latest/userguide/using-service-linked-roles.html#slr-permissions) – 已更新政策。  |  已更新 `AWSServiceRoleForAppMesh`和 `AWSAppMeshServiceRolePolicy` 以允許存取 AWS Cloud Map `DiscoverInstancesRevision` API。  | 2023 年 10 月 12 日 | 

若要提供存取權，請新增權限至您的使用者、群組或角色：
+ 中的使用者和群組 AWS IAM Identity Center：

  建立權限合集。請按照《*AWS IAM Identity Center 使用者指南*》中的[建立權限合集](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)說明進行操作。
+ 透過身分提供者在 IAM 中管理的使用者：

  建立聯合身分的角色。遵循《*IAM 使用者指南*》的[為第三方身分提供者 (聯合) 建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html)中的指示。
+ IAM 使用者：
  + 建立您的使用者可擔任的角色。請按照《*IAM 使用者指南*》的[為 IAM 使用者建立角色](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html)中的指示。
  + (不建議) 將政策直接附加至使用者，或將使用者新增至使用者群組。請遵循《*IAM 使用者指南*》的[新增許可到使用者 (主控台)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) 中的指示。

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

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

AWS App Mesh use 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)。服務連結角色是直接連結至 App Mesh 的唯一 IAM 角色類型。服務連結角色由 App Mesh 預先定義，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

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

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

如需關於支援服務連結角色的其他服務的資訊，請參閱[可搭配 IAM 運作的AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並尋找 **Service-Linked Role** (服務連結角色) 欄顯示為 **Yes** (是) 的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

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

App Mesh 使用名為 **AWSServiceRoleForAppMesh** 的服務連結角色 – 此角色允許 App Mesh 代表您呼叫 AWS 服務。

AWSServiceRoleForAppMesh 服務連結角色信任`appmesh.amazonaws.com`服務擔任該角色。

**許可詳細資訊**
+ `servicediscovery:DiscoverInstances` ‐ 允許 App Mesh AWS 完成所有資源的動作。
+ `servicediscovery:DiscoverInstancesRevision` ‐ 允許 App Mesh 完成所有 AWS 資源的動作。

### AWSServiceRoleForAppMesh
<a name="service-linked-role-permissions-AWSServiceRoleForAppMesh.details"></a>

此政策包含以下許可：

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

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [
		{
			"Sid": "CloudMapServiceDiscovery",
			"Effect": "Allow",
			"Action": [
				"servicediscovery:DiscoverInstances",
				"servicediscovery:DiscoverInstancesRevision"
			],
			"Resource": "*"
		},
		{
			"Sid": "ACMCertificateVerification",
			"Effect": "Allow",
			"Action": [
				"acm:DescribeCertificate"
			],
			"Resource": "*"
		}
	]
}
```

------

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

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

如果您在 、 AWS 管理主控台 AWS CLI或 AWS API 中於 2019 年 6 月 5 日之後建立網格，App Mesh 會為您建立服務連結角色。若要為您建立服務連結角色，您用來建立網格的 IAM 帳戶必須已連接 IAM [https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSAppMeshFullAccess%24jsonEditor](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSAppMeshFullAccess%24jsonEditor) 政策，或已連接包含 `iam:CreateServiceLinkedRole` 許可的政策。若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您建立網格時，App Mesh 會再次為您建立服務連結角色。如果您的帳戶只包含 2019 年 6 月 5 日之前建立的網格，而且您想要搭配這些網格使用服務連結角色，則可以使用 IAM 主控台建立角色。

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

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

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

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

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

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

**刪除 AWSServiceRoleForAppMesh 所使用的 App Mesh 資源**

1. 刪除為網格中的所有路由器定義的所有[路由](routes.md)。

1. 刪除網格中的所有[虛擬路由器](virtual_routers.md)。

1. 刪除網格中的所有[虛擬服務](virtual_services.md)。

1. 刪除網格中的所有[虛擬節點](virtual_nodes.md)。

1. 刪除[網格](meshes.md)。

完成您帳戶中所有網格的先前步驟。

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

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

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

App Mesh 支援在所有提供服務的區域中使用服務連結角色。如需詳細資訊，請參閱 [App Mesh 端點和配額](https://docs.aws.amazon.com/general/latest/gr/appmesh.html)。

# Envoy Proxy 授權
<a name="proxy-authorization"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

Proxy 授權會授權[在 ](envoy.md)Amazon ECS 任務、在 Amazon EKS 上執行的 Kubernetes Pod 或在 Amazon EC2 執行個體上執行的 Envoy 代理，從 App Mesh Envoy Management Service 讀取一或多個網格端點的組態。對於已在 04/26/2021 之前將 Envoys 連接到其 App Mesh 端點的客戶帳戶，使用 [Transport Layer Security (TLS)](https://docs.aws.amazon.com/app-mesh/latest/userguide/tls.html) 的虛擬節點和虛擬閘道 （有或沒有 TLS) 需要代理授權。對於想要在 04/26/2021 之後將 Envoys 連線至其 App Mesh 端點的客戶帳戶，所有 App Mesh 功能都需要代理授權。建議所有客戶帳戶啟用所有虛擬節點的代理授權，即使它們不使用 TLS，也能使用 IAM 對特定資源進行授權，獲得安全且一致的體驗。Proxy 授權需要在 IAM 政策中指定 `appmesh:StreamAggregatedResources`許可。政策必須連接到 IAM 角色，且該 IAM 角色必須連接到您託管代理的運算資源。

## 建立 IAM 政策
<a name="create-iam-policy"></a>

如果您希望服務網格中的所有網格端點能夠讀取所有網格端點的組態，請跳至 [建立 IAM 角色](#create-iam-role)。如果您想要限制個別網格端點可從中讀取組態的網格端點，則需要建立一或多個 IAM 政策。建議僅將組態可從 讀取的網格端點限制為在特定運算資源上執行的 Envoy 代理。建立 IAM 政策並將 `appmesh:StreamAggregatedResources`許可新增至政策。下列範例政策允許在服務網格中`serviceBv2`讀取名為 `serviceBv1`和 的虛擬節點組態。無法讀取服務網格中定義的任何其他虛擬節點的組態。如需建立或編輯 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_manage-edit.html)。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "appmesh:StreamAggregatedResources",
            "Resource": [
                "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv1",
                "arn:aws:appmesh:us-east-1:123456789012:mesh/app1/virtualNode/serviceBv2"
            ]
        }
    ]
}
```

------

您可以建立多個政策，每個政策都會限制對不同網格端點的存取。

## 建立 IAM 角色
<a name="create-iam-role"></a>

如果您希望服務網格中的所有網格端點能夠讀取所有網格端點的組態，則只需要建立一個 IAM 角色。如果您想要限制個別網格端點可從中讀取組態的網格端點，則需要為您在上一個步驟中建立的每個政策建立角色。完成代理執行所在的運算資源說明。
+ **Amazon EKS** – 如果您想要使用單一角色，則可以使用建立叢集時建立並指派給工作者節點的現有角色。若要使用多個角色，您的叢集必須符合在[叢集上啟用服務帳戶的 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html)中定義的要求。建立 IAM 角色，並將角色與 Kubernetes 服務帳戶建立關聯。如需詳細資訊，請參閱[為您的服務帳戶建立 IAM 角色和政策](https://docs.aws.amazon.com/eks/latest/userguide/create-service-account-iam-policy-and-role.html)，以及[為您的服務帳戶指定 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html)。
+ **Amazon ECS** – 選取**AWS 服務，**選取 **Elastic Container Service**，然後在建立 IAM 角色時選取 **Elastic Container Service 任務**使用案例。
+ **Amazon EC2** – 選取**AWS 服務，**選取 **EC2**，然後在建立 IAM 角色時選取 **EC2** 使用案例。無論您直接在 Amazon EC2 執行個體或執行個體上執行的 Kubernetes 上託管代理，這都適用。

如需如何建立 IAM 角色的詳細資訊，請參閱[為 AWS 服務建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console)。

## 連接 IAM 政策
<a name="attach-iam-policy"></a>

如果您希望服務網格中的所有網格端點能夠讀取所有網格端點的組態，請將 `[AWSAppMeshEnvoyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess%24jsonEditor)`受管 IAM 政策連接至您在上一個步驟中建立的 IAM 角色。如果您想要限制個別網格端點可從中讀取組態的網格端點，請將您建立的每個政策連接至您建立的每個角色。如需將自訂或受管 IAM 政策連接至 IAM 角色的詳細資訊，請參閱[新增 IAM 身分許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console)。

## 連接 IAM 角色
<a name="attach-role"></a>

將每個 IAM 角色連接到適當的運算資源：
+ **Amazon EKS** – 如果您將政策連接到連接到工作者節點的角色，則可以略過此步驟。如果您建立了單獨的角色，請將每個角色指派給單獨的 Kubernetes 服務帳戶，並將每個服務帳戶指派給包含 Envoy 代理的個別 Kubernetes Pod 部署規格。如需詳細資訊，請參閱《*Amazon EKS 使用者指南*》中的[為您的服務帳戶指定 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html)，以及《Kubernetes 文件》中的[設定 Pod 的服務帳戶](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/)。
+ **Amazon ECS** – 將 Amazon ECS 任務角色連接至包含 Envoy 代理的任務定義。任務可以使用 EC2 或 Fargate 啟動類型部署。如需如何建立 Amazon ECS 任務角色並將其連接至任務的詳細資訊，請參閱[為您的任務指定 IAM 角色](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#create_task_iam_policy_and_role)。
+ **Amazon EC2** – IAM 角色必須連接到託管 Envoy 代理的 Amazon EC2 執行個體。如需如何將角色連接至 Amazon EC2 執行個體的詳細資訊，請參閱[我已建立 IAM 角色，現在我想要將其指派給 EC2 執行個體](https://aws.amazon.com/premiumsupport/knowledge-center/assign-iam-role-ec2-instance)。

## 確認許可
<a name="confirm-permission"></a>

選取其中一個運算服務名稱，確認將`appmesh:StreamAggregatedResources`許可指派給您託管代理的運算資源。

------
#### [ Amazon EKS ]

自訂政策可指派給指派給工作者節點、個別 Pod 或兩者的角色。不過，建議您只在個別 Pod 指派政策，以便將個別 Pod 的存取限制在個別網格端點。如果政策連接到指派給工作者節點的角色，請選取 **Amazon EC2** 索引標籤，然後完成工作者節點執行個體在該處找到的步驟。若要判斷指派給 Kubernetes Pod 的 IAM 角色，請完成下列步驟。

1. 檢視 Kubernetes 部署的詳細資訊，其中包含您要確認已指派 Kubernetes 服務帳戶的 Pod。下列命令會檢視名為 *my-deployment* 之部署的詳細資訊。

   ```
   kubectl describe deployment my-deployment
   ```

   在傳回的輸出中，記下 右側的值`Service Account:`。如果`Service Account:`沒有以 開頭的行，則目前不會將自訂 Kubernetes 服務帳戶指派給部署。您需要指派一個。如需詳細資訊，請參閱 Kubernetes 文件中的[設定 Pod 的服務帳戶](https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/)。

1. 檢視上一個步驟中傳回之服務帳戶的詳細資訊。下列命令會檢視名為 *my-service-account* 之服務帳戶的詳細資訊。

   ```
   kubectl describe serviceaccount my-service-account
   ```

   如果 Kubernetes 服務帳戶與 AWS Identity and Access Management 角色相關聯，傳回的其中一個行看起來會與下列範例類似。

   ```
   Annotations:         eks.amazonaws.com/role-arn=arn:aws:iam::123456789012:role/my-deployment
   ```

   在上述範例中， `my-deployment` 是服務帳戶相關聯的 IAM 角色名稱。如果服務帳戶輸出不包含類似上述範例的行，則 Kubernetes 服務帳戶不會與帳戶建立關聯，而且您需要將其與 AWS Identity and Access Management 帳戶建立關聯。如需詳細資訊，請參閱[為您的服務帳戶指定 IAM 角色](https://docs.aws.amazon.com/eks/latest/userguide/specify-service-account-role.html)。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在左側導覽中，選取**角色**。選取您在上一個步驟中記下的 IAM 角色名稱。

1. 確認您先前建立的自訂政策或 `[AWSAppMeshEnvoyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess%24jsonEditor)`受管政策已列出。如果未連接任何政策，請將 [IAM 政策連接至](#attach-iam-policy) IAM 角色。如果您想要連接自訂 IAM 政策，但沒有，則需要[建立具有所需許可的自訂 IAM 政策](#create-iam-policy)。如果連接自訂 IAM 政策，請選取政策並確認其包含 `"Action": "appmesh:StreamAggregatedResources"`。如果沒有，則需要將該許可新增至您的自訂 IAM 政策。您也可以確認已列出特定網格端點的適當 Amazon Resource Name (ARN)。如果未列出 ARNs，您可以編輯政策來新增、移除或變更列出的 ARNs。如需詳細資訊，請參閱[編輯 IAM 政策和](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) [建立 IAM 政策](#create-iam-policy)。

1. 針對包含 Envoy 代理的每個 Kubernetes Pod 重複上述步驟。

------
#### [ Amazon ECS ]

1. 從 Amazon ECS 主控台中，選擇**任務定義**。

1. 選取您的 Amazon ECS 任務。

1. 在**任務定義名稱**頁面上，選取您的任務定義。

1. 在**任務定義**頁面上，選取任務角色右側的 IAM **角色**名稱連結。如果未列出 IAM 角色，則您需要[建立 IAM 角色](#create-iam-role)，並透過[更新任務定義將其連接至您的任務。](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/update-task-definition.html)

1. 在**摘要**頁面**的許可**索引標籤中，確認先前建立的自訂政策或`[AWSAppMeshEnvoyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess%24jsonEditor)`受管政策已列出。如果未連接任何政策，請將 [IAM 政策連接至](#attach-iam-policy) IAM 角色。如果您想要連接自訂 IAM 政策，但沒有，則需要[建立自訂 IAM 政策](#create-iam-policy)。如果連接自訂 IAM 政策，請選取政策並確認其包含 `"Action": "appmesh:StreamAggregatedResources"`。如果沒有，則需要將該許可新增至您的自訂 IAM 政策。您也可以確認已列出特定網格端點的適當 Amazon Resource Name (ARN)。如果未列出 ARNs，您可以編輯政策來新增、移除或變更列出的 ARNs。如需詳細資訊，請參閱[編輯 IAM 政策和](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-edit.html) [建立 IAM 政策](#create-iam-policy)。

1. 針對包含 Envoy 代理的每個任務定義重複上述步驟。

------
#### [ Amazon EC2 ]

1. 在 Amazon EC2 主控台中，選取左側導覽中的**執行個體**。

1. 選取託管 Envoy 代理的其中一個執行個體。

1. 在**描述**索引標籤中，選取 IAM 角色右側的 **IAM 角色**名稱連結。如果未列出 IAM 角色，則需要[建立 IAM 角色](#create-iam-role)。

1. 在**摘要**頁面**的許可**索引標籤中，確認先前建立的自訂政策或`[AWSAppMeshEnvoyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSAppMeshEnvoyAccess%24jsonEditor)`受管政策已列出。如果未連接任何政策，[請將 IAM 政策連接至](#attach-iam-policy) IAM 角色。如果您想要連接自訂 IAM 政策，但沒有，則需要[建立自訂 IAM 政策](#create-iam-policy)。如果連接自訂 IAM 政策，請選取政策並確認其包含 `"Action": "appmesh:StreamAggregatedResources"`。如果沒有，則需要將該許可新增至您的自訂 IAM 政策。您也可以確認已列出特定網格端點的適當 Amazon Resource Name (ARN)。如果未列出 ARNs，您可以編輯政策來新增、移除或變更列出的 ARNs。如需詳細資訊，請參閱[編輯 IAM 政策和](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html) [建立 IAM 政策](#create-iam-policy)。

1. 為您託管 Envoy 代理的每個執行個體重複上述步驟。

------

# 對 AWS App Mesh 身分和存取進行故障診斷
<a name="security_iam_troubleshoot"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

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

**Topics**
+ [我無權在 App Mesh 中執行動作](#security_iam_troubleshoot-no-permissions)
+ [我想要允許 AWS 帳戶外的人員存取我的 App Mesh 資源](#security_iam_troubleshoot-cross-account-access)

## 我無權在 App Mesh 中執行動作
<a name="security_iam_troubleshoot-no-permissions"></a>

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

當 `mateojackson` IAM 使用者嘗試使用主控台在名為 my-mesh 的網格中建立名為 *my-virtual-node* 的虛擬節點，但沒有 `appmesh:CreateVirtualNode`許可時，會發生下列錯誤。 **

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: appmesh:CreateVirtualNode on resource: arn:aws:appmesh:us-east-1:123456789012:mesh/my-mesh/virtualNode/my-virtual-node
```

在此情況下，Mateo 會要求管理員更新其政策，以允許他使用 `appmesh:CreateVirtualNode`動作建立虛擬節點。

**注意**  
由於虛擬節點是在網格內建立，Mateo 的帳戶也需要 `appmesh:DescribeMesh`和 `appmesh:ListMeshes`動作，才能在主控台中建立虛擬節點。

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

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

如需進一步了解，請參閱以下內容：
+ 若要了解 App Mesh 是否支援這些功能，請參閱 [AWS App Mesh 如何使用 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 App Mesh API 呼叫 AWS CloudTrail
<a name="logging-using-cloudtrail"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

AWS App Mesh 已與 整合[AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)，此服務提供使用者、角色或 所採取動作的記錄 AWS 服務。CloudTrail 會將 App Mesh 的所有 API 呼叫擷取為事件。擷取的呼叫包括來自 App Mesh 主控台的呼叫，以及對 App Mesh API 操作的程式碼呼叫。您可以使用 CloudTrail 所收集的資訊，判斷對 App Mesh 提出的請求、提出請求的 IP 地址、提出請求的時間，以及其他詳細資訊。

每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項：
+ 該請求是使用根使用者還是使用者憑證提出。
+ 請求是否代表 IAM Identity Center 使用者提出。
+ 提出該請求時，是否使用了特定角色或聯合身分使用者的暫時安全憑證。
+ 該請求是否由另一項 AWS 服務服務提出。

當您建立帳戶 AWS 帳戶 時CloudTrail 會在 中處於作用中狀態，而且您會自動存取 CloudTrail **事件歷史記錄**。CloudTrail **事件歷史記錄**為 AWS 區域中過去 90 天記錄的管理事件，提供可檢視、可搜尋、可下載且不可變的記錄。如需詳細資訊，請參閱「AWS CloudTrail 使用者指南」**中的[使用 CloudTrail 事件歷史記錄](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)。檢視**事件歷史記錄**不會產生 CloudTrail 費用。

如需 AWS 帳戶 過去 90 天內持續記錄的事件，請建立線索或 [CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) 事件資料存放區。

**CloudTrail 追蹤**  
*線索*能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。使用 建立的所有線索 AWS 管理主控台 都是多區域。您可以使用 AWS CLI建立單一或多區域追蹤。建議您建立多區域追蹤，因為您擷取 AWS 區域 帳戶中所有 的活動。如果您建立單一區域追蹤，您只能檢視追蹤 AWS 區域中記錄的事件。如需追蹤的詳細資訊，請參閱《AWS CloudTrail 使用者指南》**中的[為您的 AWS 帳戶建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)和[為組織建立追蹤](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/creating-trail-organization.html)。  
您可以透過建立追蹤，免費將持續管理事件的一個複本從 CloudTrail 傳遞至您的 Amazon S3 儲存貯體，但這樣做會產生 Amazon S3 儲存費用。如需 CloudTrail 定價的詳細資訊，請參閱 [AWS CloudTrail 定價](https://aws.amazon.com/cloudtrail/pricing/)。如需 Amazon S3 定價的相關資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**CloudTrail Lake 事件資料存放區**  
*CloudTrail Lake* 讓您能夠對事件執行 SQL 型查詢。CloudTrail Lake 會將分列式 JSON 格式的現有事件轉換為 [Apache ORC](https://orc.apache.org/) 格式。ORC 是一種單欄式儲存格式，針對快速擷取資料進行了最佳化。系統會將事件彙總到*事件資料存放區*中，事件資料存放區是事件的不可變集合，其依據為您透過套用[進階事件選取器](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-concepts.html#adv-event-selectors)選取的條件。套用於事件資料存放區的選取器控制哪些事件持續存在並可供您查詢。如需 CloudTrail Lake 的詳細資訊，請參閱*AWS CloudTrail 《 使用者指南*》中的[使用 AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html)。  
CloudTrail Lake 事件資料存放區和查詢會產生費用。建立事件資料存放區時，您可以選擇要用於事件資料存放區的[定價選項](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake-manage-costs.html#cloudtrail-lake-manage-costs-pricing-option)。此定價選項將決定擷取和儲存事件的成本，以及事件資料存放區的預設和最長保留期。如需 CloudTrail 定價的詳細資訊，請參閱 [AWS CloudTrail 定價](https://aws.amazon.com/cloudtrail/pricing/)。

## CloudTrail 中的 App Mesh 管理事件
<a name="cloudtrail-management-events"></a>

[管理事件](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-management-events-with-cloudtrail.html#logging-management-events)提供有關在 資源上執行的管理操作的資訊 AWS 帳戶。這些也稱為控制平面操作。根據預設，CloudTrail 記錄管理事件。

AWS App Mesh 會將所有 App Mesh 控制平面操作記錄為管理事件。如需 App Mesh 記錄到 CloudTrail 的 AWS App Mesh 控制平面操作清單，請參閱 [AWS App Mesh API 參考](https://docs.aws.amazon.com/app-mesh/latest/APIReference/API_Operations.html)。

## App Mesh 事件範例
<a name="cloudtrail-event-examples"></a>

一個事件代表任何來源提出的單一請求，並包含請求 API 操作的相關資訊、操作的日期和時間、請求參數等。CloudTrail 日誌檔案不是公有 API 呼叫的已排序堆疊追蹤，因此事件不會以任何特定順序顯示。

以下範例顯示的是展示 `StreamAggregatedResources` 動作的 CloudTrail 日誌項目。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AKIAIOSFODNN7EXAMPLE:d060be4ac3244e05aca4e067bfe241f8",
        "arn": "arn:aws:sts::123456789012:assumed-role/Application-TaskIamRole-C20GBLBRLBXE/d060be4ac3244e05aca4e067bfe241f8",
        "accountId": "123456789012",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "invokedBy": "appmesh.amazonaws.com"
    },
    "eventTime": "2021-06-09T23:09:46Z",
    "eventSource": "appmesh.amazonaws.com",
    "eventName": "StreamAggregatedResources",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "appmesh.amazonaws.com",
    "userAgent": "appmesh.amazonaws.com",
    "eventID": "e3c6f4ce-EXAMPLE",
    "readOnly": false,
    "eventType": "AwsServiceEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "serviceEventDetails": {
        "connectionId": "e3c6f4ce-EXAMPLE",
        "nodeArn": "arn:aws:appmesh:us-west-2:123456789012:mesh/CloudTrail-Test/virtualNode/cloudtrail-test-vn",
        "eventStatus": "ConnectionEstablished",
        "failureReason": ""
    },
    "eventCategory": "Management"
}
```

如需有關 CloudTrail 記錄內容的資訊，請參閱《AWS CloudTrail 使用者指南》**中的 [CloudTrail record contents](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-record-contents.html)。

# 中的資料保護 AWS App Mesh
<a name="data-protection"></a>

**重要**  
支援終止通知：2026 年 9 月 30 日， AWS 將停止支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 中的資料保護 AWS App Mesh。如此模型所述， 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/)。

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

## 資料加密
<a name="data-encryption"></a>

您的資料在使用 App Mesh 時會加密。

### 靜態加密
<a name="encryption-at-rest"></a>

根據預設，您建立的 App Mesh 組態會靜態加密。

### 傳輸中加密
<a name="encryption-in-transit"></a>

App Mesh 服務端點使用 HTTPS 通訊協定。Envoy 代理與 App Mesh Envoy Management Service 之間的所有通訊都會加密。如果您需要針對 Envoy 代理與 App Mesh Envoy Management Service 之間的通訊進行符合 FIPS 的加密，則可以使用 Envoy 代理容器映像的 FIPS 變體。如需詳細資訊，請參閱[Envoy 影像](envoy.md)。

虛擬節點內容器之間的通訊不會加密，但此流量不會離開網路命名空間。

# 的合規驗證 AWS App Mesh
<a name="compliance"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

若要了解 是否 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/)。

# 中的基礎設施安全 AWS App Mesh
<a name="infrastructure-security"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

作為受管服務， AWS App Mesh 受到 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 呼叫，透過網路存取 App Mesh。使用者端必須支援下列專案：
+ Transport Layer Security (TLS)。我們需要 TLS 1.2 並建議使用 TLS 1.3。
+ 具備完美轉送私密(PFS)的密碼套件，例如 DHE (Ephemeral Diffie-Hellman)或 ECDHE (Elliptic Curve Ephemeral Diffie-Hellman)。現代系統(如 Java 7 和更新版本)大多會支援這些模式。

您可以將 App Mesh 設定為使用介面 VPC 端點，以改善 VPC 的安全狀態。如需詳細資訊，請參閱[App Mesh 介面 VPC 端點 (AWS PrivateLink)](vpc-endpoints.md)。

# App Mesh 介面 VPC 端點 (AWS PrivateLink)
<a name="vpc-endpoints"></a>

**重要**  
支援終止通知：2026 年 9 月 30 日， AWS 將停止支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

您可以將 App Mesh 設定為使用介面 VPC 端點，以改善 Amazon VPC 的安全狀態。介面端點採用 AWS PrivateLink 技術，這項技術可讓您使用私有 IP 地址私下存取 App Mesh APIs。PrivateLink 會將 Amazon VPC 和 App Mesh 之間的所有網路流量限制在 Amazon 網路。

您不需要 (但建議) 設定 PrivateLink。如需 PrivateLink 和介面 VPC 端點的詳細資訊，請參閱[透過 AWS PrivateLink 存取服務](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#what-is-privatelink)。

## App Mesh 介面 VPC 端點的考量事項
<a name="app-mesh-vpc-endpoint-considerations"></a>

設定 App Mesh 的介面 VPC 端點之前，請注意下列考量：
+ 如果您的 Amazon VPC 沒有網際網路閘道，且您的任務使用`awslogs`日誌驅動程式將日誌資訊傳送至 CloudWatch Logs，則必須為 CloudWatch Logs 建立介面 VPC 端點。如需詳細資訊，請參閱《Amazon CloudWatch Logs 使用者指南**》中的[使用 CloudWatch Events 搭配介面 VPC 端點](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/cloudwatch-logs-and-interface-VPC.html)。
+ VPC 端點不支援 AWS 跨區域請求。請確定您在計劃對 App Mesh 發出 API 呼叫的相同區域中建立端點。
+ 透過 Amazon Route 53，VPC 端點僅支援 Amazon 提供的 DNS。如果您想要使用自己的 DNS，您可以使用條件式 DNS 轉送。如需詳細資訊，請參閱*《Amazon VPC 使用者指南》*中的 [DHCP 選項集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。
+ 連接至 VPC 端點的安全群組必須允許連接埠 443 上來自 Amazon VPC 私有子網路的傳入連線。
**注意**  
Envoy 連線不支援透過將端點政策連接至 VPC 端點 （例如，使用服務名稱 `com.amazonaws.Region.appmesh-envoy-management`) 來控制對 App Mesh 的存取。

如需其他考量和限制，請參閱[界面端點可用區域考量](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-availability-zones)和[界面端點屬性和限制](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations)。

## 建立 App Mesh 的介面 VPC 端點
<a name="app-mesh-setting-up-vpc-create"></a>

若要建立 App Mesh 服務的介面 VPC 端點，請使用《*Amazon VPC 使用者指南*》中的[建立介面端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)程序。`com.amazonaws.Region.appmesh-envoy-management` 為您的 Envoy 代理指定服務名稱，以連線至 App Mesh 的公有 Envoy 管理服務，並為網格操作指定 `com.amazonaws.Region.appmesh` 。

**注意**  
*區域*代表 App Mesh 支援的 AWS 區域的區域識別符，例如`us-east-2`美國東部 （俄亥俄） 區域。

雖然您可以在支援 App Mesh 的任何區域中定義 App Mesh 的介面 VPC 端點，但您可能無法為每個區域中的所有可用區域定義端點。若要了解區域中介面 VPC 端點支援哪些可用區域，請使用 [describe-vpc-endpoint-services ](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-vpc-endpoint-services.html)命令或使用 AWS 管理主控台。例如，下列命令會傳回可用區域，您可以在美國東部 （俄亥俄） 區域內部署 App Mesh 介面 VPC 端點：

```
aws --region us-east-2 ec2 describe-vpc-endpoint-services --query 'ServiceDetails[?ServiceName==`com.amazonaws.us-east-2.appmesh-envoy-management`].AvailabilityZones[]'
```

```
aws --region us-east-2 ec2 describe-vpc-endpoint-services --query 'ServiceDetails[?ServiceName==`com.amazonaws.us-east-2.appmesh`].AvailabilityZones[]'
```

# 中的彈性 AWS App Mesh
<a name="disaster-recovery-resiliency"></a>

**重要**  
支援終止通知：2026 年 9 月 30 日， AWS 將停止支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

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

App Mesh 會在多個可用區域執行其控制平面執行個體，以確保高可用性。App Mesh 會自動偵測並取代運作狀態不佳的控制平面執行個體，並提供自動化版本升級和修補。

## 中的災難復原 AWS App Mesh
<a name="disaster-recovery"></a>

App Mesh 服務可管理客戶資料的備份。您不需要採取任何動作來管理備份。備份的資料會加密。

# 中的組態和漏洞分析 AWS App Mesh
<a name="configuration-vulnerability-analysis"></a>

**重要**  
支援終止通知：在 2026 年 9 月 30 日， AWS 將停止對 的支援 AWS App Mesh。2026 年 9 月 30 日之後，您將無法再存取 AWS App Mesh 主控台或 AWS App Mesh 資源。如需詳細資訊，請參閱此部落格文章[從 遷移 AWS App Mesh 至 Amazon ECS Service Connect](https://aws.amazon.com/blogs/containers/migrating-from-aws-app-mesh-to-amazon-ecs-service-connect)。

App Mesh 提供您使用微服務部署的受管 [Envoy 代理 Docker 容器映像](envoy.md)。App Mesh 可確保使用最新的漏洞和效能修補程式修補容器映像。App Mesh 會根據 App Mesh 功能集測試新的 Envoy 代理版本，然後再為您提供映像。

您必須更新微服務，才能使用更新的容器映像版本。以下是映像的最新版本。

```
840364872350.dkr.ecr.region-code.amazonaws.com/aws-appmesh-envoy:v1.34.13.0-prod
```