

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

# Amazon WorkSpaces 應用程式的安全性
<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/)中，第三方稽核人員會定期測試和驗證我們安全的有效性。如需適用於 WorkSpaces 應用程式之合規計劃的資訊，請參閱[AWS 合規計劃範圍內的服務](https://aws.amazon.com/compliance/services-in-scope/)。
+ **雲端的安全性** – 您的責任取決於您使用 AWS 的服務。您也必須對其他因素負責，包括資料的機密性、您公司的要求和適用法律和法規 

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

**Topics**
+ [Amazon WorkSpaces 應用程式中的資料保護](data-protection.md)
+ [Amazon WorkSpaces 應用程式的 Identity and Access Management](controlling-access.md)
+ [在 Amazon WorkSpaces 應用程式中記錄和監控](logging-monitoring-alerting.md)
+ [Amazon WorkSpaces 應用程式的合規驗證](compliance-validation.md)
+ [Amazon WorkSpaces 應用程式的彈性](disaster-recovery-resiliency.md)
+ [Amazon WorkSpaces 應用程式中的基礎設施安全性](infrastructure-security.md)
+ [Amazon WorkSpaces 應用程式中的安全群組](managing-network-security-groups.md)
+ [Amazon WorkSpaces 應用程式中的更新管理](update-management.md)
+ [Amazon WorkSpaces 應用程式跨服務混淆代理人預防](confused-deputy.md)
+ [Amazon WorkSpaces 應用程式的安全最佳實務](security-best-practices.md)

# Amazon WorkSpaces 應用程式中的資料保護
<a name="data-protection"></a>

 AWS [共同責任模型](https://aws.amazon.com/compliance/shared-responsibility-model/)適用於 Amazon WorkSpaces 應用程式中的資料保護。如此模型所述， 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 Identity and Access Management (IAM) 設定個別使用者。如此一來，每個使用者都只會獲得授予完成其任務所必須的許可。我們也建議您採用下列方式保護資料：
+ 每個帳戶均要使用多重要素驗證 (MFA)。
+ 使用 SSL/TLS 與 AWS 資源通訊。我們建議使用 TLS 1.2 版。
+ 使用 設定 API 和使用者活動記錄 AWS CloudTrail。
+ 使用 AWS 加密解決方案，以及 服務中的所有 AWS 預設安全控制。
+ 使用進階的受管安全服務 (例如 Amazon Macie)，協助探索和保護儲存在 Simple Storage Service (Amazon Simple Storage Service (Amazon S3)) 的個人資料。
+ 如果您在 AWS 透過命令列界面或 API 存取 時需要 FIPS 140-2 驗證的密碼編譯模組，請使用 FIPS 端點。如需有關 FIPS 和 FIPS 端點的詳細資訊，請參閱[聯邦資訊處理標準 (FIPS) 140-2 概觀](https://aws.amazon.com/compliance/fips/)。

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

**Topics**
+ [靜態加密](encryption-rest.md)
+ [傳輸中加密](encryption-transit.md)
+ [管理員控制項目](administrator-controls.md)
+ [應用程式存取權限](application-access.md)

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

WorkSpaces 應用程式機群執行個體本質上是暫時性的。使用者的串流工作階段完成後，基礎執行個體和相關的 Amazon Elastic Block Store (Amazon EBS) 磁碟區即會終止。此外，WorkSpaces 應用程式會定期回收未使用的執行個體以保持新鮮。

當您啟用[應用程式設定持久性](how-it-works-app-settings-persistence.md)時，[主資料夾](home-folders-admin.md)、[工作階段指令碼](enable-S3-bucket-storage-session-script-logs.md)或[用量會報告](enable-usage-reports.md)您的使用者，您的使用者產生並存放在 Amazon Simple Storage Service 儲存貯體中的資料會靜態加密。 AWS Key Management Service 是一種服務，結合安全、高可用性的硬體和軟體，以提供針對雲端擴展的金鑰管理系統。Amazon S3 會使用 [AWS 受管 CMK](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) 來加密您的 Amazon S3 物件資料。

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

下表提供資料在傳輸過程中如何加密的相關資訊。在適用的情況下，也會列出 WorkSpaces 應用程式的其他資料保護方法。


| 資料 | 網路路徑 | 保護方式 | 
| --- | --- | --- | 
|  Web 資產 此流量包括影像和 JavaScript 檔案等資產。  |  WorkSpaces 應用程式使用者與 WorkSpaces 應用程式之間  | 使用 TLS 1.2 加密 | 
| 像素和相關的串流流量 | WorkSpaces 應用程式使用者與 WorkSpaces 應用程式之間 |  使用 256 位元進階加密標準 (AES-256) 進行加密 使用 TLS 1.2 進行傳輸  | 
| API 流量 | WorkSpaces 應用程式使用者與 WorkSpaces 應用程式之間 |  使用 TLS 1.2 加密 系統會使用 SigV4 簽署建立連線的請求  | 
| 由使用者產生的應用程式設定與主資料夾資料 當應用程式設定持久性與主資料夾啟用時適用。  | WorkSpaces 應用程式使用者與 Amazon S3 之間 | 已使用 Amazon S3 SSL 端點加密 | 
| WorkSpaces 應用程式受管流量 |  WorkSpaces 應用程式串流執行個體與 之間： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/encryption-transit.html)  | 使用 TLS 1.2 加密 系統會在適用時使用 SigV4 簽署建立連線的請求 | 

# 管理員控制項目
<a name="administrator-controls"></a>

WorkSpaces 應用程式提供管理控制，您可以用來限制使用者在其本機電腦和 WorkSpaces 應用程式機群執行個體之間傳輸資料的方式。您可以在[建立或更新 WorkSpaces 應用程式堆疊](set-up-stacks-fleets-install.md)時限制或停用下列項目：
+ 剪貼簿/複製和貼上動作
+ 檔案上傳和下載，包括資料夾和磁碟機重新導向
+ 列印

建立 WorkSpaces 應用程式映像時，您可以指定哪些 USB 裝置可從適用於 Windows 的 WorkSpaces 應用程式用戶端重新導向至 WorkSpaces 應用程式機群執行個體。您指定的 USB 裝置將可在使用者的 WorkSpaces 應用程式串流工作階段期間使用。如需詳細資訊，請參閱[限定 USB 裝置以用於串流應用程式](qualify-usb-devices.md)。

# 應用程式存取權限
<a name="application-access"></a>

根據預設，WorkSpaces 應用程式可讓您在映像中指定的應用程式，在映像建置器和機群執行個體上啟動其他應用程式和可執行檔。這可確保與其他應用程式 (例如，啟動瀏覽器以導覽至產品網站的應用程式) 相依性的應用程式如預期般運作。請務必設定管理控制項目、安全性群組和其他安全性軟體，授予使用者存取資源和在本機電腦和機群執行個體之間傳輸資料所需的最低權限。

您可以使用應用程式控制軟體 (例如 [Microsoft AppLocker](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/applocker-overview)) 和政策來控制使用者可以執行的應用程式和檔案。應用程式控制軟體和政策可協助您控制使用者可在 WorkSpaces 應用程式映像建置器和機群執行個體上執行的可執行檔、指令碼、Windows 安裝程式檔案、動態連結程式庫和應用程式套件。

**注意**  
WorkSpaces 應用程式代理程式軟體依賴 Windows 命令提示字元和 Windows Powershell 來佈建串流執行個體。如果您選擇防止使用者啟動 Windows 命令提示字元或 Windows Powershell，則政策不得套用至 Windows NT AUTHORITY\$1SYSTEM 或系統管理員群組中的使用者。


| 規則類型 | Action | Windows 使用者或群組 | Name/Path | 條件 | 說明 | 
| --- | --- | --- | --- | --- | --- | 
| 可執行 | 允許 | NT AUTHORITY\$1System | \$1 | 路徑 | WorkSpaces 應用程式代理程式軟體的必要項目 | 
| 可執行 | 允許 | BUILTIN\$1Administrators | \$1 | 路徑 | WorkSpaces 應用程式代理程式軟體的必要項目 | 
| 可執行 | 允許 | 每個人 | %PROGRAMFILES%\$1nodejs\$1\$1 | 路徑 | WorkSpaces 應用程式代理程式軟體的必要項目 | 
| 可執行 | 允許 | 每個人 | %PROGRAMFILES%\$1NICE\$1\$1 | 路徑 | WorkSpaces 應用程式代理程式軟體的必要項目 | 
| 可執行 | 允許 | 每個人 | %PROGRAMFILES%\$1Amazon\$1\$1 | 路徑 | WorkSpaces 應用程式代理程式軟體的必要項目 | 
| 可執行 | 允許 | 每個人 | %PROGRAMFILES%\$1<default-browser>\$1\$1 | 路徑 | 使用 Google Drive 或 Microsoft OneDrive for Business 等持久性儲存解決方案時，WorkSpaces 應用程式代理程式軟體需要。使用 WorkSpaces 應用程式主資料夾時，不需要此例外狀況。 | 

# Amazon WorkSpaces 應用程式的 Identity and Access Management
<a name="controlling-access"></a>

您的安全登入資料會將您識別為 中的 服務， AWS 並授予您無限使用 AWS 資源，例如 WorkSpaces 應用程式資源。您可以使用 WorkSpaces 應用程式和 AWS Identity and Access Management (IAM) 的功能，允許其他使用者、服務和應用程式使用您的 WorkSpaces 應用程式資源，而無需共用您的安全登入資料。

您可以使用 IAM 來控制其他使用者如何使用 Amazon Web Services 帳戶中的資源，而且您可以使用安全群組來控制對 WorkSpaces 應用程式串流執行個體的存取。您可以允許完全使用或有限地使用 WorkSpaces 應用程式資源。

**Topics**
+ [網路存取您的串流執行個體](network-access-to-streaming-instances.md)
+ [使用 AWS 受管政策和連結角色來管理管理員對 WorkSpaces 應用程式資源的存取](controlling-administrator-access-with-policies-roles.md)
+ [使用 IAM 政策管理對應用程式自動擴展的管理員存取](autoscaling-iam-policy.md)
+ [使用 IAM 政策來管理管理員對主資料夾和應用程式設定持續性之 Amazon S3 儲存貯體的存取權](s3-iam-policy.md)
+ [使用 IAM 角色將許可授予在 WorkSpaces 應用程式串流執行個體上執行的應用程式和指令碼](using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.md)
+ [SELinux on Red Hat Enterprise Linux 和 Rocky Linux](selinux.md)
+ [Amazon WorkSpaces 應用程式中以 Cookie 為基礎的身分驗證](cookie-auth.md)

# 網路存取您的串流執行個體
<a name="network-access-to-streaming-instances"></a>

安全群組會做為有狀態的防火牆，來控制可連線至您串流執行個體的流量。當您啟動 WorkSpaces 應用程式串流執行個體時，請將其指派給一或多個安全群組。接著須於每個安全群組新增規則，藉此控制執行個體的流量。您可以隨時修改安全群組的規則。新規則會自動套用至安全群組指派所屬的所有執行個體。

如需詳細資訊，請參閱[Amazon WorkSpaces 應用程式中的安全群組](managing-network-security-groups.md)。

# 使用 AWS 受管政策和連結角色來管理管理員對 WorkSpaces 應用程式資源的存取
<a name="controlling-administrator-access-with-policies-roles"></a>

根據預設，IAM 使用者沒有建立或修改 WorkSpaces 應用程式資源，或使用 WorkSpaces 應用程式 API 執行任務所需的許可。這表示這些使用者無法在 WorkSpaces 應用程式主控台或使用 WorkSpaces 應用程式 AWS CLI 命令來執行這些動作。如果要讓 IAM 使用者建立或修改資源以及執行任務，請為需要這些許可的 IAM 使用者或群組連接 IAM 政策。

將政策連接到使用者、使用者群組或 IAM 角色時，政策會允許或拒絕使用者在特定資源上執行特定任務的許可。

**Topics**
+ [AWS 存取 WorkSpaces 應用程式資源所需的受管政策](managed-policies-required-to-access-appstream-resources.md)
+ [WorkSpaces 應用程式、Application Auto Scaling 和 AWS Certificate Manager Private CA 所需的角色](roles-required-for-appstream.md)
+ [檢查 AmazonAppStreamServiceAccess 服務角色和政策](controlling-access-checking-for-iam-service-access.md)
+ [檢查 ApplicationAutoScalingForAmazonAppStreamAccess 服務角色和政策](controlling-access-checking-for-iam-autoscaling.md)
+ [檢查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服務連結角色和政策](controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet.md)
+ [檢查 AmazonAppStreamPCAAccess 服務角色和政策](controlling-access-checking-for-AppStreamPCAAccess.md)

# AWS 存取 WorkSpaces 應用程式資源所需的受管政策
<a name="managed-policies-required-to-access-appstream-resources"></a>

若要提供 WorkSpaces 應用程式的完整管理或唯讀存取權，您必須將下列其中一個 AWS 受管政策連接至需要這些許可的 IAM 使用者或群組。「AWS 受管政策」**為獨立的政策，由 AWS建立並管理。如需詳細資訊，請參閱《*IAM 使用者指南*》中的 [AWS 受管政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)。

**注意**  
在 中 AWS，IAM 角色用於授予 AWS 服務的許可，使其可以存取 AWS 資源。連接到角色的政策會決定服務可存取哪些 AWS 資源，以及該服務可以如何處理這些資源。對於 WorkSpaces 應用程式，除了擁有 **AmazonAppStreamFullAccess** 政策中定義的許可外，您還必須在 AWS 帳戶中擁有所需的角色。如需詳細資訊，請參閱[WorkSpaces 應用程式、Application Auto Scaling 和 AWS Certificate Manager Private CA 所需的角色](roles-required-for-appstream.md)。

**AmazonAppStreamFullAccess**  
此受管政策提供 WorkSpaces 應用程式資源的完整管理存取權。若要透過 AWS 命令列界面 (AWS CLI)、 AWS SDK 或 AWS 管理主控台管理 WorkSpaces 應用程式資源並執行 API 動作，您必須擁有此政策中定義的許可。  
如果您以 IAM 使用者身分登入 WorkSpaces 應用程式主控台，您必須將此政策連接至您的 AWS 帳戶。如果您是透過主控台聯合登入，則必須將此政策連接至用於聯合的 IAM 角色。  
若要檢視此政策的許可，請參閱 [AmazonAppStreamFullAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamFullAccess.html)。

**AmazonAppStreamReadOnlyAccess**  
此身分型政策授予使用者唯讀許可，以檢視和監控 WorkSpaces 應用程式資源和相關服務組態。使用者可以存取 WorkSpaces 應用程式主控台來檢視串流應用程式、機群狀態、用量報告和相關聯的資源，但無法進行任何變更。此政策也包含支援 IAM、Application Auto Scaling 和 CloudWatch 等服務所需的讀取許可，以啟用全面的監控和報告功能。  
若要檢視此政策的許可，請參閱 [AmazonAppStreamReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamReadOnlyAccess.html)。

WorkSpaces 應用程式主控台使用額外的動作，提供無法透過 CLI 或 AWS SDK AWS 使用的功能。**AmazonAppStreamFullAccess** 和 **AmazonAppStreamReadOnlyAccess** 政策都提供下列動作的許可。


| Action | Description | 存取層級 | 
| --- | --- | --- | 
| DescribeImageBuilders | 如果提供了映像建置器名稱，則會准許擷取說明一或多個指定的映像建置器清單。否則，帳戶中的所有映像建置器都會予以說明。 | 讀取 | 

**AmazonAppStreamPCAAccess**  
此受管政策提供 AWS 對帳戶中 Certificate Manager Private CA 資源的完整管理存取權， AWS 以進行憑證型身分驗證。  
若要檢視此政策的許可，請參閱 [AmazonAppStreamPCAAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamPCAAccess.html)。

**AmazonAppStreamServiceAccess**  
此受管政策是 WorkSpaces 應用程式服務角色的預設政策。  
此角色許可政策允許 WorkSpaces 應用程式完成下列動作：  
+ 在 WorkSpaces 應用程式機群的帳戶中使用子網路時，WorkSpaces 應用程式可以描述子網路、VPCs 和可用區域，以及建立和管理與這些子網路中機群執行個體相關聯的所有彈性網路介面的生命週期。這也包括能夠將安全群組和 IP 地址從這些子網路連接到這些彈性網路介面。
+ 使用 UPP 和 HomeFolders 等功能時，WorkSpaces 應用程式能夠在帳戶中建立和管理 Amazon S3 儲存貯體、物件及其生命週期、政策和加密組態。這些儲存貯體包含下列命名字首：
  + `"arn:aws:s3:::appstream2-36fb080bb8-",`
  + `"arn:aws:s3:::appstream-app-settings-",`
  + `"arn:aws:s3:::appstream-logs-"`
若要檢視此政策的許可，請參閱 [AmazonAppStreamServiceAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAppStreamServiceAccess.html)。

**ApplicationAutoScalingForAmazonAppStreamAccess**  
此受管政策可啟用 WorkSpaces 應用程式的應用程式自動擴展。  
若要檢視此政策的許可，請參閱 [ApplicationAutoScalingForAmazonAppStreamAccess。 ](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ApplicationAutoScalingForAmazonAppStreamAccess.html)

**AWSApplicationAutoscalingAppStreamFleetPolicy**  
此受管政策授予 Application Auto Scaling 存取 WorkSpaces 應用程式和 CloudWatch 的許可。  
若要檢視此政策的許可，請參閱 [AWSApplicationAutoscalingAppStreamFleetPolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSApplicationAutoscalingAppStreamFleetPolicy.html)。

## WorkSpaces 應用程式更新受 AWS 管政策
<a name="security-iam-awsmanpol-updates"></a>



檢視自此服務開始追蹤這些變更以來，WorkSpaces 應用程式 AWS 受管政策更新的詳細資訊。如需有關此頁面變更的自動提醒，請訂閱 [Amazon WorkSpaces 應用程式的文件歷史記錄](doc-history.md) 頁面的 RSS 摘要。




| 變更 | 描述 | Date | 
| --- | --- | --- | 
|  AmazonAppStreamServiceAccess – 變更  |   將 `"ec2:DescribeImages"`的允許許可新增至政策 JSON 政策文件  | 2025 年 11 月 17 日 | 
|  AmazonAppStreamReadOnlyAccess – 變更  |   `"appstream:Get*",` 從 JSON 政策文件移除  | 2025 年 10 月 22 日 | 
|  WorkSpaces 應用程式開始追蹤變更  |  WorkSpaces 應用程式開始追蹤其 AWS 受管政策的變更  | 2022 年 10 月 31 日 | 

# WorkSpaces 應用程式、Application Auto Scaling 和 AWS Certificate Manager Private CA 所需的角色
<a name="roles-required-for-appstream"></a>

在 中 AWS，IAM 角色用於授予 AWS 服務的許可，使其可以存取 AWS 資源。連接到角色的政策會決定服務可存取哪些 AWS 資源，以及該服務可以如何處理這些資源。對於 WorkSpaces 應用程式，除了擁有 **AmazonAppStreamFullAccess** 政策中定義的許可外，您還必須在 AWS 帳戶中擁有下列角色。

**Topics**
+ [AmazonAppStreamServiceAccess](#AmazonAppStreamServiceAccess)
+ [ApplicationAutoScalingForAmazonAppStreamAccess](#ApplicationAutoScalingForAmazonAppStreamAccess)
+ [AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet](#AWSServiceRoleForApplicationAutoScaling_AppStreamFleet)
+ [AmazonAppStreamPCAAccess](#AppStreamPCAAccess)

## AmazonAppStreamServiceAccess
<a name="AmazonAppStreamServiceAccess"></a>

此角色是在 AWS 區域中開始使用 WorkSpaces 應用程式時自動為您建立的服務角色。如需 服務角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

建立 WorkSpaces 應用程式資源時，WorkSpaces 應用程式服務會擔任此角色 AWS ，代表您對其他服務進行 API 呼叫。若要建立機群，您的帳戶中必須具備此角色。如果此角色不在 AWS 您的帳戶中，且未連接必要的 IAM 許可和信任關係政策，則您無法建立 WorkSpaces 應用程式機群。

如需詳細資訊，請參閱 [檢查 AmazonAppStreamServiceAccess 服務角色和政策](controlling-access-checking-for-iam-service-access.md) 以檢查 **AmazonAppStreamServiceAccess** 服務角色是否存在，並已連接正確的政策。

**注意**  
此服務角色可以具有與開始使用 WorkSpaces 應用程式的第一個使用者不同的許可。如需此角色許可的詳細資訊，請參閱 中的「AmazonAppStreamServiceAccess」[AWS 存取 WorkSpaces 應用程式資源所需的受管政策](managed-policies-required-to-access-appstream-resources.md)。

## ApplicationAutoScalingForAmazonAppStreamAccess
<a name="ApplicationAutoScalingForAmazonAppStreamAccess"></a>

此角色是在 AWS 區域中開始使用 WorkSpaces 應用程式時自動為您建立的服務角色。如需 服務角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

自動擴展是 WorkSpaces 應用程式機群的一項功能。若要設定擴展政策，您必須在 AWS 帳戶中擁有此服務角色。如果此服務角色不在 AWS 您的帳戶中，且未連接必要的 IAM 許可和信任關係政策，則您無法擴展 WorkSpaces 應用程式機群。

如需詳細資訊，請參閱[檢查 ApplicationAutoScalingForAmazonAppStreamAccess 服務角色和政策](controlling-access-checking-for-iam-autoscaling.md)。

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet
<a name="AWSServiceRoleForApplicationAutoScaling_AppStreamFleet"></a>

此角色是自動為您建立的服務連結角色。如需詳細資訊，請參閱《應用程式自動擴展使用者指南》**中的[服務連結角色](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html)。

應用程式自動擴展會使用服務連結角色代表您執行自動擴展。*服務連結角色*是直接連結至 AWS 服務的 IAM 角色。此角色包含服務代表您呼叫其他 AWS 服務所需的所有許可。

如需詳細資訊，請參閱[檢查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服務連結角色和政策](controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet.md)。

## AmazonAppStreamPCAAccess
<a name="AppStreamPCAAccess"></a>

此角色是在 AWS 區域中開始使用 WorkSpaces 應用程式時自動為您建立的服務角色。如需 服務角色的詳細資訊，請參閱《*IAM 使用者指南*》中的[建立角色以將許可委派給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

憑證型身分驗證是加入 Microsoft Active Directory 網域的 WorkSpaces 應用程式機群的一項功能。若要啟用和使用憑證型身分驗證，您必須在 AWS 帳戶中擁有此服務角色。如果此服務角色不在 AWS 您的帳戶中，且未連接必要的 IAM 許可和信任關係政策，則您無法啟用或停用憑證型身分驗證。

如需詳細資訊，請參閱[檢查 AmazonAppStreamPCAAccess 服務角色和政策](controlling-access-checking-for-AppStreamPCAAccess.md)。

# 檢查 AmazonAppStreamServiceAccess 服務角色和政策
<a name="controlling-access-checking-for-iam-service-access"></a>

請完成本節中的步驟，檢查是否具備 **AmazonAppStreamServiceAccess** 服務角色並連接正確的政策。如果此角色不在您的帳戶中且必須建立，則您或具有必要許可的管理員必須執行這些步驟，才能在 Amazon Web Services 帳戶中開始使用 WorkSpaces 應用程式。

**檢查 AmazonAppStreamServiceAccess IAM 服務角色是否存在**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。

1. 在搜尋方塊中，輸入 **amazonappstreamservice**，縮小要選取的角色清單範圍，然後選擇 **AmazonAppStreamServiceAccess**。如果此角色已列出，請選取它以檢視角色 **Summary (摘要)** 頁面。

1. 在 **Permissions (許可)** 標籤中，確認是否已連接 **AmazonAppStreamServiceAccess** 許可政策。

1. 返回角色 **Summary (摘要)** 頁面。

1. 在 **Trust relationships (信任關係)** 標籤上，選擇 **Show policy document (顯示政策文件)**，然後確認是否已連接 **AmazonAppStreamServiceAccess** 信任關係政策並遵循正確的格式。若是如此，即已正確設定信任關係。選擇**取消**並關閉 IAM 主控台。

## AmazonAppStreamServiceAccess 信任關係政策
<a name="controlling-access-service-access-trust-policy"></a>

**AmazonAppStreamServiceAccess** 信任關係政策必須包含 WorkSpaces 應用程式服務作為委託人。*委託*人是 中的實體 AWS ，可執行動作和存取資源。此政策也必須包含 `sts:AssumeRole` 動作。下列政策組態將 WorkSpaces 應用程式定義為信任的實體。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
      "Service": "appstream.amazonaws.com"
    },
    "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# 檢查 ApplicationAutoScalingForAmazonAppStreamAccess 服務角色和政策
<a name="controlling-access-checking-for-iam-autoscaling"></a>

請完成本節中的步驟，檢查 **ApplicationAutoScalingForAmazonAppStreamAccess** 服務角色是否存在並已連接正確的政策。如果此角色不在您的帳戶中且必須建立，則您或具有必要許可的管理員必須執行這些步驟，才能在 Amazon Web Services 帳戶中開始使用 WorkSpaces 應用程式。

**檢查 ApplicationAutoScalingForAmazonAppStreamAccess IAM 服務角色是否存在**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。

1. 在搜尋方塊中，輸入 **applicationautoscaling** 縮小要選取的角色清單範圍，然後選擇 **ApplicationAutoScalingForAmazonAppStreamAccess**。如果此角色已列出，請選取它以檢視角色 **Summary (摘要)** 頁面。

1. 在**許可**索引標籤中，確認是否已連接 **ApplicationAutoScalingForAmazonAppStreamAccess** 許可政策。

1. 返回角色 **Summary (摘要)** 頁面。

1. 在**信任關係**索引標籤上，選擇**顯示政策文件**，然後確認是否已連接 **ApplicationAutoScalingForAmazonAppStreamAccess** 信任關係政策並遵循正確的格式。若是如此，即已正確設定信任關係。選擇**取消**並關閉 IAM 主控台。

## ApplicationAutoScalingForAmazonAppStreamAccess 信任關係政策
<a name="controlling-access-autoscaling-trust-policy"></a>

**ApplicationAutoScalingForAmazonAppStreamAccess** 信任關係政策必須包含應用程式自動擴展服務作為主體。此政策也必須包含 `sts:AssumeRole` 動作。下列政策組態會將應用程式自動擴展定義為信任的實體。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "application-autoscaling.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# 檢查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服務連結角色和政策
<a name="controlling-access-checking-for-iam-service-linked-role-application-autoscaling-appstream-fleet"></a>

請完成本節中的步驟，檢查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 服務連結角色是否存在並已連接正確的政策。如果此角色不在您的帳戶中且必須建立，則您或具有必要許可的管理員必須執行這些步驟，才能在 Amazon Web Services 帳戶中開始使用 WorkSpaces 應用程式。

**檢查 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` IAM 服務連結角色是否存在**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。

1. 在搜尋方塊中，輸入 **applicationautoscaling** 縮小要選取的角色清單範圍，然後選擇 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet`。如果此角色已列出，請選取它以檢視角色 **Summary (摘要)** 頁面。

1. 在**許可**索引標籤中，確認是否已連接 `AWSApplicationAutoscalingAppStreamFleetPolicy` 許可政策。

1. 返回角色 **Summary (摘要)** 頁面。

1. 在**信任關係**索引標籤上，選擇**顯示政策文件**，然後確認是否已連接 `AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 信任關係政策並遵循正確的格式。若是如此，即已正確設定信任關係。選擇**取消**並關閉 IAM 主控台。

## AWSServiceRoleForApplicationAutoScaling\$1AppStreamFleet 信任關係政策
<a name="controlling-access-application-autoscaling-appstream-fleet-trust-policy"></a>

`AWSServiceRoleForApplicationAutoScaling_AppStreamFleet` 信任關係政策必須包含 **appstream.application-autoscaling.amazonaws.com** 作為主體。此政策也必須包含 `sts:AssumeRole` 動作。以下政策組態將 **appstream.application-autoscaling.amazonaws.com** 定義為信任實體。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "appstream.application-autoscaling.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

------

# 檢查 AmazonAppStreamPCAAccess 服務角色和政策
<a name="controlling-access-checking-for-AppStreamPCAAccess"></a>

請完成本節中的步驟，檢查 **AmazonAppStreamPCAAccess** 服務角色是否存在並已連接正確的政策。如果此角色不在您的帳戶中且必須建立，則您或具有必要許可的管理員必須執行這些步驟，才能在 Amazon Web Services 帳戶中開始使用 WorkSpaces 應用程式。

**檢查 AmazonAppStreamPCAAccess IAM 服務角色是否存在**

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。

1. 在搜尋方塊中，輸入 **appstreampca** 縮小要選取的角色清單範圍，然後選擇 **AmazonAppStreamPCAAccess**。如果此角色已列出，請選取它以檢視角色 **Summary (摘要)** 頁面。

1. 在**許可**索引標籤中，確認是否已連接 **AmazonAppStreamPCAAccess** 許可政策。

1. 返回角色 **Summary (摘要)** 頁面。

1. 在**信任關係**索引標籤上，選擇**顯示政策文件**，然後確認是否已連接 **AmazonAppStreamPCAAccess** 信任關係政策並遵循正確的格式。若是如此，即已正確設定信任關係。選擇**取消**並關閉 IAM 主控台。

## AmazonAppStreamPCAAccess 信任關係政策
<a name="controlling-access-amazonappstreampcaaccess-trust-policy"></a>

**AmazonAppStreamPCAAccess** 信任關係政策必須包含 prod.euc.ecm.amazonaws.com 作為主體。此政策也必須包含 `sts:AssumeRole` 動作。下列政策組態會將 ECM 定義為信任的實體。

**使用 CLI 建立 AmazonAppStreamPCAAccess AWS 信任關係政策**

1. 使用以下文字建立名為 `AmazonAppStreamPCAAccess.json` 的 JSON 檔案。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "prod.euc.ecm.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole",
               "Condition": {}
           }
       ]
   }
   ```

------

1. 視需要調整`AmazonAppStreamPCAAccess.json`路徑並執行下列 AWS CLI 命令，以建立信任關係政策並連接 AmazonAppStreamPCAAccess 受管政策。如需受管政策的更多相關資訊，請參閱[AWS 存取 WorkSpaces 應用程式資源所需的受管政策](managed-policies-required-to-access-appstream-resources.md)。

   ```
   aws iam create-role --path /service-role/ --role-name AmazonAppStreamPCAAccess --assume-role-policy-document file://AmazonAppStreamPCAAccess.json
   ```

   ```
   aws iam attach-role-policy —role-name AmazonAppStreamPCAAccess —policy-arn arn:aws:iam::aws:policy/AmazonAppStreamPCAAccess
   ```

# 使用 IAM 政策管理對應用程式自動擴展的管理員存取
<a name="autoscaling-iam-policy"></a>

透過結合 WorkSpaces 應用程式、Amazon CloudWatch 和 Application Auto Scaling APIs 來實現機群的自動擴展。WorkSpaces 應用程式機群是使用 WorkSpaces 應用程式建立，警示是使用 CloudWatch 建立，擴展政策是使用 Application Auto Scaling 建立。

除了在 [AmazonAppStreamFullAccess](managed-policies-required-to-access-appstream-resources.md) 政策中定義許可之外，存取機群擴展設定的 IAM 使用者也必須擁有支援動態擴展之服務的必要許可。IAM 使用者必須具備使用以下範例政策中各項動作的許可。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
          "appstream:*",
          "application-autoscaling:*",
          "cloudwatch:DeleteAlarms",
          "cloudwatch:DescribeAlarmsForMetric",
          "cloudwatch:DisableAlarmActions",
          "cloudwatch:DescribeAlarms",
          "cloudwatch:EnableAlarmActions",
          "cloudwatch:ListMetrics",
          "cloudwatch:PutMetricAlarm",
          "iam:ListRoles"
      ],
      "Resource": "*"
    },
    {
      "Sid": "iamPassRole",
      "Effect": "Allow",
      "Action": [
          "iam:PassRole"
      ],
      "Resource": "*",
      "Condition": {
         "StringEquals": {
             "iam:PassedToService": "application-autoscaling.amazonaws.com"
          }
      }
    }
  ]
}
```

------

您也可以建立自己的 IAM 政策，以對應用程式自動擴展 API 呼叫設定更具體的許可。如需詳細資訊，請參閱*Application Auto Scaling使用者指南*中的身分[身分驗證與存取控制](https://docs.aws.amazon.com/autoscaling/application/userguide/auth-and-access-control.html)。

# 使用 IAM 政策來管理管理員對主資料夾和應用程式設定持續性之 Amazon S3 儲存貯體的存取權
<a name="s3-iam-policy"></a>

以下範例示範如何使用 IAM 政策來管理主資料夾和應用程式設定持續性之 Amazon S3 儲存貯體的存取權。

**Topics**
+ [刪除用於主資料夾和應用程式設定持續性的 Amazon S3 儲存貯體](s3-iam-policy-delete.md)
+ [限制管理員存取用於主資料夾和應用程式設定持續性的 Amazon S3 儲存貯體](s3-iam-policy-restricted-access.md)

# 刪除用於主資料夾和應用程式設定持續性的 Amazon S3 儲存貯體
<a name="s3-iam-policy-delete"></a>

WorkSpaces 應用程式會將 Amazon S3 儲存貯體政策新增至其建立的儲存貯體，以防止意外刪除。若要刪除 S3 儲存貯體，您必須先刪除 S3 儲存貯體政策。以下是您必須針對主資料夾和應用程式設定持續性刪除的儲存貯體政策。

**主資料夾政策**

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PreventAccidentalDeletionOfBucket",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:DeleteBucket",
      "Resource": "arn:aws:s3:::appstream2-36fb080bb8-region-code-123456789012-without-hyphens"
    }
  ]
}
```

------

**應用程式設定持續性政策**

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "PreventAccidentalDeletionOfBucket",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:DeleteBucket",
      "Resource": "arn:aws:s3:::appstream-app-settings-region-code-123456789012-without-hyphens-unique-identifier"
     }
   ]
}
```

------

 如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[刪除或清空儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-or-empty-bucket.html)。

# 限制管理員存取用於主資料夾和應用程式設定持續性的 Amazon S3 儲存貯體
<a name="s3-iam-policy-restricted-access"></a>

根據預設，可存取 WorkSpaces 應用程式建立的 Amazon S3 儲存貯體的管理員可以檢視和修改屬於使用者主資料夾和持久性應用程式設定的內容。若要限制管理員存取含有使用者檔案的 S3 儲存貯體，建議您依據以下範本套用 S3 儲存貯體存取政策：

```
{
  "Sid": "RestrictedAccess",
  "Effect": "Deny",
  "NotPrincipal": 
  {
    "AWS": [
      "arn:aws:iam::account:role/service-role/AmazonAppStreamServiceAccess",
      "arn:aws:sts::account:assumed-role/AmazonAppStreamServiceAccess/PhotonSession",
      "arn:aws:iam::account:user/IAM-user-name"
    ]
  },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::home-folder-or-application-settings-persistence-s3-bucket-region-account"
  }
 ]
}
```

此政策僅允許 S3 儲存貯體存取指定的使用者和 WorkSpaces 應用程式服務。針對每個應具備存取權的 IAM 使用者，複寫以下這一行：

```
"arn:aws:iam::account:user/IAM-user-name"
```

在下列範例中，政策會將主資料夾 S3 儲存貯體的存取權限制為 IAM 使用者 johnstiles 和 marymajor 以外的所有人。它還允許存取美國西部 （奧勒岡） AWS 區域的 WorkSpaces 應用程式服務，帳戶 ID 為 123456789012。

```
{
  "Sid": "RestrictedAccess",
  "Effect": "Deny",
  "NotPrincipal": 
  {
    "AWS": [
      "arn:aws:iam::123456789012:role/service-role/AmazonAppStreamServiceAccess",
      "arn:aws:sts::123456789012:assumed-role/AmazonAppStreamServiceAccess/PhotonSession",
      "arn:aws:iam::123456789012:user/marymajor",
      "arn:aws:iam::123456789012:user/johnstiles"
    ]
  },
    "Action": "s3:*",
    "Resource": "arn:aws:s3:::appstream2-36fb080bb8-us-west-2-123456789012"
  }
 ]
}
```

# 使用 IAM 角色將許可授予在 WorkSpaces 應用程式串流執行個體上執行的應用程式和指令碼
<a name="using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances"></a>

在 WorkSpaces 應用程式串流執行個體上執行的應用程式和指令碼，必須在其 AWS API 請求中包含 AWS 登入資料。您可以建立 IAM 角色來管理這些憑證。IAM 角色會指定一組可用於存取 AWS 資源的許可。不過，此角色並非與某個人單獨關聯。反之，任何需要此角色的任何人都可以擔任此角色。

您可以將 IAM 角色套用至 WorkSpaces 應用程式串流執行個體。當串流執行個體切換為 (擔任) 該角色時，該角色會提供暫時安全登入資料。您的應用程式或指令碼會使用這些憑證，在串流執行個體上執行 API 動作和管理任務。WorkSpaces 應用程式會為您管理臨時登入資料切換。

**Topics**
+ [搭配 WorkSpaces 應用程式串流執行個體使用 IAM 角色的最佳實務](best-practices-for-using-iam-role-with-streaming-instances.md)
+ [設定現有的 IAM 角色以搭配 WorkSpaces 應用程式串流執行個體使用](configuring-existing-iam-role-to-use-with-streaming-instances.md)
+ [如何建立 IAM 角色以搭配 WorkSpaces 應用程式串流執行個體使用](how-to-create-iam-role-to-use-with-streaming-instances.md)
+ [如何使用 IAM 角色搭配 WorkSpaces 應用程式串流執行個體](how-to-use-iam-role-with-streaming-instances.md)

# 搭配 WorkSpaces 應用程式串流執行個體使用 IAM 角色的最佳實務
<a name="best-practices-for-using-iam-role-with-streaming-instances"></a>

當您搭配 WorkSpaces 應用程式串流執行個體使用 IAM 角色時，建議您遵循下列實務：
+ 限制您授予 AWS API 動作和資源的許可。

  當您建立 IAM 政策並將其連接至與 WorkSpaces 應用程式串流執行個體相關聯的 IAM 角色時，請遵循最低權限原則。當您使用需要存取 AWS API 動作或資源的應用程式或指令碼時，請判斷所需的特定動作和資源。然後，建立允許應用程式或指令碼僅執行那些動作的政策。如需詳細資訊，請參閱*《IAM 使用者指南》*中的[授予最低權限](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)。
+ 為每個 WorkSpaces 應用程式資源建立 IAM 角色。

  為每個 WorkSpaces 應用程式資源建立唯一的 IAM 角色是遵循最低權限原則的做法。這樣做也可讓您修改資源的許可，而不會影響其他資源。
+ 限制可使用登入資料的位置。

  IAM 政策可讓您定義可使用 IAM 角色來存取資源的條件。例如，您可以包含條件，以指定請求可能來自的 IP 地址範圍。這樣做可防止登入資料在您的環境外遭到使用。如需詳細資訊，請參閱《IAM 使用者指南》**中的[使用政策條件提供額外的安全性](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#use-policy-conditions)。

# 設定現有的 IAM 角色以搭配 WorkSpaces 應用程式串流執行個體使用
<a name="configuring-existing-iam-role-to-use-with-streaming-instances"></a>

本主題說明如何設定現有的 IAM 角色，以便您可以將其與映像建置器和機群串流執行個體搭配使用。

**先決條件**

您想要與 WorkSpaces 應用程式映像建置器或機群串流執行個體搭配使用的 IAM 角色必須符合下列先決條件：
+ IAM 角色必須與 WorkSpaces 應用程式串流執行個體位於相同的 Amazon Web Services 帳戶中。
+ IAM 角色不能是服務角色。
+ 連接至 IAM 角色的信任關係政策必須包含 WorkSpaces 應用程式服務做為委託人。*委託*人是 中的實體 AWS ，可執行動作和存取資源。政策也必須包含 `sts:AssumeRole` 動作。此政策組態將 WorkSpaces 應用程式定義為信任的實體。

  
+ 如果您要將 IAM 角色套用至映像建置器，映像建置器必須執行 2019 年 9 月 3 日當天或之後發行的 WorkSpaces 應用程式代理程式版本。如果您要將 IAM 角色套用至機群，機群必須使用使用相同日期當天或之後發行之代理程式版本的映像。如需詳細資訊，請參閱[WorkSpaces 應用程式代理程式版本備註](agent-software-versions.md)。

**讓 WorkSpaces 應用程式服務主體擔任現有的 IAM 角色**

若要執行以下步驟，您必須以有權列出和更新 IAM 角色的 IAM 使用者身分登入帳戶。如果您沒有所需許可，可請 Amazon Web Services 帳戶管理員在您的帳戶中執行這些步驟，或授予您必要的許可。

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**。

1. 在您帳戶的角色清單中，選擇您想要修改的角色名稱。

1. 選擇 **Trust Relationships (信任關係)** 標籤，然後選擇 **Edit Trust Relationship (編輯信任關係)**。

1. 在 **Policy Document (政策文件)** 下，確認信任關係政策包含適用於 `appstream.amazonaws.com` 服務委託人的 `sts:AssumeRole` 動作：

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": [
             "appstream.amazonaws.com"
           ]
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. 當您完成編輯您的信任政策，請選擇 **Update Trust Policy (更新信任政策)** 來儲存您的變更。

1. 您選取的 IAM 角色會顯示在 WorkSpaces 應用程式主控台中。此角色會將許可授予應用程式和指令碼，來在串流執行個體上執行 API 動作和管理任務。

# 如何建立 IAM 角色以搭配 WorkSpaces 應用程式串流執行個體使用
<a name="how-to-create-iam-role-to-use-with-streaming-instances"></a>

本主題說明如何建立新的 IAM 角色，以便搭配映像建置器和機群串流執行個體使用。

1. 在以下網址開啟 IAM 主控台：[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在導覽窗格中，選擇**角色**，然後選擇**建立角色**。

1. 對於 **Select type of trusted entity (選取信任的實體類型)**，選擇 **AWS service ( 服務)**。

1. 從 AWS 服務清單中，選擇 **WorkSpaces 應用程式**。

1. 在**選取您的使用案例**下，已選取 **WorkSpaces 應用程式 — 允許 WorkSpaces 應用程式執行個體代表您呼叫 AWS 服務**。選擇**下一步：許可**。

1. 可以的話，請選取用於許可政策的政策，或者選擇 **Create policy (建立政策)** 以開啟新的瀏覽器標籤，並從頭建立新的政策。如需詳細資訊，請參閱《IAM 使用者指南》**中的[建立 IAM 政策 (主控台)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-start) 程序的步驟 4。

   在您建立政策後，關閉該標籤並返回您的原始標籤。選取您希望 WorkSpaces 應用程式擁有的許可政策旁的核取方塊。

1. (選用) 設定許可界限。這是進階功能，可用於服務角色，而不是服務連結的角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 實體許可界限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html)。

1. 選擇下**一步：標籤**。您可以選擇將標籤附加為金鑰值配對。如需詳細資訊，請參閱《IAM 使用者指南》**中的[標記 IAM 使用者和角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)。

1. 選擇下**一步：檢閱**。

1. 在**角色名稱**中，輸入您 Amazon Web Services 帳戶中的唯一角色名稱。由於其他 AWS 資源可能會參考角色，因此您無法在建立角色之後編輯角色的名稱。

1. 在 **Role description** (角色描述) 中，保留預設角色描述或輸入新的角色描述。

1. 檢閱角色，然後選擇 **Create role** (建立角色)。

# 如何使用 IAM 角色搭配 WorkSpaces 應用程式串流執行個體
<a name="how-to-use-iam-role-with-streaming-instances"></a>

在建立 IAM 角色後，您就可以在啟動映像建置器或建立機群時，將該角色套用到映像建置器或機群串流執行個體。您也可以將 IAM 角色套用到現有的機群。如需如何在啟動映像建置器時套用 IAM 角色的相關資訊，請參閱 [啟動映像建置器以安裝和設定串流應用程式](tutorial-image-builder-create.md)。如需如何在建立機群時套用 IAM 角色的相關資訊，請參閱 [在 Amazon WorkSpaces 應用程式中建立機群](set-up-stacks-fleets-create.md)。

當您將 IAM 角色套用至映像建置器或機群串流執行個體時，WorkSpaces 應用程式會擷取臨時登入資料，並在執行個體上建立 **appstream\$1machine\$1role** 登入資料設定檔。臨時憑證的有效期為 1 小時，而且每小時都會擷取新的憑證。之前的登入資料不會過期，因此您可以在有效期間進行使用。您可以使用登入資料設定檔，使用 AWS Command Line Interface (AWS CLI)、 AWS Tools for PowerShell 或軟體 AWS 開發套件搭配您選擇的語言，以程式設計方式呼叫 AWS 服務。

當您發出 API 呼叫時，請指定 **appstream\$1machine\$1role** 做為登入資料描述檔。否則，此操作會因許可不足而失敗。

佈建串流執行個體時，WorkSpaces 應用程式會擔任指定的角色。由於 WorkSpaces 應用程式使用連接到 VPC 的彈性網路界面進行 AWS API 呼叫，因此您的應用程式或指令碼必須等待彈性網路界面變成可用，才能進行 AWS API 呼叫。如果在彈性網路界面變成可用前已進行 API 呼叫，則呼叫會失敗。

以下範例說明您可以如何使用 ** appstream\$1machine\$1role** 登入資料描述檔，來描述串流執行個體 (EC2 執行個體) 以及建立 Boto 用戶端。Boto 是適用於 Python 的 Amazon Web Services (AWS) SDK。

**使用 CLI 描述串流執行個體 (EC2 AWS 執行個體）**

```
aws ec2 describe-instances --region us-east-1 --profile appstream_machine_role
```

**使用 AWS Tools for PowerShell 描述串流執行個體 (EC2 執行個體）**

您必須使用 AWS Tools for PowerShell 3.3.563.1 版或更新版本，搭配 Amazon Web Services SDK for .NET 3.3.103.22 版或更新版本。您可以從 Tools for PowerShell 網站下載 AWS Tools for Windows 安裝程式，其中包括 AWS Tools for [AWS PowerShell 和 Amazon Web Services SDK for ](https://aws.amazon.com/powershell/).NET。

```
Get-EC2Instance -Region us-east-1 -ProfileName appstream_machine_role
```

**使用適用於 Python 的 AWS SDK 建立 Boto 用戶端**

```
session = boto3.Session(profile_name='appstream_machine_role')
```

# SELinux on Red Hat Enterprise Linux 和 Rocky Linux
<a name="selinux"></a>

根據預設，Security Enhanced Linux (SELinux) 會針對 WorkSpaces 應用程式映像建置器和採用 Red Hat Enterprise Linux `enabled`和 Rocky Linux 技術的串流執行個體，設定為 `enforcing` 模式。在 `enforcing`模式中，會強制執行許可拒絕。SELinux 是核心功能和公用程式的集合，為核心的主要子系統提供了強大、靈活且強制的存取控制 (MAC) 架構。

SELinux 提供增強的機制，可以根據機密性和完整性需求強制執行資訊分離。這種資訊分離可減少竄改和略過應用程式安全機制的威脅。另外還限制惡意或有缺陷的應用程式可能造成的損壞。

SELinux 包含一組樣本安全政策組態檔案，旨在滿足日常安全目標。如需 SELinux 功能的詳細資訊，請參閱[什麼是 SELinux](https://www.redhat.com/en/topics/linux/what-is-selinux)？

# Amazon WorkSpaces 應用程式中以 Cookie 為基礎的身分驗證
<a name="cookie-auth"></a>

WorkSpaces 應用程式使用瀏覽器 Cookie 來驗證串流工作階段，並允許使用者重新連線至作用中工作階段，而不必每次都重新輸入登入資料。每個身分驗證案例的身分驗證字符都存放在瀏覽器 Cookie 中。雖然許多線上服務都需要 Cookie，但它們可能容易遭受 Cookie 盜竊攻擊。我們強烈建議您採取主動措施來防止 Cookie 遭竊，例如為使用者的裝置實作強大的端點保護解決方案。此外，為了減輕 Cookie 遭竊時的潛在影響，我們建議您考慮下列動作：
+ **強制執行單一工作階段限制**：針對 WorkSpaces 應用程式 Windows 映像，在 下建立登錄機碼`HKEY_USERS\S-1-5-18\Software\GSettings\com\nicesoftware\dcv\session-management`，名稱 **max-concurrent-clients** 設定為 1，一次僅允許一個連線。這會將並行工作階段的數量限制為一個，並封鎖作用中工作階段的鏡像。如需詳細資訊，請參閱[工作階段管理參數](https://docs.aws.amazon.com/dcv/latest/adminguide/config-param-ref.html#session_management)。
+ **強制執行工作階段過期和重新驗證**
  + 減少 SessionDuration 值，讓身分驗證字符在使用者成功啟動串流工作階段後過期。在 sessionDuration 過期後重複使用身分驗證 Cookie 需要使用者自行重新驗證身分。SessionDuration 會指定使用者聯合串流工作階段在需要重新驗證之前可保持作用中狀態的時間上限。預設值為 60 分鐘。如需詳細資訊，請參閱[步驟 5：建立 SAML 身分驗證回應聲明](external-identity-providers-setting-up-saml.md#external-identity-providers-create-assertions)。
  + 為了協助最大化安全性，使用者應該使用工具列正確結束工作階段 （終止工作階段），而不是關閉串流視窗。透過工具列結束工作階段會同時終止使用者工作階段和串流執行個體。這需要重新驗證以供未來存取，以防止 Cookie 濫用。如果使用者關閉串流視窗而不結束工作階段，工作階段和執行個體會在可設定的中斷連線逾時期間 （以分鐘為單位） 保持作用中狀態。中斷連線逾時必須是介於 1 到 5760 之間的數字，預設值為 15 分鐘。為避免誤用非作用中工作階段，建議您設定短暫中斷連線逾時。如需詳細資訊，請參閱[在 Amazon WorkSpaces 應用程式中建立機群](set-up-stacks-fleets-create.md)。
+ **限制將 WorkSpaces 應用程式串流至 IP 範圍的存取**：我們建議您實作 IP 型 IAM 政策。這可確保只能從 IP 地址屬於授權 IP 範圍的用戶端存取 WorkSpaces 應用程式工作階段。用戶端 IP 地址超出授權範圍的使用者所啟動的所有連線嘗試都會遭到拒絕，即使他們呈現的是有效的身分驗證 Cookie （可能遭竊的使用者）。如需詳細資訊，請參閱[限制將 Amazon AppStream 2.0 應用程式串流至 IP 範圍的存取](https://aws.amazon.com/blogs/desktop-and-application-streaming/limit-access-to-stream-amazon-appstream-2-0-applications-to-your-ip-ranges/)。
+ **新增其他身分驗證**：若要啟動加入網域的串流執行個體，您可以將 WorkSpaces 應用程式 Always-On 和 On-Demand Windows 機群和映像建置器加入 Microsoft Active Directory 中的網域，並使用現有的 Active Directory 網域，無論是雲端或內部部署。在初始 SAML 型身分驗證之後，系統會提示您的使用者提供其網域登入資料，以針對組織網域進行其他身分驗證。如需詳細資訊，請參閱[搭配 WorkSpaces 應用程式使用 Active Directory](active-directory.md)。

 如果您有任何疑慮或需要協助，請聯絡 [AWS 支援 中心](https://console.aws.amazon.com/support/home#/)。

# 在 Amazon WorkSpaces 應用程式中記錄和監控
<a name="logging-monitoring-alerting"></a>

監控是維護 Amazon WorkSpaces 應用程式可靠性、可用性和效能的重要部分。本主題說明 AWS 提供的服務和工具，可用於監控 WorkSpaces 應用程式資源並回應潛在事件。

**Amazon CloudWatch 警示**  
Amazon CloudWatch 警示可讓您在自行指定的一段時間內監看單一指標。如果指標超過指定的閾值，則會將通知傳送至 Amazon Simple Notification Service 主題或 AWS Auto Scaling 政策。CloudWatch 警示不會調用處於特定狀態的動作。必須是狀態已變更並維持了所指定的時間長度，才會呼叫動作。如需詳細資訊，請參閱[監控 Amazon WorkSpaces 應用程式資源](monitoring.md)。  
WorkSpaces 應用程式目前無法設定為 CloudWatch Events 的目標。如需可設定為 CloudWatch 事件之目標的服務清單，請參閱[什麼是 Amazon CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)。

**AWS CloudTrail**  
AWS CloudTrail 提供由使用者、角色或 WorkSpaces 應用程式中的 AWS 服務所採取動作的記錄。此記錄可讓您判斷對 WorkSpaces 應用程式提出的請求、提出請求的 IP 地址、提出請求的人員、提出請求的時間，以及其他詳細資訊。如需詳細資訊，請參閱[使用 記錄 Amazon WorkSpaces 應用程式 API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)。

**AWS Trusted Advisor**  
AWS Trusted Advisor 會檢查您的 AWS 環境，然後建議節省成本、改善系統可用性和效能，或協助消除安全漏洞的方法。Trusted Advisor 會使用從各種 AWS 客戶收集到的最佳實務。所有 AWS 客戶都可以存取五個 Trusted Advisor 檢查。如果您有商業或企業支援計劃，您可以檢視所有 Trusted Advisor 檢查。  
當您為使用者啟用[應用程式設定持續性](how-it-works-app-settings-persistence.md)或[主資料夾](home-folders-admin.md)時，使用者產生的資料會存放在 Amazon S3 儲存貯體中。 Trusted Advisor 包含下列與 Amazon S3 相關的檢查：  
+ Amazon S3 儲存貯體的記錄組態。
+ 對於有開放式存取許可的 Amazon S3 儲存貯體，進行安全檢查。
+ 對於未啟用版本控制或已暫停版本控制的 Amazon S3 儲存貯體，進行容錯能力檢查。
如需詳細資訊，請參閱《AWS 支援 使用者指南》**中的 [AWS Trusted Advisor](https://docs.aws.amazon.com/awssupport/latest/user/trusted-advisor.html)。

**Amazon S3 存取日誌**  
如果使用者在 Amazon S3 儲存貯體中儲存了應用程式設定資料或主資料夾資料，請考慮查看 Amazon S3 伺服器存取日誌來監控存取。這些日誌提供了對儲存貯體進行請求的詳細記錄。伺服器存取日誌對許多應用程式來說，都是個很有用的資料。舉例來說，存取記錄資訊在安全與存取稽核中相當實用。如需詳細資訊，請參閱《Amazon Simple Storage Service 使用者指南》**中的[Amazon S3 伺服器存取記錄](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerLogs.html)。

**WorkSpaces 應用程式用量報告**  
您可以訂閱 WorkSpaces 應用程式用量報告，以接收有關使用者如何使用服務的詳細報告。這些報告包括使用者串流的長度，以及他們啟動的應用程式。如需詳細資訊，請參閱[WorkSpaces 應用程式用量報告](configure-usage-reports.md)。

# Amazon WorkSpaces 應用程式的合規驗證
<a name="compliance-validation"></a>

在多個合規計畫中，第三方稽核人員會評估 Amazon WorkSpaces 應用程式的安全性和 AWS 合規性。這些包括下列項目：[SOC](https://aws.amazon.com/compliance/soc-faqs/)、[PCI](https://aws.amazon.com/compliance/pci-dss-level-1-faqs)、[ISO](https://aws.amazon.com/compliance/iso-certified/)、[FedRAMP](https://aws.amazon.com/compliance/fedramp/)、[HIPAA](https://aws.amazon.com/compliance/hipaa-compliance/)、[MTCS](https://aws.amazon.com/compliance/aws-multitiered-cloud-security-standard-certification/)、[ENS High](https://aws.amazon.com/compliance/esquema-nacional-de-seguridad/)、[HITRUST CSF](https://aws.amazon.com/compliance/hitrust/)、[VPAT](https://aws.amazon.com/compliance/vpat/) 和其他。

**注意**  
WorkSpaces 應用程式支援 [FIPS 140-2](https://aws.amazon.com/compliance/fips/)。如需如何使用 WorkSpaces 應用程式 FIPS 端點進行管理使用或串流的詳細資訊，請參閱 [使用 FIPS 端點保護傳輸中資料](protecting-data-in-transit-FIPS-endpoints.md)。  
WorkSpaces 應用程式也正在進行[國防部 (DoD) 雲端運算安全要求指南 (SRG)](https://aws.amazon.com/compliance/dod/) 的評估。

如需特定合規計劃範圍內 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)。

您使用 WorkSpaces 應用程式時的合規責任取決於資料的敏感度、您公司的合規目標，以及適用的法律和法規。 AWS 提供下列資源來協助合規：
+ [安全與合規快速入門指南](https://aws.amazon.com/quickstart/?awsf.quickstart-homepage-filter=categories%23security-identity-compliance)：這些部署指南討論架構考量，並提供在 AWS上部署以安全及合規為重心之基準環境的步驟。
+ [HIPAA 安全與合規架構白皮書 ](https://d0.awsstatic.com/whitepapers/compliance/AWS_HIPAA_Compliance_Whitepaper.pdf) – 此白皮書說明公司如何使用 AWS 來建立符合 HIPAA 規範的應用程式。
+ [AWS 合規資源](https://aws.amazon.com/compliance/resources/) – 此工作手冊和指南集合可能適用於您的產業和據點。
+ 《 *AWS Config 開發人員指南*》中的[使用規則評估資源](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) – AWS Config 服務會評估資源組態符合內部實務、產業準則和法規的程度。
+ [AWS Security Hub CSPM](https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html) – AWS 此服務提供 內安全狀態的全方位檢視 AWS ，可協助您檢查是否符合安全產業標準和最佳實務。

# Amazon WorkSpaces 應用程式的彈性
<a name="disaster-recovery-resiliency"></a>

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

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

# Amazon WorkSpaces 應用程式中的基礎設施安全性
<a name="infrastructure-security"></a>

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

下列主題提供有關 WorkSpaces 應用程式基礎設施安全性的其他資訊。

**Topics**
+ [網路隔離](network-isolation.md)
+ [實體主機上的隔離](physical-isolation.md)
+ [控制網路流量](control-network-traffic.md)
+ [WorkSpaces 應用程式界面 VPC 端點](interface-vpc-endpoints.md)
+ [使用 FIPS 端點保護傳輸中資料](protecting-data-in-transit-FIPS-endpoints.md)

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

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

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

您可以從 VPC 中的 WorkSpaces 應用程式串流執行個體進行串流，而無需透過公有網際網路。如果要這麼做，請使用界面 VPC 端點 (界面端點)。如需詳細資訊，請參閱[教學課程：從介面 VPC 端點建立和串流](creating-streaming-from-interface-vpc-endpoints.md)。

您也可以從 VPC 呼叫 WorkSpaces 應用程式 API 操作，而無需使用介面端點透過公有網際網路傳送流量。如需相關資訊，請參閱[透過介面 VPC 端點存取 WorkSpaces 應用程式 API 操作和 CLI 命令](access-api-cli-through-interface-vpc-endpoint.md)。

# 實體主機上的隔離
<a name="physical-isolation"></a>

相同實體主機上的不同串流執行個體會彼此隔離，如同位於不同的實體主機上一樣。Hypervisor 會隔離 CPU 和記憶體，而且執行個體式提供的虛擬化磁碟，而非存取原始磁碟裝置。

當您停止或終止串流執行個體時，Hypervisor 會先清除配置到該執行個體的記憶體 (表示其設定為零)，然後再將之配置到新執行個體，而且會重設儲存體的每個區塊。這可確保不會向其他執行個體公開您的資料。

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

為了協助控制 WorkSpaces 應用程式串流執行個體的網路流量，請考慮下列選項：
+ 啟動 Amazon AppStream 串流執行個體時，您會在 VPC 的子網路中啟動它。如果不希望開放從網際網路存取串流執行個體，您可以在私有子網路中部署。
+ 如果要提供私有子網路中串流執行個體的網際網路存取權，請使用 NAT 閘道。如需詳細資訊，請參閱[建立含有私有子網路與 NAT 閘道的 VPC](managing-network-internet-NAT-gateway.md)。
+ 屬於 VPC 的安全群組可讓您控制 WorkSpaces 應用程式串流執行個體與 VPC 資源之間的網路流量，例如授權伺服器、檔案伺服器和資料庫伺服器。安全群組也會隔離串流執行個體與 WorkSpaces 應用程式管理服務之間的流量。

  使用安全群組來限制存取您的串流執行個體。例如，您可以允許僅來自於企業網路位址範圍的流量。如需詳細資訊，請參閱[Amazon WorkSpaces 應用程式中的安全群組](managing-network-security-groups.md)。
+ 您可以從 VPC 中的 WorkSpaces 應用程式串流執行個體進行串流，而無需透過公有網際網路。如果要這麼做，請使用界面 VPC 端點 (界面端點)。如需詳細資訊，請參閱[教學課程：從介面 VPC 端點建立和串流](creating-streaming-from-interface-vpc-endpoints.md)。

  您也可以從 VPC 呼叫 WorkSpaces 應用程式 API 操作，而無需使用介面端點透過公有網際網路傳送流量。如需詳細資訊，請參閱[透過介面 VPC 端點存取 WorkSpaces 應用程式 API 操作和 CLI 命令](access-api-cli-through-interface-vpc-endpoint.md)。
+ 使用 IAM 角色和政策來管理管理員對 WorkSpaces 應用程式、Application Auto Scaling 和 Amazon S3 儲存貯體的存取。如需詳細資訊，請參閱下列主題：
  + [使用 AWS 受管政策和連結角色來管理管理員對 WorkSpaces 應用程式資源的存取](controlling-administrator-access-with-policies-roles.md)
  + [使用 IAM 政策管理對應用程式自動擴展的管理員存取](autoscaling-iam-policy.md)
  + [限制管理員存取用於主資料夾和應用程式設定持續性的 Amazon S3 儲存貯體](s3-iam-policy-restricted-access.md)
+ 您可以使用 SAML 2.0 將身分驗證聯合到 WorkSpaces 應用程式。如需詳細資訊，請參閱[Amazon WorkSpaces 應用程式Service Quotas](limits.md)。
**注意**  
對於較小的 WorkSpaces 應用程式部署，您可以使用 WorkSpaces 應用程式使用者集區。根據預設， 使用者集區最多支援 50 個使用者。如需 WorkSpaces 應用程式配額 （也稱為限制） 的詳細資訊，請參閱 [Amazon WorkSpaces 應用程式Service Quotas](limits.md)。對於必須支援 100 個或更多 WorkSpaces 應用程式使用者的部署，建議使用 SAML 2.0。

# WorkSpaces 應用程式界面 VPC 端點
<a name="interface-vpc-endpoints"></a>

Virtual Private Cloud (VPC) 是 Amazon Web Services 雲端中您自己的邏輯隔離區域中的虛擬網路。如果您使用 Amazon Virtual Private Cloud 託管AWS資源，您可以在 VPC 和 WorkSpaces 應用程式之間建立私有連線。您可以使用此連線讓 WorkSpaces 應用程式與 VPC 上的資源通訊，而無需透過公有網際網路。

介面端點採用AWSPrivateLink，這項技術可讓您使用私有 IP 地址，將串流流量保留在您指定的 VPC 內。當您搭配 Direct Connect或 AWS Virtual Private Network通道使用 VPC 時，您可以將串流流量保留在您的網路中。

下列主題提供 WorkSpaces 應用程式界面端點的相關資訊。

**Topics**
+ [教學課程：從介面 VPC 端點建立和串流](creating-streaming-from-interface-vpc-endpoints.md)
+ [透過介面 VPC 端點存取 WorkSpaces 應用程式 API 操作和 CLI 命令](access-api-cli-through-interface-vpc-endpoint.md)

# 教學課程：從介面 VPC 端點建立和串流
<a name="creating-streaming-from-interface-vpc-endpoints"></a>

您可以使用 Amazon Web Services 帳戶中的介面 VPC 端點，將 Amazon VPC 和 WorkSpaces 應用程式之間的所有網路流量限制在 Amazon 網路。建立此端點之後，您可以將 WorkSpaces 應用程式堆疊或映像建置器設定為使用它。

**先決條件**

設定 WorkSpaces 應用程式的介面 VPC 端點之前，請注意下列先決條件：
+ 需要網際網路連線才能驗證使用者，並提供 WorkSpaces 應用程式運作所需的 Web 資產。此串流界面端點可將串流流量保持在 VPC 內。串流流量包含像素、USB、使用者輸入、音訊、剪貼簿、檔案上傳和下載，以及印表機流量。若要允許此流量，您必須允許 [允許的網域](allowed-domains.md) 中所列的網域。建立 VPC 端點之後，您必須允許 WorkSpaces 應用程式使用者身分驗證網域。不過，對於串流閘道，您可以限制只能存取 <vpc-endpoint-id>.streaming.appstream.<aws-region>.vpce.amazonaws.com。不需要允許列出至 \$1.amazonappstream.com。VPC 端點完整網域名稱會取代該相依性。
+ 使用者裝置所連線的網路必須能夠將流量路由到界面端點。
+ 與此界面端點關聯的安全群組必須允許從使用者連接的 IP 地址範圍對連接埠 443 (TCP) 和連接埠 1400-1499 (TCP) 的傳入存取。
+ 子網路的網路存取控制清單必須允許從暫時性網路連接埠 1024-65535 (TCP) 到使用者連接的 IP 地址範圍的傳出流量。
+ 您的 中必須有 IAM 許可政策AWS 帳戶，提供執行 `ec2:DescribeVpcEndpoints` API 動作的許可。根據預設，連接到 AmazonAppStreamServiceAccess 角色的 IAM 政策中會定義此許可。如果您有必要的許可，當您在 AWS區域中開始使用 WorkSpaces 應用程式服務時，WorkSpaces 應用程式會自動建立此服務角色，並連接必要的 IAM 政策。如需詳細資訊，請參閱[Amazon WorkSpaces 應用程式的 Identity and Access Management](controlling-access.md)。

**建立界面端點**

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

1. 在導覽窗格中，選擇 **Endpoints (端點)**，**Create Endpoint (建立端點)**。

1. 選擇**建立端點**。

1. 針對**服務類別**，請確定已選取**AWS服務**。

1. 針對**服務名稱**，選擇 **com.amazonaws.***<AWS 區域>***.appstream.streaming**。

1. 請指定下列資訊。完成時，請選擇 **Create endpoint (建立端點)**。
   + 針對 **VPC (VPC)**，選擇要在其中建立界面端點的 VPC。您可以選擇與具有 WorkSpaces 應用程式資源的 VPC 不同的 VPC。
   + 對於 **Subnets (子網路)**，請選擇欲建立端點的子網路 (可用區域)。建議您在至少兩個可用區域中選擇子網路。
   + 針對 **IP 地址類型**，選擇 IPV6 或 IPV4。
   + 確保已選取 **Enable Private DNS Name (啟用私有 DNS 名稱)** 核取方塊。
**注意**  
如果您的使用者使用網路 Proxy 存取串流執行個體，請停用網域上的任何 Proxy 快取，以及與私人端點相關聯的 DNS 名稱。應允許透過代理的 VPC 端點 DNS 名稱。
   + 針對 **Security group (安全群組)**，選擇要與端點網路界面建立關聯的安全群組。
**注意**  
安全群組必須提供從使用者連線的 IP 地址範圍對這些連接埠的傳入存取。

正在建立界面端點時，主控台中的端點狀態會顯示為 **Pending (待定)**。建立端點後，此狀態會變更為 **Available (可用)**。

 若要更新堆疊以使用您為串流工作階段建立的界面端點，請執行以下步驟。

**更新堆疊來使用新的界面端點**

1. 在 https：//[https://console.aws.amazon.com/appstream2/home](https://console.aws.amazon.com/appstream2/home) 開啟 WorkSpaces 應用程式主控台。

   請確定您在與您要使用的介面端點相同的AWS區域中開啟主控台。

1. 在導覽窗格中，選擇 **Stacks (堆疊)**，然後選擇您想要的堆疊。

1. 選擇 **VPC 端點**索引標籤，然後選擇**編輯**。

1. 在**編輯 VPC 端點**對話方塊中，針對**串流端點**選擇要用來串流流量的端點。

1. 選擇**更新**。

將透過此端點路由新串流工作階段的流量。不過，會透過先前指定的端點繼續路由目前串流工作階段的流量。

**注意**  
指定介面端點時，使用者無法使用網際網路端點串流。

# 透過介面 VPC 端點存取 WorkSpaces 應用程式 API 操作和 CLI 命令
<a name="access-api-cli-through-interface-vpc-endpoint"></a>

如果您使用 Amazon Virtual Private Cloud 託管AWS資源，您可以透過虛擬私有雲端 (VPC) 中的[介面 VPC 端點](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html) （介面端點） 直接連線至 WorkSpaces 應用程式 API 操作或命令列介面 (CLI) 命令，而不是透過網際網路連線。介面端點採用AWSPrivateLink 技術，這項技術可讓您使用私有 IP 地址，將串流流量保留在您指定的 VPC 內。當您使用界面端點時，VPC 和 WorkSpaces 應用程式之間的通訊會完全安全地在AWS網路中執行。

**注意**  
本主題說明如何透過介面端點存取 WorkSpaces 應用程式 API 操作和 CLI 命令。如需如何從 WorkSpaces 應用程式界面端點建立和串流的資訊，請參閱 [教學課程：從介面 VPC 端點建立和串流](creating-streaming-from-interface-vpc-endpoints.md)。

**先決條件**

若要使用界面端點，您必須符合下列先決條件：
+ 與此界面端點關聯的安全群組必須允許從使用者連接的 IP 地址範圍對連接埠 443 (TCP) 的傳入存取。
+ 子網路的網路存取控制清單必須允許從暫時性網路連接埠 1024-65535 (TCP) 到使用者連接的 IP 地址範圍的傳出流量。

**Topics**
+ [建立介面端點以存取 WorkSpaces 應用程式 API 操作和 CLI 命令](access-api-cli-through-interface-vpc-endpoint-create-interface-endpoint.md)
+ [使用界面端點存取 WorkSpaces 應用程式 API 操作和 CLI 命令](how-to-access-api-cli-through-interface-vpc-endpoint.md)

# 建立介面端點以存取 WorkSpaces 應用程式 API 操作和 CLI 命令
<a name="access-api-cli-through-interface-vpc-endpoint-create-interface-endpoint"></a>

執行下列步驟來建立界面端點。

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

1. 在導覽窗格中，選擇 **Endpoints (端點)**，**Create Endpoint (建立端點)**。

1. 選擇**建立端點**。

1. 對於**服務類別**，請確定已選取**AWS服務**。

1. 針對**服務名稱**，選擇 **com.amazonaws.***<AWS 區域>***.appstream.api**。

1. 請指定下列資訊。完成時，請選擇 **Create endpoint (建立端點)**。
   + 針對 **VPC (VPC)**，選取要在其中建立界面端點的 VPC。
   + 針對 **Subnets (子網路)**，選取要在其中建立端點網路界面的子網路 (可用區域)。建議您在至少兩個可用區域中選擇子網路。
   + 或者，您可以選取 **Enable Private DNS Name (啟用私有 DNS 名稱)** 核取方塊。
**注意**  
如果您選取此選項，請確定您視需要設定 VPC 和 DNS 來支援私有 DNS。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[私有 DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-private-dns)。
   + 針對 **Security group (安全群組)**，選取要與端點網路介面建立關聯的安全群組。
**注意**  
安全群組必須提供從使用者連線的 IP 地址範圍對這些連接埠的傳入存取。

正在建立界面端點時，主控台中的端點狀態會顯示為 **Pending (待定)**。建立端點後，此狀態會變更為 **Available (可用)**。

# 使用界面端點存取 WorkSpaces 應用程式 API 操作和 CLI 命令
<a name="how-to-access-api-cli-through-interface-vpc-endpoint"></a>

在您建立的介面 VPC 端點狀態變更為**可用**後，您可以使用端點來存取 WorkSpaces 應用程式 API 操作和 CLI 命令。若要這樣做，請在使用這些操作和命令時，使用界面端點的 DNS 名稱來指定 `endpoint-url` 參數。DNS 名稱為可公開解析，但此參數只能在您的 VPC 中順利路由流量。

以下範例示範當您使用 **describe-fleets** CLI 命令時，如何指定界面端點的 DNS 名稱：

```
aws appstream describe-fleets --endpoint-url <vpc-endpoint-id>.api.appstream.<aws-region>.vpce.amazonaws.com
```

下列範例示範如何在執行個體化 WorkSpaces 應用程式 Boto3 Python 用戶端時指定介面端點的 DNS 名稱：

```
appstream2client = boto3.client('appstream',region_name='<aws-region>',endpoint_url='<vpc-endpoint-id>.api.appstream.<aws-region>.vpce.amazonaws.com'
```

使用 `appstream2client` 物件的後續命令會自動使用您指定的界面端點。

如果您在界面端點上啟用私有 DNS 主機名稱，則不需要指定端點 URL。API 和 CLI 預設使用的 WorkSpaces 應用程式 API DNS 主機名稱會在 VPC 內解析。如需私有 DNS 主機名稱的詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[私有 DNS](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-private-dns)。

# 使用 FIPS 端點保護傳輸中資料
<a name="protecting-data-in-transit-FIPS-endpoints"></a>

根據預設，當您與 WorkSpaces 應用程式服務通訊時，無論是使用 WorkSpaces 應用程式主控台、 AWS 命令列界面 (AWS CLI) 或 AWS SDK 的管理員，還是從映像建置器或機群執行個體串流的使用者，所有傳輸中的資料都會使用 TLS 1.2 加密。

如果您在 AWS 透過命令列界面或 API 存取 時需要 FIPS 140-2 驗證的密碼編譯模組，請使用 FIPS 端點。WorkSpaces 應用程式在所有可使用 WorkSpaces 應用程式的美國 AWS 區域中提供 FIPS 端點。當您使用 FIPS 端點時，傳輸中的所有資料都會使用符合聯邦資訊處理標準 (FIPS) 140-2 的密碼編譯標準加密。如需 FIPS 端點的資訊，包括 WorkSpaces 應用程式端點清單，請參閱[聯邦資訊處理標準 (FIPS) 140-2](https://aws.amazon.com/compliance/fips)。

**Topics**
+ [系統管理使用的 FIPS 端點](FIPS-for-administrative-use.md)
+ [FIPS 端點的使用者串流工作階段](FIPS-for-user-streaming-sessions.md)
+ [例外狀況](FIPS-exceptions.md)

# 系統管理使用的 FIPS 端點
<a name="FIPS-for-administrative-use"></a>

若要在為 WorkSpaces 應用程式執行 AWS CLI 命令時指定 FIPS 端點，請使用 `endpoint-url` 參數。下列範例使用美國西部 （奧勒岡） 區域中的 WorkSpaces 應用程式 FIPS 端點來擷取區域中所有堆疊的清單：

```
aws appstream describe-stacks --endpoint-url https://appstream2-fips.us-west-2.amazonaws.com
```

若要為 WorkSpaces 應用程式 API 操作指定 FIPS 端點，請使用 AWS SDK 中的程序來指定自訂端點。

# FIPS 端點的使用者串流工作階段
<a name="FIPS-for-user-streaming-sessions"></a>

如果您使用 SAML 2.0 或串流 URL 驗證使用者，您就可以為使用者的串流工作階段設定 FIPS 相容連線。

若要為使用 SAML 2.0 進行身分驗證的使用者使用 FIPS 相容連線，請在設定聯合的轉送狀態時指定 WorkSpaces 應用程式 FIPS 端點。如需使用 SAML 2.0 做為聯合身分的建構轉送狀態 URL 相關詳細資訊，請參閱 [正在設定 SAML](external-identity-providers-setting-up-saml.md)。

若要為透過串流 URL 驗證的使用者設定符合 FIPS 的連線，請在從 CLI 或 SDK 呼叫 [CreateStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html) 或 AWS [CreateImageBuilderStreamingURL](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateImageBuilderStreamingURL.html) 操作時指定 WorkSpaces 應用程式 FIPS AWS 端點。使用產生的 URL 連線至串流執行個體的使用者，會透過與 FIPS 相容的連線來連線。下列範例使用美國東部 （維吉尼亞） 區域的 WorkSpaces 應用程式 FIPS 端點來產生符合 FIPS 的串流 URL：

```
aws appstream create-streaming-url --stack-name stack-name --fleet-name fleet-name --user-id user-id --endpoint-url https://appstream2-fips.us-east-1.amazonaws.com
```

# 例外狀況
<a name="FIPS-exceptions"></a>

在下列情況下，系統不支援與 FIPS 相容的連線：
+ 透過 WorkSpaces 應用程式主控台管理 WorkSpaces 應用程式
+ 使用 WorkSpaces 應用程式使用者集區功能進行身分驗證的使用者串流工作階段
+ 使用介面 VPC 端點串流
+ 透過 WorkSpaces 應用程式主控台產生符合 FIPS 標準的串流 URLs 
+ 連線到您的 Google 雲端硬碟或 OneDrive 儲存帳戶，且您的儲存空間供應商未提供 FIPS 端點

# Amazon WorkSpaces 應用程式中的安全群組
<a name="managing-network-security-groups"></a>

您可以將 VPC 與 VPC 安全群組建立關聯，藉此從機群中的串流執行個體或 Amazon WorkSpaces 應用程式中的映像建置器提供額外的存取控制。屬於 VPC 的安全群組可讓您控制 WorkSpaces 應用程式串流執行個體與 VPC 資源之間的網路流量，例如授權伺服器、檔案伺服器和資料庫伺服器。如需詳細資訊，請參閱《Amazon VPC 使用者指南》** 中的 [VPC 的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

當安全群組與機群或映像建置器建立關聯時，會套用您為 VPC 安全群組定義的規則。安全群組規則會決定是否允許來自串流執行個體的網路流量。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[安全群組規則](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules)。

在啟動新映像建置器或建立新機群時，您最多可以為五個安全群組建立關聯。您也可以將安全群組與現有機群產生關聯，或變更機群的安全群組 (若要變更機群的安全群組，您必須先停止該機群)。如需詳細資訊，請參閱 *Amazon VPC 使用者指南*中的[使用安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#WorkingWithSecurityGroups)。

如果您未選取安全群組，則映像建置器或機群將與 VPC 的預設安全群組建立關聯。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的 [VPC 的預設安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup)。

搭配 WorkSpaces 應用程式使用安全群組時，請使用這些額外的考量。
+ 所有最終使用者資料 (例如網際網路流量、主資料夾資料或使用 VPC 資源的應用程式通訊) 都會受到與串流執行個體建立關聯之安全群組的影響。
+ 串流像素資料不受安全群組影響。
+ 如果您為機群或映像建置器啟用預設網際網路存取，則相關聯安全群組的規則必須允許網際網路存取。

您可以使用 Amazon VPC 主控台為安全群組建立或編輯規則，或建立新的安全群組。
+ **將安全群組與映像建置器建立關聯**：依照 [啟動映像建置器以安裝和設定串流應用程式](tutorial-image-builder-create.md) 的指示進行。
+ **將安全群組與機群建立關聯**
  + *建立機群時*：依照 [在 Amazon WorkSpaces 應用程式中建立機群](set-up-stacks-fleets-create.md) 的指示進行。
  + *針對現有機群*：使用 AWS 管理主控台編輯機群設定。

您也可以使用 AWS CLI 和 SDKs 將安全群組與機群建立關聯。
+ **AWS CLI**：使用 [create-fleet](https://docs.aws.amazon.com/cli/latest/reference/appstream/create-fleet.html) 和 [update-fleet](https://docs.aws.amazon.com/cli/latest/reference/appstream/update-fleet.html) 命令。
+ **AWS SDKs** — 使用 [CreateFleet](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateFleet.html) 和 [UpdateFleet](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_UpdateFleet.html) API 操作。

如需詳細資訊，請參閱《AWS Command Line Interface 使用者指南》[https://docs.aws.amazon.com/cli/latest/userguide/](https://docs.aws.amazon.com/cli/latest/userguide/)和[適用於 Amazon Web Services 的工具](https://aws.amazon.com/tools/)。

# Amazon WorkSpaces 應用程式中的更新管理
<a name="update-management"></a>

WorkSpaces 應用程式提供使用較新的 WorkSpaces 應用程式軟體更新映像建置器的自動化方法。當您的映像設定為一律使用最新的 WorkSpaces 應用程式代理程式版本時，您的串流執行個體會自動更新為可從中取得的最新功能、效能改善和安全性更新 AWS。如需如何管理 WorkSpaces 應用程式代理程式版本的資訊，請參閱 [管理 WorkSpaces 應用程式代理程式版本](base-images-agent.md)。

您需負責安裝和維護 Windows 作業系統的更新、您的應用程式和其相依性。如需詳細資訊，請參閱[讓您的 Amazon WorkSpaces 應用程式映像保持在Up-to-Date狀態](keep-image-updated.md)。

您可以使用受管 WorkSpaces 應用程式映像更新，讓 WorkSpaces 應用程式映像保持up-to-date狀態。此更新方法提供最新的 Windows 作業系統更新和驅動程式更新，以及最新的 WorkSpaces 應用程式代理程式軟體。如需詳細資訊，請參閱[使用受管 WorkSpaces 應用程式映像更新來更新映像](keep-image-updated-managed-image-updates.md)。

如果要為串流執行個體上的應用程式管理更新，可以使用提供的任何自動更新服務。您也可以按照應用程式廠商提供的安裝更新建議進行操作。

# Amazon WorkSpaces 應用程式跨服務混淆代理人預防
<a name="confused-deputy"></a>

混淆代理人問題屬於安全性議題，其中沒有執行動作許可的實體強制權限更高的實體執行該動作。在 AWS中，跨服務模擬可能會導致帳戶資源發生混淆代理人問題。在某個服務 (*呼叫服務*) 呼叫另一個服務 (*被呼叫服務*) 時，會發生跨服務模擬。呼叫服務可以操縱被呼叫服務來使用其許可，以呼叫服務本身未具備執行許可的方式，對客戶的資源執行動作。為了防止這種情況， AWS 提供工具，協助您使用可存取您帳戶中資源的服務主體來保護所有 服務的資料。

如需限制存取這些資源時的許可，我們建議在資源政策中使用 `aws:SourceArn` 和 `aws:SourceAccount` 全域條件內容鍵。下列準則詳細說明使用這些索引鍵來保護資源時的建議和需求：
+ 如果您只想要允許一個資源與跨服務存取相關聯，則使用 `aws:SourceArn`。
+ 如果您想要允許所指定帳戶中的任何資源與跨服務使用相關聯，則使用 `aws:SourceAccount`。
+ 如果 `aws:SourceArn` 鍵未包含帳戶 ID，您必須使用這兩個全域條件內容鍵 (`aws:SourceArn` 和 `aws:SourceAccount`) 來限制許可。
+ 如果同時使用全域條件內容鍵，且 `aws:SourceArn` 值包含帳戶 ID，則在相同政策陳述式中使用 `aws:SourceAccount` 鍵時，必須使用相同的帳戶 ID。

防範混淆代理人問題的最有效方法是精確使用您允許的資源 Amazon Resource Name (ARN) 資源。如果不知道資源的完整 ARN，請使用 `aws:SourceArn` 全域條件內容鍵搭配萬用字元 (例如 \$1) 來表示 ARN 的未知部分。若要指定多個資源，您也可以在 ARN 中使用萬用字元。例如，您可以將 ARN 格式化為 `arn:aws:servicename::region-name::your AWS 帳戶 ID:*`。

**Topics**
+ [範例：預防 WorkSpaces 應用程式服務角色跨服務混淆代理人](example-confused-deputy.md)
+ [範例：預防 WorkSpaces 應用程式機群機器角色跨服務混淆代理人](example-fleet-machine.md)
+ [範例：WorkSpaces 應用程式彈性機群工作階段指令碼 Amazon S3 儲存貯體政策跨服務混淆代理人預防](example-elastic-fleets.md)
+ [範例：預防 WorkSpaces 應用程式應用程式 Amazon S3 儲存貯體政策跨服務混淆代理人](example-s3-bucket.md)

# 範例：預防 WorkSpaces 應用程式服務角色跨服務混淆代理人
<a name="example-confused-deputy"></a>

WorkSpaces 應用程式使用各種資源 ARNs 擔任服務角色，這會導致複雜的條件式陳述式。建議使用萬用字元資源類型，以防止任何非預期的 WorkSpaces 應用程式資源失敗。

**Example `aws:SourceAccount` 條件式：**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS 帳戶 ID"
                }
            }
        }
    ]
}
```

**Example `aws:SourceArn` 條件式：**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {                   
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:*"
                }
            }
        }
    ]
}
```

# 範例：預防 WorkSpaces 應用程式機群機器角色跨服務混淆代理人
<a name="example-fleet-machine"></a>

**Example `aws:SourceAccount` 條件式：**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS 帳戶 ID"
                }
            }
        }
    ]
}
```

