View a markdown version of this page

設定沙盒 - AWS DevOps 代理程式

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

設定沙盒

沙盒是一種預覽功能,可讓 AWS DevOps 代理程式擁有安全、隔離的 Linux 環境,可在調查期間撰寫和執行程式碼。有些問題比單靠推理來解決程式碼更快、更可靠。使用沙盒時,代理程式會使用運算補充其推理,例如,分析大型日誌檔案、計算一組指標的統計資料,或在調查期間剖析和關聯來自多個來源的資料。

每個沙盒都是暫時性的,範圍限定為單一調查,因此代理程式執行的程式碼會與您的其他資源保持隔離。您可以控制環境的傳出網路存取和預先安裝的套件。根據預設,沙盒會限制傳出網路存取:在您將項目新增至聯網允許清單之前,只能連線到 AWS 服務端點。

注意

沙盒可在預覽版中使用,可能會有所變更。

在預覽期間,沙盒僅適用於下列 AWS 區域:

  • 美國東部 (維吉尼亞北部) us-east-1

  • 美國西部 (奧勒岡) us-west-2

  • 亞太區域 (東京) ap-northeast-1

  • 歐洲 (愛爾蘭) eu-west-1

如需詳細資訊,請參閱各區域的功能可用性

沙盒的運作方式

為 代理程式空間設定沙盒時, AWS DevOps 代理程式會在進行調查時自動佈建新的 Linux 環境。在此環境中,代理程式可以執行 shell 命令並讀取和寫入檔案,然後將結果讀回其分析中。環境只會在該調查期間持續,而且沒有兩個調查共用一個。

環境隨附連線至客服人員空間之 AWS 帳戶的預先設定 AWS 設定檔。客服人員可以使用這些設定檔對這些帳戶進行 AWS CLI 和 boto3 (適用於 Python 的AWS SDK) 呼叫,範圍與客服人員已經擁有的許可相同。這可讓客服人員查詢,並在調查期間以程式設計方式將 AWS 資源與程式碼建立關聯。

代理程式也可以使用命令列工具或 Python 和 Node.js 程式庫,向網路政策允許的任何主機和路徑提出 HTTP 請求。

兩個設定控制環境可執行的操作:

  • 網路政策 – 環境可能到達的主機、HTTP 方法和路徑的明確允許清單。空的允許清單會拒絕 AWS 服務端點以外的所有傳出請求。

  • 套件 – 預先安裝在環境中的 pipnpm套件。代理程式的程式碼可以匯入它們,而無需在執行時間擷取它們。

注意

在預覽期間,代理程式只會在調查期間使用沙盒。即將推出對聊天、自訂客服人員和其他 DevOps 客服人員功能的支援。

沙盒中的技能

啟用沙盒後,代理程式DevOps 代理程式技能會從沙盒的檔案系統讀取您的 ,而不是從虛擬檔案系統讀取。這會以兩種方式變更代理程式使用技能的方式:

  • 使用命令列工具搜尋和讀取 – 代理程式可以使用標準命令列工具來搜尋您的技能並讀取其檔案,而不是透過虛擬檔案系統載入它們。這有助於尋找並套用適合任務的技能。

  • 執行綁定程式碼 – 代理程式可以執行和調整與技能綁定的程式碼。如果沒有沙盒,技能只能包含不可執行的檔案,例如 Markdown 指示、參考和資料檔案。使用沙盒,技能可以包含代理程式可在環境中執行的可執行程式碼。

開始之前

預設不會設定沙盒,因此在您選擇加入之前,代理程式無法執行程式碼。下圖顯示沙盒區段,再進行設定。

沙盒區段顯示「未設定沙盒」,其中包含空白 pip 套件、npm 套件和允許清單項目欄位。

設定沙盒之前,請先判斷下列事項:

  • 代理程式程式碼所需的主機、HTTP 方法和路徑,如果有的話。在您新增允許清單項目之前,沙盒只能連接 AWS 服務端點。

  • 您想要預先安裝在環境中的 pipnpm套件。

