本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS 服務
AWS Identity and Access Management
使用 IAM 角色來存取 AWS 服務,並在連接到服務的 IAM 政策中具有特定性,這是最佳實務,只提供 WorkSpaces 應用程式工作階段中的使用者存取 ,而無需管理其他登入資料。遵循將 IAM 角色與 WorkSpaces 應用程式搭配使用的最佳實務。
建立 IAM 政策以保護建立的 Amazon S3 儲存貯體,以在主資料夾和應用程式設定持續性中保留使用者資料。這可防止非 WorkSpaces 應用程式管理員存取。
VPC 端點
VPC 端點可讓您的 VPC 與支援的 AWS 服務,以及採用 技術的 VPC 端點服務之間的私有連線 AWS PrivateLink。 AWS PrivateLink 是一種技術,可讓您使用私有 IP 地址來私有存取服務。VPC 與另一個服務之間的流量都會保持在 Amazon 網路的範圍內。如果只有 AWS 服務需要公有網際網路存取,VPC 端點會完全移除對 NAT 閘道和網際網路閘道的需求。
在自動化常式或開發人員需要對 WorkSpaces 應用程式進行 API 呼叫的環境中,為 WorkSpaces 應用程式 API 操作建立介面 VPC 端點。例如,如果私有子網路中有 EC2 執行個體沒有公有網際網路存取,WorkSpaces 應用程式 API 的 VPC 端點可用來呼叫 AppStream 2.0 API 操作,例如 CreateStreamingURL。下圖顯示範例設定,其中 Lambda 函數和 EC2 執行個體會耗用 WorkSpaces 應用程式 API 和串流 VPC 端點。
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 服務的流量,請參閱從 VPC 端點建立和串流的管理指南。
需要完整公有網際網路存取時,最佳實務是在映像建置器上停用 Internet Explorer 增強型安全組態 (ESC)。如需詳細資訊,請參閱 WorkSpaces 應用程式管理指南,以停用 Internet Explorer 增強型安全組態。
在執行個體上設定執行個體中繼資料服務 (IMDS)
本主題說明執行個體中繼資料服務 (IMDS)。
執行個體中繼資料是與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體相關的資料,可供應用程式用來設定或管理執行中的執行個體。執行個體中繼資料服務 (IMDS) 是一種執行個體上的元件,可供執行個體上的程式碼用來安全地存取執行個體中繼資料。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的執行個體中繼資料與使用者資料。
程式碼可使用下列兩種方法之一,從執行中執行個體存取執行個體中繼資料:執行個體中繼資料服務第 1 版 (IMDSv1) 或執行個體中繼資料服務第 2 版 (IMDSv2)。IMDSv2 會使用工作階段導向的請求,並減緩可能用來嘗試存取 IMDS 的幾種漏洞類型。如需這兩種方法的資訊,請參閱《Amazon EC2 使用者指南》中的設定執行個體中繼資料服務。
IMDS 的資源支援
Always-On、On-Demand、Single-Session 和 Multi-Session Fleets,以及所有映像建置器,在使用 2024 年 1 月 16 日當天或之後發行的代理程式版本或受管映像更新執行 WorkSpaces 應用程式映像時,都支援 IMDSv1 和 IMDSv2。 IMDSv2
Elastic Fleets 和 AppBlock Builders 執行個體也同時支援 IMDSv1 和 IMDSv2。
IMDS 屬性設定的範例
以下是選擇 IMDS 方法的兩個範例:
Java v2 SDK 範例
以下範例請求使用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 範例
以下範例請求使用--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。