**Example `aws:SourceArn` 條件式：**  
如果您想要針對多個機群使用一個 IAM 角色，我們建議您使用`aws:SourceArn`全域內容條件金鑰搭配萬用字元 (\$1)，以符合多個 WorkSpaces 應用程式機群資源。  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:fleet/your-fleet-name"
                }
            }
        }
    ]
}
```

# 範例：WorkSpaces 應用程式彈性機群工作階段指令碼 Amazon S3 儲存貯體政策跨服務混淆代理人預防
<a name="example-elastic-fleets"></a>

**Example `aws:SourceAccount` 條件式：**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::your-bucket-name/your-session-script-path",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS 帳戶 ID"
                } 
            }
        }
    ]
}
```

**Example `aws:SourceArn` 條件式：**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "appstream.amazonaws.com"
                ]
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/AppStream2/*",
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:fleet/yourFleetName"
                }
            }
        }
    ]
}
```

# 範例：預防 WorkSpaces 應用程式應用程式 Amazon S3 儲存貯體政策跨服務混淆代理人
<a name="example-s3-bucket"></a>

當您將資料存放在 Amazon S3 儲存貯體中時，儲存貯體可能會遭遇混淆代理人問題。這可能會使彈性機群、應用程式區塊、安裝指令碼、應用程式圖示及工作階段指令碼等資料容易受到惡意人士攻擊。

為了預防混淆代理人問題，您可以在 Amazon S3 儲存貯體政策中針對 `ELASTIC-FLEET-EXAMPLE-BUCKET` 指定 `aws:SourceAccount` 條件或 `aws:SourceArn` 條件。

以下資源政策說明如何透過下列任一種方式預防混淆代理人問題：
+ `aws:SourceAccount` 具有您 AWS 帳戶 ID 的
+ 全域條件內容鍵 `aws:SourceArn`

WorkSpaces 應用程式目前不支援應用程式圖示的混淆代理人預防。服務僅支援 VHD 檔案和安裝指令碼。如果您嘗試為應用程式圖示新增其他條件，圖示將不會對使用者顯示。

在下列範例中，儲存貯體政策僅允許擁有者帳戶中的 WorkSpaces 應用程式彈性機群資源存取 `ELASTIC_FLEET_EXAMPLE_BUCKET`。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*",
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "your AWS 帳戶 ID"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*"
        }
    ]
}
```

------

您也可以使用 `aws:SourceArn` 條件來限制特定資源的資源存取權。

**注意**  
如果不知道資源的完整 ARN，或者您想要指定多個資源，請使用 `aws:SourceArn` 全域條件內容鍵搭配萬用字元 (\$1) 來表示 ARN 的未知部分。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*",
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*"
            ],
            "Condition": {
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:app-block/*"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*"
        }
    ]
}
```

------

您也可以使用 `aws:SourceArn` 和 `aws:SourceAccount` 條件來限制特定資源和帳戶的資源存取權。

**注意**  
如果不知道資源的完整 ARN，或者您想要指定多個資源，請使用 `aws:SourceArn` 全域條件內容鍵搭配萬用字元 (\$1) 來表示 ARN 的未知部分。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfusedDeputyPreventionExamplePolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/vhd-folder/*",
                "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/scripts/*"
            ],
            "Condition": {
                "ArnLike": {
                "aws:SourceArn": "arn:aws:appstream:us-east-1:111122223333:app-block/*"
                },
                "StringEquals": {
                    "aws:SourceAccount": "your AWS account ID"
                }
            }
        },
        {
            "Sid": "AllowRetrievalPermissionsToS3AppIconsForAppStream",
            "Effect": "Allow",
            "Principal": {
                "Service": "appstream.amazonaws.com"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::ELASTIC-FLEET-EXAMPLE-BUCKET/app-icons/*"
        }
    ]
}
```

------

# Amazon WorkSpaces 應用程式的安全最佳實務
<a name="security-best-practices"></a>

 雲端安全是 Amazon Web Services (AWS) 最重視的一環。安全與合規是 AWS 和 客戶之間的共同責任。如需詳細資訊，請參閱 [https://aws.amazon.com/compliance/shared-responsibility-model/](https://aws.amazon.com/compliance/shared-responsibility-model/)。身為 AWS 和 WorkSpaces 應用程式客戶，在堆疊、機群、映像和聯網等不同層上實作安全措施非常重要。

 由於 WorkSpaces 應用程式具有暫時性性質，因此通常偏好做為應用程式和桌面交付的安全解決方案。考慮 Windows 部署中常見的防毒解決方案是否與使用者工作階段結束時預先定義和清除的環境的使用案例相關。防毒為虛擬化執行個體增加額外負荷，因此這是減輕不必要的活動的最佳實務。例如，在開機時掃描系統磁碟區 （暫時性） 並不會增加 WorkSpaces 應用程式的整體安全性。

 安全 WorkSpaces 應用程式的兩個關鍵問題以 為中心：
+  保留工作階段以外的使用者狀態是否為必要？ 
+  使用者在工作階段中應擁有多少存取權？ 

**Topics**
+ [保護持久性資料](securing-persistent-data.md)
+ [端點安全與防毒](endpoint-security-antivirus.md)
+ [網路排除](network-exclusions.md)
+ [保護 WorkSpaces 應用程式工作階段](securing-session.md)
+ [防火牆和路由](firewalls-routing.md)
+ [資料外洩防護](data-loss-prevention.md)
+ [控制輸出流量](controlling-egress-traffic.md)
+ [使用 AWS 服務](using-services.md)

# 保護持久性資料
<a name="securing-persistent-data"></a>

 WorkSpaces 應用程式的部署可能需要以某種形式保留使用者狀態。這可能是為個別使用者保留資料，或使用共用資料夾保留資料以進行協同合作。AppStream 2.0 執行個體儲存體是暫時性的，沒有加密選項。

 WorkSpaces 應用程式透過 Amazon S3 中的主資料夾和應用程式設定提供使用者狀態持續性。有些使用案例需要更妥善地控制使用者狀態持久性。對於這些使用案例， AWS 建議使用伺服器訊息區塊 (SMB) 檔案共用。

## 使用者狀態和資料
<a name="user-state-and-data"></a>

由於大多數 Windows 應用程式在與使用者建立的應用程式資料共置時執行最佳且最安全，因此最佳實務是將此資料保留在與 WorkSpaces 應用程式機群 AWS 區域 相同的 中。加密此資料是最佳實務。使用者主資料夾的預設行為是使用來自金鑰 AWS 管理服務 () 的 Amazon S3-managed加密金鑰來加密靜態檔案和資料夾AWS KMS。請務必注意，具有 AWS 主控台或 Amazon S3 儲存貯體存取權的 AWS 管理使用者將能夠直接存取這些檔案。

在需要來自 Windows 檔案共享的伺服器訊息區塊 (SMB) 目標來存放使用者檔案和資料夾的設計中，此程序為自動或需要組態。

 *表 5 — 保護使用者資料的選項* 


|   **SMB 目標**   |  **Encryption-at-rest**  |  **Encryption-in-transit**  |   **防毒 (AV)**   | 
| --- | --- | --- | --- | 
|  FSx for Windows File Server  |  [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-at-rest.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-at-rest.html)  |  [https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-in-transit.html](https://docs.aws.amazon.com/fsx/latest/WindowsGuide/encryption-in-transit.html)  |   安裝在遠端執行個體上的 AV 會在映射的磁碟機上執行掃描   | 
|   **檔案閘道、 AWS Storage Gateway**   |  根據預設，存放在 S3 AWS Storage Gateway 中的所有資料都會使用 Amazon S3-Managed管加密金鑰 (SSE-S3) 加密伺服器端。您可以選擇性地設定不同的閘道類型，以使用 AWS Key Management Service (KMS) 加密儲存的資料  |  在任何類型的閘道設備與 AWS 儲存體之間傳輸的所有資料都會使用 SSL 加密。 |   安裝在遠端執行個體上的 AV 會在映射的磁碟機上執行掃描   | 
|  EC2-based Windows 檔案伺服器  |  [啟用 EBS 加密](https://docs.aws.amazon.com/kms/latest/developerguide/services-ebs.html)  |  PowerShell； Set- SmbServerConfiguration – EncryptData \$1True |   安裝在伺服器上的 AV 會在本機磁碟機上執行掃描   | 

# 端點安全與防毒
<a name="endpoint-security-antivirus"></a>

WorkSpaces 應用程式執行個體的短暫暫時性性質和資料的持久性不足表示需要不同的方法，以確保使用者體驗和效能不會因持久性桌面上所需的活動而受到影響。端點安全代理程式會在有組織政策或與外部資料輸入搭配使用時，安裝在 WorkSpaces 應用程式映像中，例如電子郵件、檔案傳入、外部 Web 瀏覽。

## 移除唯一識別符
<a name="removing-unique-iidentifiers"></a>

Endpoint Security 代理程式可能有全域唯一識別符 (GUID)，必須在機群執行個體建立程序期間重設。供應商在映像中安裝其產品的指示，可確保為從映像產生的每個執行個體產生新的 GUID。

為了確保不會產生 GUID，請先安裝端點安全代理程式做為最後一個動作，再執行 WorkSpaces 應用程式助理來產生映像。

## 效能最佳化
<a name="performance-optimization"></a>

Endpoint Security Vendors 提供最佳化 WorkSpaces 應用程式效能的切換和設定。設定因廠商而異，可以在其文件中找到，通常是在 VDI 的 區段中。某些常見設定包括但不限於：
+ 關閉開機掃描，以確保執行個體建立、啟動和登入時間最小化
+ 關閉排程掃描以防止不必要的掃描
+ 關閉簽章快取以防止檔案列舉
+ 啟用 VDI 最佳化 IO 設定
+ 應用程式確保效能所需的排除項目

端點安全廠商提供與虛擬桌面環境搭配使用的指示，以最佳化效能。
+ 適用於[虛擬桌面基礎設施的 Trend Micro Office Scan Support - Apex One/OfficeScan (trendmicro.com：//)](https://success.trendmicro.com/solution/1055260-best-practice-for-setting-up-virtual-desktop-infrastructure-vdi-in-officescan)
+ CrowdStrike 和[如何在資料中心安裝 CrowdStrike Falcon](https://www.crowdstrike.com/blog/tech-center/install-falcon-datacenter/)
+ Sophos 和 [Sophos Central Endpoint：如何在黃金映像上安裝 ，以避免重複的身分](https://support.sophos.com/support/s/article/KB-000035040?language=en_US)和 [Sophos Central：在虛擬桌面環境中安裝 Windows 端點時的最佳實務](https://support.sophos.com/support/s/article/KB-000039009?language=en_US)
+ 在虛擬桌面基礎設施系統上佈建和部署 McAfee 和 McAfee 代理程式 [McAfee ](https://kc.mcafee.com/corporate/index?page=content&id=KB87654)
+ Microsoft Endpoint Security 和[為非持久性 VDI 機器設定 Microsoft Defender 防毒 - Microsoft Tech Community](https://techcommunity.microsoft.com/t5/microsoft-defender-for-endpoint/configuring-microsoft-defender-antivirus-for-non-persistent-vdi/ba-p/1489633)

## 掃描排除項目
<a name="scanning-exclusions"></a>

 如果安全軟體安裝在 WorkSpaces 應用程式執行個體中，則安全軟體不得干擾下列程序。

 *表 6 — WorkSpaces 應用程式處理安全軟體時，不得干擾下列程序。*


|  **服務**  |  **Processes**  | 
| --- | --- | 
|  AmazonCloudWatchAgent  |  「C：\$1Program Files\$1Amazon\$1AmazonCloudWatchAgent\$1start-amazon- cloudwatch-agent.exe」  | 
|  AmazonSSMAgent  |  「C：\$1Program Files\$1Amazon\$1SSM\$1amazon-ssm-agent.exe」  | 
|  NICE DCV  |  "C：\$1Program Files\$1NICE\$1DCV\$1Server\$1bin\$1dcvserver.exe" "C：\$1Program Files\$1NICE\$1DCV\$1Server\$1bin\$1dcvagent.exe" | 
|  WorkSpaces 應用程式  |   「C：\$1Program Files\$1Amazon\$1AppStream2\$1StorageConnector\$1StorageConnector.exe"  在資料夾 "C：\$1Program Files\$1Amazon\$1Photon\$1" 中   "。\$1Agent\$1PhotonAgent.exe"  "。\$1Agent\$1s5cmd.exe"  "。\$1WebServer\$1PhotonAgentWebServer.exe"  "。\$1CustomShell\$1PhotonWindowsAppSwitcher.exe"  "。\$1CustomShell\$1PhotonWindowsCustomShell.exe"  "。\$1CustomShell\$1PhotonWindowsCustomShellBackground.exe"  | 

## 資料夾
<a name="folders"></a>

 如果安全軟體安裝在 WorkSpaces 應用程式執行個體中，則軟體不得干擾下列資料夾：

**Example**  

```
    C:\Program Files\Amazon\* 
    C:\ProgramData\Amazon\* 
    C:\Program Files (x86)\AWS Tools\* 
    C:\Program Files (x86)\AWS SDK for .NET\* 
    C:\Program Files\NICE\* 
    C:\ProgramData\NICE\* 
    C:\AppStream\*
```

## 端點安全主控台衛生
<a name="endpoint-security-console-hygiene"></a>

WorkSpaces 應用程式將在每次使用者連線超過閒置和中斷連線逾時時建立新的唯一執行個體。執行個體會有唯一的名稱，並會在端點安全管理 condole 中累積。將超過 4 天或更長時間 （或更短時間，視 WorkSpaces 應用程式工作階段逾時而定） 的未使用過時機器設定為刪除，可將主控台中過期的執行個體數量降至最低。

# 網路排除
<a name="network-exclusions"></a>

 WorkSpaces 應用程式管理網路範圍 (`198.19.0.0/16`) 和下列連接埠和地址不應被 WorkSpaces 應用程式執行個體內的任何安全/防火牆或防毒解決方案封鎖。

 *表 7 — WorkSpaces 應用程式串流執行個體安全軟體中的連接埠不得干擾* 


|  **連接埠**  |   **用途**   | 
| --- | --- | 
|  8300  |   這用於建立串流連線   | 
|  3128  |  這用於管理 WorkSpaces 應用程式串流執行個體  | 
|  8000  |   這用於管理 WorkSpaces 應用程式串流執行個體   | 
|  8443  |   這用於管理 WorkSpaces 應用程式串流執行個體   | 
|  53  |   DNS   | 

 *表 8 — WorkSpaces 應用程式受管服務地址安全軟體不得干擾* 


|  **連接埠**  |  **用途**  | 
| --- | --- | 
|  169.254.169.123  |  NTP  | 
|  169.254.169.249  |  NVIDIA GRID 授權服務  | 
|  169.254.169.250  |  KMS  | 
|  169.254.169.251  |  KMS  | 
|  169.254.169.253  |  DNS  | 
|  169.254.169.254  |  中繼資料  | 

# 保護 WorkSpaces 應用程式工作階段
<a name="securing-session"></a>

## 限制應用程式和作業系統控制
<a name="limiting-application-and-operating-system-controls"></a>

 WorkSpaces 應用程式可讓管理員指定可在應用程式串流模式下從網頁啟動哪些應用程式。不過，這並不保證只有指定的應用程式才能執行。

 Windows 公用程式和應用程式可透過其他方式透過作業系統啟動。 AWS 建議使用 [https://aws.amazon.com/blogs/desktop-and-application-streaming/using-microsoft-applocker-to-manage-application-experience-on-amazon-appstream-2-0/](https://aws.amazon.com/blogs/desktop-and-application-streaming/using-microsoft-applocker-to-manage-application-experience-on-amazon-appstream-2-0/)，以確保您組織所需的應用程式只能執行。預設規則必須修改，因為它們會授予每個人關鍵系統目錄的路徑存取權。

**注意**  
 Windows Server 2016 和 2019 需要執行 Windows Application Identity 服務，才能強制執行 AppLocker 規則。使用 Microsoft AppLocker 從 WorkSpaces 應用程式存取應用程式的詳細資訊，請參閱 [AppStream 管理員指南。](https://docs.aws.amazon.com/appstream2/latest/developerguide/data-protection.html#application-access)

 對於加入 Active Directory 網域的機群執行個體，請使用群組政策物件 (GPOs) 提供使用者和系統設定，以保護使用者應用程式和資源存取。

# 防火牆和路由
<a name="firewalls-routing"></a>

 建立 WorkSpaces 應用程式機群時，必須指派子網路和安全群組。子網路具有現有的網路存取控制清單 (NACLs和路由表 (NACL) 指派。啟動新的映像建置器或建立新的機群[安全群組](https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-network-security-groups.html)時，最多可以建立五個安全群組的關聯，最多可以有[五個來自現有安全群組的指派](https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-network-security-groups.html)。對於每個安全群組，您新增規則來控制進出執行個體的傳出和傳入網路流量

NACL 是 VPC 的選用安全層，可做為無狀態防火牆來控制傳入和傳出一或多個子網路的流量。您可以使用與您的安全群組相似的規則來設定網路 ACL，以為您的 VPC 新增額外的安全 layer。如需安全群組和網路 ACLs 之間差異的詳細資訊，請參閱[比較安全群組和 NACLs頁面](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Security.html#VPC_Security_Comparison)。

設計和套用安全群組和 NACL 規則時，請考慮 AWS Well-Architected 最佳實務的最低權限。*最低權限*是僅授予完成任務所需許可的原則。

對於具有高速私有網路將內部部署環境連線至 AWS （透過 AWS Direct Connect) 的客戶，您可以考慮使用 AppStream 的 VPC 端點，這表示串流流量將透過私有網路連線路由，而不是透過公有網際網路。如需本主題的詳細資訊，請參閱本文件的 WorkSpaces 應用程式串流介面 VPC 端點一節。

# 資料外洩防護
<a name="data-loss-prevention"></a>

我們將探討兩種類型的資料遺失預防。

## 用戶端到 AppStream 2.0 執行個體資料傳輸控制
<a name="client-to-AppStream-instance-data-transfer-controls"></a>

 *表 9 — 控制資料輸入和輸出的指引* 


|  **設定**  |  **選項**  |  **指引**  | 
| --- | --- | --- | 
|  剪貼簿  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/data-loss-prevention.html)  |  停用此設定不會停用工作階段中的複製和貼上。如果需要將資料複製到工作階段，請選擇僅貼到遠端工作階段，以將資料外洩的可能性降至最低。 | 
|  檔案傳輸  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/data-loss-prevention.html)  |  避免啟用此設定以防止資料外洩。 | 
|  列印至本機裝置  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/data-loss-prevention.html)  |  如果需要列印，請使用由組織控制和監控的網路映射印表機。 | 

 考慮現有組織資料傳輸解決方案相較於堆疊設定的優點。這些組態並非設計用來取代全面的安全資料傳輸解決方案。

# 控制輸出流量
<a name="controlling-egress-traffic"></a>

當資料遺失是問題時，請務必涵蓋使用者在 WorkSpaces 應用程式執行個體內時可存取的內容。網路結束 （或輸出） 路徑是什麼樣子？ 一般要求使用者在其 WorkSpaces 應用程式執行個體中擁有公有網際網路存取，因此在網路路徑中放置 WebProxy 或內容篩選解決方案需要考慮。其他考量包括本機防毒應用程式和 AppStream 執行個體內的其他端點安全措施 （如需詳細資訊，請參閱「端點安全和防毒」一節）。

# 使用 AWS 服務
<a name="using-services"></a>

## AWS Identity and Access Management
<a name="aws-identity-and-access-management"></a>

 使用 IAM 角色來存取 AWS 服務，並在連接到服務的 IAM 政策中具有特定性，這是最佳實務，只提供 WorkSpaces 應用程式工作階段中的使用者存取 ，而無需管理其他登入資料。遵循將 [https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html#best-practices-for-using-iam-role-with-streaming-instances](https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html#best-practices-for-using-iam-role-with-streaming-instances)。

 建立 [https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html)體，以在主資料夾和應用程式設定持續性中保留使用者資料。這[https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-restricted-access](https://docs.aws.amazon.com/appstream2/latest/developerguide/s3-iam-policy.html#s3-iam-policy-restricted-access)存取。

## VPC 端點
<a name="vpc-endpoints-1"></a>

 VPC 端點可讓您的 VPC 與支援的 AWS 服務，以及採用 技術的 VPC 端點服務之間的私有連線 AWS PrivateLink。 AWS PrivateLink 是一種技術，可讓您使用私有 IP 地址來私有存取服務。VPC 與另一個服務之間的流量都會保持在 Amazon 網路的範圍內。如果只有 AWS 服務需要公有網際網路存取，VPC 端點會完全移除對 NAT 閘道和網際網路閘道的需求。

 在自動化常式或開發人員需要對 WorkSpaces 應用程式進行 API 呼叫的環境中，[https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/access-api-cli-through-interface-vpc-endpoint.html)。例如，如果私有子網路中有 EC2 執行個體沒有公有網際網路存取，WorkSpaces 應用程式 API 的 VPC 端點可用來呼叫 AppStream 2.0 API 操作，例如 [https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html](https://docs.aws.amazon.com/appstream2/latest/APIReference/API_CreateStreamingURL.html)。下圖顯示範例設定，其中 Lambda 函數和 EC2 執行個體會耗用 WorkSpaces 應用程式 API 和串流 VPC 端點。

![\[VPC 端點的參考架構圖\]](http://docs.aws.amazon.com/zh_tw/appstream2/latest/developerguide/images/vpc-endpoint.jpeg)


 *VPC 端點* 

 串流 VPC 端點可讓您透過 VPC 端點串流工作階段。此串流界面端點可將串流流量保持在 VPC 內。串流流量包含像素、USB、使用者輸入、音訊、剪貼簿、檔案上傳和下載，以及印表機流量。若要使用 VPC 端點，必須在 WorkSpaces 應用程式堆疊中啟用 VPC 端點設定。這可做為從網際網路存取有限且可透過 Direct Connect 執行個體存取之位置透過公有網際網路串流使用者工作階段的替代方案。透過 VPC 端點串流使用者工作階段需要下列項目：
+  與介面端點相關聯的安全群組必須允許從使用者連線的 IP 地址範圍存取連接埠 `443`(TCP) 和連接埠 `1400–1499`(TCP)。
+  子網路的網路存取控制清單必須允許從暫時性網路連接埠 `1024-65535`(TCP) 到使用者連線之 IP 地址範圍的傳出流量。
+  需要網際網路連線才能驗證使用者，並提供 WorkSpaces 應用程式運作所需的 Web 資產。

 若要進一步了解如何使用 WorkSpaces 應用程式限制 AWS 服務的流量，請參閱[https://docs.aws.amazon.com/appstream2/latest/developerguide/creating-streaming-from-interface-vpc-endpoints.html](https://docs.aws.amazon.com/appstream2/latest/developerguide/creating-streaming-from-interface-vpc-endpoints.html)的管理指南。

 需要完整公有網際網路存取時，最佳實務是在映像建置器上停用 Internet Explorer 增強型安全組態 (ESC)。如需詳細資訊，請參閱 WorkSpaces 應用程式管理指南，以[https://docs.aws.amazon.com/appstream2/latest/developerguide/customize-fleets.html#customize-fleets-disable-ie-esc](https://docs.aws.amazon.com/appstream2/latest/developerguide/customize-fleets.html#customize-fleets-disable-ie-esc)。

## 在執行個體上設定執行個體中繼資料服務 (IMDS)
<a name="configuring-imds"></a>

本主題說明執行個體中繼資料服務 (IMDS)。

*執行個體中繼資料*是與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體相關的資料，可供應用程式用來設定或管理執行中的執行個體。執行個體中繼資料服務 (IMDS) 是一種執行個體上的元件，可供執行個體上的程式碼用來安全地存取執行個體中繼資料。如需詳細資訊，請參閱《Amazon EC2 使用者指南》**中的[執行個體中繼資料與使用者資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html)。

程式碼可使用下列兩種方法之一，從執行中執行個體存取執行個體中繼資料：執行個體中繼資料服務第 1 版 (IMDSv1) 或執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 會使用工作階段導向的請求，並減緩可能用來嘗試存取 IMDS 的幾種漏洞類型。如需這兩種方法的資訊，請參閱《*Amazon EC2 使用者指南*》中的[設定執行個體中繼資料服務](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)。

### IMDS 的資源支援
<a name="imds-resource-support"></a>

Always-On、On-Demand、Single-Session 和 Multi-Session Fleets，以及所有映像建置器，在使用 2024 年 1 月 16 日當天或之後發行的代理程式版本或受管映像更新執行 WorkSpaces 應用程式映像時，都支援 IMDSv1 和 IMDSv2。 IMDSv2 

Elastic Fleets 和 AppBlock Builders 執行個體也同時支援 IMDSv1 和 IMDSv2。

### IMDS 屬性設定的範例
<a name="imds-examples"></a>

以下是選擇 IMDS 方法的兩個範例：

#### Java v2 SDK 範例
<a name="java-sdk-example"></a>

以下範例請求使用`disableIMDSV1`屬性停用 IMDSv1 

```
CreateFleetRequest request = CreateFleetRequest.builder()
 .name("TestFleet")
 .imageArn("arn:aws:appstream:us-east-1::image/TestImage")
 .instanceType("stream.standard.large")
 .fleetType(FleetType.ALWAYS_ON)
 .computeCapacity(ComputeCapacity.builder()
 .desiredInstances(5)
 .build())
 .description("Test fleet description")
 .displayName("Test Fleet Display Name")
 .enableDefaultInternetAccess(true)
 .maxUserDurationInSeconds(3600)
 .disconnectTimeoutInSeconds(900)
 .idleDisconnectTimeoutInSeconds(600)
 .iamRoleArn("arn:aws:iam::123456789012:role/TestRole")
 .streamView(StreamView.APP)
 .platform(PlatformType.WINDOWS)
 .maxConcurrentSessions(10)
 .maxSessionsPerInstance(2)
 .tags(tags)
 .disableIMDSV1(true)
 .build();
```

將 **disableIMDSV1** 設為 true 以停用 IMDSv1 並強制執行 IMDSv2。

將 **disableIMDSV1** 設定為 false 以啟用 IMDSv1 和 IMDSv2。

#### CLI 範例
<a name="cli-example"></a>

以下範例請求使用`--disable-imdsv1`屬性停用 IMDSv1 

```
aws appstream create-fleet --name test-fleet --image-arn "arn:aws:appstream:us-east-1::image/test-image" --disable-imdsv1 --instance-type stream.standard.small --compute-capacity DesiredInstances=2 --max-user-duration-in-seconds 57600 --disconnect-timeout-in-seconds 57600 --region us-east-1
```

`--disable-imdsv1` 設為 true 以停用 IMDSv1 並強制執行 IMDSv2。

`--no-disable-imdsv1` 設定為 false 以啟用 IMDSv1 和 IMDSv2。