設定代理程式空間的沙盒

  1. 登入 AWS 管理主控台並開啟 AWS DevOps 代理程式主控台。

  2. 選取您的客服人員空間,然後選擇功能索引標籤。

  3. 沙盒區段中,選擇設定

  4. 設定聯網政策和預先安裝的套件,如以下各節所述。

  5. 儲存您的組態。

設定沙盒之後,沙盒區段會顯示您預先安裝的 pipnpm套件,以及允許清單項目的數量。若要稍後移除組態,請參閱移除沙盒

設定聯網政策

沙盒會將傳出請求限制為明確的允許清單。空的允許清單會拒絕 AWS 服務端點以外的所有傳出請求。若要讓環境到達任何其他主機,請為其新增允許清單項目。

選擇新增項目,然後為允許清單項目設定下列項目:

  • 主機模式 – 項目套用的主機。不支援部分標籤比對。使用下列其中一個表單:

    • ** – 所有主機。

    • *.example.com – 一個子網域層級。

    • **.example.com – 任何子網域深度。

    • example.com – 確切的主機。

  • HTTP 方法 – 此主機允許的 HTTP 方法。從下拉式清單中選擇一或多個方法OPTIONS,例如 GET和 。

  • 路徑模式 – 此主機允許的路徑。選擇新增路徑以新增一或多個模式:

    • * 符合一個區段,例如 /repos/*/pulls

    • 允許部分比對,例如 /users/aws-*/

    • /** 允許所有子路徑。

    • 會忽略查詢參數。

下圖顯示已完成的允許清單項目。

允許清單項目具有主機模式 *.github.com、GET 和 OPTIONS 方法,以及路徑模式 /**。

針對客服人員程式碼需要連線的每個額外主機,選擇新增項目。若要移除項目,請選擇移除

設定預先安裝的套件

套件區段中,指定要在沙盒環境中預先安裝的 pipnpm套件。然後,代理程式的程式碼可以直接匯入這些套件,並且環境不需要對套件登錄檔的傳出存取才能使用它們。下圖顯示已設定範例套件的套件區段。

具有 pip 套件請求和 pandas 和 npm 套件軸的套件區段,每個都具有移除按鈕。
  • pip 套件 – 選擇新增套件,並為每個要預先安裝的 Python 套件輸入套件名稱pandas,例如 requests或 。

  • npm 套件 – 選擇新增套件,並為每個要預先安裝的 Node.js 套件輸入套件名稱axios,例如 。

若要移除套件,請選擇旁邊的移除

移除沙盒

若要選擇退出,請移除沙盒組態:選取您的客服人員空間,前往功能索引標籤,然後在沙盒區段中,選擇移除。移除組態後,代理程式不會再為新調查佈建沙盒環境。

沙盒組態限制

下列限制適用於預覽期間的每個沙盒組態。

限制 Value
pip 套件 50
npm 套件 50
網路允許清單項目 100
每個允許清單項目的路徑模式 50
每個允許清單項目的 HTTP 方法 至少 1 個

安全考量

AWS DevOps 代理程式會在自己的沙盒環境中隔離每個調查,因此來自一個調查的程式碼和資料永遠不會與另一個調查共用。 AWS DevOps 代理程式會檢查和篩選離開沙盒的所有流量,以便只有安全、允許的請求到達目的地。它允許對 AWS 服務端點和主機提出符合您聯網允許清單的請求,並拒絕所有其他請求。

代理程式會在沙盒中產生和執行程式碼。進行設定時,請注意下列事項:

  • 將允許清單保持在最少。使用空白允許清單時,沙盒只會到達 AWS 服務端點。僅針對代理程式所需的特定主機、方法和路徑新增允許清單項目。

  • 縮小範圍允許清單項目的範圍。使用確切的主機模式和特定的路徑模式,而不是廣泛的萬用字元,例如 **/**,並僅授予所需的 HTTP 方法。

  • 預先安裝套件,而不是允許列出登錄檔。當您預先安裝代理程式所需的套件時,可以避免在執行時間授予套件登錄檔的傳出存取權。

如需 AWS DevOps 代理程式安全模型的詳細資訊,請參閱 AWS DevOps 代理程式安全性