

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

# 設定沙盒
<a name="configuring-integrations-and-knowledge-sandbox"></a>

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

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

**注意**  
** 沙盒可在預覽版中使用，可能會有所變更。

在預覽期間，沙盒僅適用於下列 AWS 區域：
+ 美國東部 （維吉尼亞北部） `us-east-1`
+ 美國西部 （奧勒岡） `us-west-2`
+ 亞太區域 （東京） `ap-northeast-1`
+ 歐洲 （愛爾蘭） `eu-west-1`

如需詳細資訊，請參閱[各區域的功能可用性](about-aws-devops-agent-supported-regions.md)。

## 沙盒的運作方式
<a name="how-sandbox-works"></a>

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

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

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

兩個設定控制環境可執行的操作：
+ **網路政策** – 環境可能到達的主機、HTTP 方法和路徑的明確允許清單。空的允許清單會拒絕 AWS 服務端點以外的所有傳出請求。
+ **套件** – 預先安裝在環境中的 `pip`和 `npm`套件。代理程式的程式碼可以匯入它們，而無需在執行時間擷取它們。

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

### 沙盒中的技能
<a name="skills-in-the-sandbox"></a>

啟用沙盒後，代理程式[DevOps 代理程式技能](about-aws-devops-agent-devops-agent-skills.md)會從沙盒的檔案系統讀取您的 ，而不是從虛擬檔案系統讀取。這會以兩種方式變更代理程式使用技能的方式：
+ **使用命令列工具搜尋和讀取** – 代理程式可以使用標準命令列工具來搜尋您的技能並讀取其檔案，而不是透過虛擬檔案系統載入它們。這有助於尋找並套用適合任務的技能。
+ **執行綁定程式碼** – 代理程式可以執行和調整與技能綁定的程式碼。如果沒有沙盒，技能只能包含不可執行的檔案，例如 Markdown 指示、參考和資料檔案。使用沙盒，技能可以包含代理程式可在環境中執行的可執行程式碼。

## 開始之前
<a name="before-you-begin"></a>

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

![沙盒區段顯示「未設定沙盒」，其中包含空白 pip 套件、npm 套件和允許清單項目欄位。](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/221a777b9eda.png)


設定沙盒之前，請先判斷下列事項：
+ 代理程式程式碼所需的主機、HTTP 方法和路徑，如果有的話。在您新增允許清單項目之前，沙盒只能連接 AWS 服務端點。
+ 您想要預先安裝在環境中的 `pip`和 `npm`套件。

## 設定代理程式空間的沙盒
<a name="configure-sandbox-for-an-agent-space"></a>

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

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

1. 在**沙盒**區段中，選擇**設定**。

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

1. 儲存您的組態。

設定沙盒之後，**沙盒**區段會顯示您預先安裝的 `pip` 和 `npm`套件，以及允許清單項目的數量。若要稍後移除組態，請參閱[移除沙盒](#remove-sandbox)。

### 設定聯網政策
<a name="configure-the-networking-policy"></a>

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

選擇**新增項目**，然後為允許清單項目設定下列項目：
+ **主機模式** – 項目套用的主機。不支援部分標籤比對。使用下列其中一個表單：
  + `**` – 所有主機。
  + `*.example.com` – 一個子網域層級。
  + `**.example.com` – 任何子網域深度。
  + `example.com` – 確切的主機。
+ **HTTP 方法** – 此主機允許的 HTTP 方法。從下拉式清單中選擇一或多個方法`OPTIONS`，例如 `GET`和 。
+ **路徑模式** – 此主機允許的路徑。選擇**新增路徑**以新增一或多個模式：
  + `*` 符合一個區段，例如 `/repos/*/pulls`。
  + 允許部分比對，例如 `/users/aws-*/`。
  + `/**` 允許所有子路徑。
  + 會忽略查詢參數。

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

![允許清單項目具有主機模式 *.github.com、GET 和 OPTIONS 方法，以及路徑模式 /**。](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/02356ee2008f.png)


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

### 設定預先安裝的套件
<a name="configure-pre-installed-packages"></a>

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

![具有 pip 套件請求和 pandas 和 npm 套件軸的套件區段，每個都具有移除按鈕。](http://docs.aws.amazon.com/zh_tw/devopsagent/latest/userguide/images/8035f788fb71.png)

+ **pip 套件** – 選擇**新增套件**，並為每個要預先安裝的 Python 套件輸入套件名稱`pandas`，例如 `requests`或 。
+ **npm 套件** – 選擇**新增套件**，並為每個要預先安裝的 Node.js 套件輸入套件名稱`axios`，例如 。

若要移除套件，請選擇旁邊的**移除**。

## 移除沙盒
<a name="remove-sandbox"></a>

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

## 沙盒組態限制
<a name="sandbox-configuration-limits"></a>

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


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

## 安全考量
<a name="security-considerations"></a>

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

代理程式會在沙盒中產生和執行程式碼。進行設定時，請注意下列事項：
+ **將允許清單保持在最少。**使用空白允許清單時，沙盒只會到達 AWS 服務端點。僅針對代理程式所需的特定主機、方法和路徑新增允許清單項目。
+ **縮小範圍允許清單項目的範圍。**使用確切的主機模式和特定的路徑模式，而不是廣泛的萬用字元，例如 `**`和 `/**`，並僅授予所需的 HTTP 方法。
+ **預先安裝套件，而不是允許列出登錄檔。**當您預先安裝代理程式所需的套件時，可以避免在執行時間授予套件登錄檔的傳出存取權。

如需 AWS DevOps 代理程式安全模型的詳細資訊，請參閱 [AWS DevOps 代理程式安全性](aws-devops-agent-security.md)。