本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 WorkSpaces 串流執行個體上執行的應用程式和指令碼,必須在其 AWS API 請求中包含 AWS 登入資料。您可以建立 IAM 角色來管理這些憑證。IAM 角色會指定一組可用於存取 AWS 資源的許可。不過,此角色並非與某個人單獨關聯。反之,任何需要此角色的任何人都可以擔任此角色。
您可以將 IAM 角色套用至 WorkSpaces 串流執行個體。當串流執行個體切換為 (擔任) 該角色時,該角色會提供暫時安全登入資料。您的應用程式或指令碼會使用這些憑證,在串流執行個體上執行 API 動作和管理任務。WorkSpaces 會為您管理臨時登入資料切換。
目錄
搭配 WorkSpaces 串流執行個體使用 IAM 角色的最佳實務
當您搭配 WorkSpaces 串流執行個體使用 IAM 角色時,建議您遵循下列實務:
限制您授予 AWS API 動作和資源的許可。
當您建立 IAM 政策並將其連接至與 WorkSpaces 串流執行個體相關聯的 IAM 角色時,請遵循最低權限原則。當您使用需要存取 AWS API 動作或資源的應用程式或指令碼時,請判斷所需的特定動作和資源。然後,建立允許應用程式或指令碼僅執行那些動作的政策。如需詳細資訊,請參閱《IAM 使用者指南》中的授予最低權限。
為每個 WorkSpaces 資源建立 IAM 角色。
為每個 WorkSpaces 資源建立唯一的 IAM 角色是遵循最低權限原則的做法。這樣做也可讓您修改資源的許可,而不會影響其他資源。
限制可使用登入資料的位置。
IAM 政策可讓您定義可使用 IAM 角色來存取資源的條件。例如,您可以包含條件,以指定請求可能來自的 IP 地址範圍。這樣做可防止登入資料在您的環境外遭到使用。如需詳細資訊,請參閱《IAM 使用者指南》中的使用政策條件提供額外的安全性。
設定現有 IAM 角色以搭配 WorkSpaces 串流執行個體使用
本主題說明如何設定現有的 IAM 角色,以便與 WorkSpaces 搭配使用。
先決條件
您想要與 WorkSpaces 搭配使用的 IAM 角色必須符合下列先決條件:
IAM 角色必須與 WorkSpaces 串流執行個體位於相同的 Amazon Web Services 帳戶中。
IAM 角色不能是服務角色。
連接至 IAM 角色的信任關係政策必須包含 WorkSpaces 服務做為委託人。委託人是 中的實體 AWS ,可執行動作和存取資源。政策也必須包含
sts:AssumeRole
動作。此政策組態將 WorkSpaces 定義為信任的實體。如果您要將 IAM 角色套用至 WorkSpaces,WorkSpaces 必須執行 2019 年 9 月 3 日或之後發行的 WorkSpaces 代理程式版本。如果您要將 IAM 角色套用到 WorkSpaces,WorkSpaces 必須使用在相同日期或之後發行的代理程式版本映像。
讓 WorkSpaces 服務主體擔任現有的 IAM 角色
若要執行以下步驟,您必須以有權列出和更新 IAM 角色的 IAM 使用者身分登入帳戶。如果您沒有所需許可,可請 Amazon Web Services 帳戶管理員在您的帳戶中執行這些步驟,或授予您必要的許可。
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇角色。
-
在您帳戶的角色清單中,選擇您想要修改的角色名稱。
選擇 Trust Relationships (信任關係) 標籤,然後選擇 Edit Trust Relationship (編輯信任關係)。
在 Policy Document (政策文件) 下,確認信任關係政策包含適用於
workspaces.amazonaws.com
服務委託人的sts:AssumeRole
動作:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "workspaces.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
當您完成編輯您的信任政策,請選擇 Update Trust Policy (更新信任政策) 來儲存您的變更。
-
您選擇的 IAM 角色會顯示在 WorkSpaces 主控台中。此角色會將許可授予應用程式和指令碼,來在串流執行個體上執行 API 動作和管理任務。
如何建立 IAM 角色以搭配 WorkSpaces 串流執行個體使用
本主題說明如何建立新的 IAM 角色,以便與 WorkSpaces 搭配使用
在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/
。 在導覽窗格中,選擇角色,然後選擇建立角色。
對於 Select type of trusted entity (選取信任的實體類型),選擇 AWS service ( 服務)。
從 AWS 服務清單中,選擇 WorkSpaces。
在選取您的使用案例下,已選取 WorkSpaces — 允許 WorkSpaces 執行個體代表您呼叫 AWS 服務。選擇下一步:許可。
可以的話,請選取用於許可政策的政策,或者選擇 Create policy (建立政策) 以開啟新的瀏覽器標籤,並從頭建立新的政策。如需詳細資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策 (主控台) 程序的步驟 4。
在您建立政策後,關閉該標籤並返回您的原始標籤。選取您希望 WorkSpaces 擁有的許可政策旁的核取方塊。
(選用) 設定許可界限。這是進階功能,可用於服務角色,而不是服務連結的角色。如需詳細資訊,請參閱《IAM 使用者指南》中的 IAM 實體許可界限。
選擇下一步:標籤。您可以選擇將標籤附加為金鑰值配對。如需詳細資訊,請參閱《IAM 使用者指南》中的標記 IAM 使用者和角色。
選擇下一步:檢閱。
在角色名稱中,輸入您 Amazon Web Services 帳戶中的唯一角色名稱。由於其他 AWS 資源可能會參考角色,因此您無法在建立角色之後編輯角色的名稱。
在 Role description (角色描述) 中,保留預設角色描述或輸入新的角色描述。
檢閱角色,然後選擇 Create role (建立角色)。
如何搭配 WorkSpaces 串流執行個體使用 IAM 角色
建立 IAM 角色之後,您可以在啟動 WorkSpaces 時將其套用至 WorkSpaces。您也可以將 IAM 角色套用至現有的 WorkSpaces。
當您將 IAM 角色套用至 WorkSpaces 時,WorkSpaces 會擷取臨時登入資料,並在執行個體上建立 workspaces_machine_role 登入資料設定檔。臨時憑證的有效期為 1 小時,而且每小時都會擷取新的憑證。之前的登入資料不會過期,因此您可以在有效期間進行使用。您可以使用登入資料描述檔,使用 AWS Command Line Interface (AWS CLI)、 AWS Tools for PowerShell 或 AWS SDK 搭配您選擇的語言,以程式設計方式呼叫 AWS 服務。
當您進行 API 呼叫時,請將 workspaces_machine_role 指定為登入資料設定檔。否則,此操作會因許可不足而失敗。
佈建串流執行個體時,WorkSpaces 會擔任指定的角色。由於 WorkSpaces 使用連接到 VPC 的彈性網路介面進行 AWS API 呼叫,因此您的應用程式或指令碼必須等待彈性網路介面變成可用,才能進行 AWS API 呼叫。如果在彈性網路界面變成可用前已進行 API 呼叫,則呼叫會失敗。
下列範例示範如何使用 workspaces_machine_role 登入資料描述檔來描述串流執行個體 (EC2 執行個體) 和建立 Boto 用戶端。Boto 是適用於 Python 的 Amazon Web Services (AWS) SDK。
使用 CLI 描述串流執行個體 (EC2 AWS 執行個體)
aws ec2 describe-instances --region us-east-1 --profile workspaces_machine_role
使用 AWS Tools for PowerShell 描述串流執行個體 (EC2 執行個體)
您必須使用 AWS Tools for PowerShell 3.3.563.1 版或更新版本,搭配適用於 .NET 的 Amazon Web Services SDK 3.3.103.22 版或更新版本。您可以從 Tools for PowerShell 網站下載 AWS Tools for Windows 安裝程式,其中包含 AWS Tools for PowerShell 和 Amazon Web Services SDK AWS for PowerShell
Get-EC2Instance -Region us-east-1 -ProfileName workspaces_machine_role
使用適用於 Python 的 AWS SDK 建立 Boto 用戶端
session = boto3.Session(profile_name=workspaces_machine_role')