

 AWS Cloud9 不再提供給新客戶。 AWS Cloud9 的現有客戶可以繼續正常使用該服務。[進一步了解](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 在 中使用共用環境 AWS Cloud9
<a name="share-environment"></a>

*共用環境*是邀請多個使用者參與的 AWS Cloud9 開發環境。本主題提供在 中共用環境 AWS Cloud9 以及如何參與共用環境的指示。

若要邀請使用者參與您擁有的環境，請遵循下列其中一組程序進行。根據您要邀請的使用者類型選擇。
+ 如果您是與環境 AWS 帳戶 相同的使用者，您應該[在與環境相同的帳戶中邀請使用者](#share-environment-invite-user)。
+ 如果您是與環境 AWS 帳戶 相同的 AWS Cloud9 管理員，特別是 AWS 帳戶 根使用者、管理員使用者或`AWSCloud9Administrator`連接 AWS 受管政策的使用者，則應該自行邀請 AWS Cloud9 管理員，請參閱[在與環境相同的帳戶中邀請使用者](#share-environment-invite-user)，或讓 AWS Cloud9 管理員邀請自己 （或相同 中的其他人 AWS 帳戶)，請參閱[讓與環境邀請自己或其他人相同的帳戶中的 AWS Cloud9 管理員](#share-environment-admin-user)。

## 共用環境使用案例
<a name="share-environment-about"></a>

共用環境適用於下列使用案例：
+ **配對程式設計 **(**也稱為*對等程式設計***)**：**這是兩個使用者在單一環境中共同處理相同程式碼的地方。在結對程式設計中，通常由一名使用者撰寫程式碼，另一名使用者觀察所寫的程式碼。觀察者可以立即提供輸入和意見回饋給程式碼撰寫者。在專案期間，這兩種角色會經常切換。在沒有共用環境的情況下，程式設計人員團隊通常是坐在一部機器前。一次只有一名使用者可以撰寫程式碼。使用共用環境，兩個使用者可以坐在自己的機器前。此外，即使他們在不同的實體辦公室，仍可以同時撰寫程式碼。
+ **電腦科學課程：**當老師或助教想要存取學生的環境時，這很有用。這樣做可以檢閱學生的家庭作業，或即時修正其環境問題。學生也可以在單一環境中即時撰寫程式碼，和同學一起完成共用的家庭作業專案。即使他們可能在不同的位置、使用不同的電腦作業系統和 Web 瀏覽器類型，也可以做到。
+ 任何需要多名使用者即時協同合作相同程式碼的其他情況。

## 關於環境成員的存取角色
<a name="share-environment-member-roles"></a>

在 中共用環境或參與共用環境之前 AWS Cloud9，您應該了解共用環境的存取許可層級。我們稱這些許可層級為「環境成員存取角色」**。

中的共用環境 AWS Cloud9 提供三個環境成員存取角色：*擁有者*、*讀取/寫入*和*唯讀*。
+ 擁有者具有環境的完整控制權。每個環境只能有一個擁有者，亦即環境的建立者。擁有者可以執行下列動作。
  + 新增、變更和移除環境成員
  + 開啟、檢視和編輯檔案
  + 執行程式碼
  + 變更環境設定
  + 與其他成員聊天
  + 刪除現有的聊天訊息

  在 AWS Cloud9 IDE 中，環境擁有者會顯示 **Read\$1Write** 存取權。
+ 讀取/寫入成員可以執行下列動作。
  + 開啟、檢視和編輯檔案
  + 執行程式碼
  + 從 IDE AWS Cloud9 中變更各種環境設定
  + 與其他成員聊天
  + 刪除現有的聊天訊息

  在 AWS Cloud9 IDE 中，讀/寫成員會以**讀/寫**存取顯示。
+ 唯讀成員可以執行下列動作。
  + 開啟和檢視檔案
  + 與其他成員聊天
  + 刪除現有的聊天訊息

  在 AWS Cloud9 IDE 中，唯讀成員會以**唯讀**存取顯示。

使用者必須符合下列其中一個條件，才能成為環境擁有者或成員。
+ 使用者為 **AWS 帳戶 根使用者**。
+ 使用者為**管理員使用者**。如需詳細資訊，請參閱 *IAM 使用者指南*中的[建立您的第一個 IAM 管理員使用者和群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-set-up.html#create-an-admin)。
+ 使用者是**屬於 IAM 群組的使用者**、**擔任角色的使用者**，或**擔任角色的聯合身分使用者**，*且該*群組或角色已連接 AWS 受管政策`AWSCloud9Administrator`或 `AWSCloud9User`（或 `AWSCloud9EnvironmentMember`)。如需詳細資訊，請參閱 [AWS 受管 (預先定義) 政策](security-iam.md#auth-and-access-control-managed-policies)。
  + 如需將上述其中一個受管政策連接至 IAM 群組，則可以使用下列程序所述的 [AWS 管理主控台](#share-environment-member-roles-console) 或 [AWS 命令列界面 (AWS CLI)](#share-environment-member-roles-cli)。
  + 您可以透過上述其中一個受管政策，在 IAM 中建立使用者或聯合身分使用者可以擔任的角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的[建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html)。如需讓使用者或聯合身分使用者擔任角色，請參閱 *IAM 使用者指南*中[使用 IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)的角色擔任相關說明。

### 使用主控台將 的 AWS 受管政策 AWS Cloud9 連接至群組
<a name="share-environment-member-roles-console"></a>

下列程序概述如何使用 主控台將 的 AWS 受管政策連接至 AWS Cloud9 群組。

1. 如果您尚未登入 AWS 管理主控台，請登入 。

   對於此步驟，建議您在 AWS 帳戶中使用 IAM 管理員層級憑證來登入。如果您無法執行此操作，請洽詢您的 AWS 帳戶 管理員。

1. 開啟 IAM 主控台。方法如下：從主控台的導覽列選擇 **Services** (服務)，然後選擇 **IAM**。

1. 選擇 **Groups (群組)**。

1. 選擇群組的名稱。

1. 在 **Permissions** (許可) 標籤上，針對 **Managed Policies** (受管政策)，選擇 **Attach Policy** (連接政策)。

1. 在政策名稱清單中，選擇下列其中一個方塊。
   +  **AWSCloud9User** (建議使用) 或 **AWSCloud9Administrator** 可讓群組中的每位使用者成為環境擁有者
   +  **AWSCloud9EnvironmentMember** 可讓群組中的每位使用者成為一般成員

   (如果您在清單中看不到這些政策名稱，請在 **Search** (搜尋) 方塊中輸入政策名稱以顯示。)

1. 選擇**連接政策**。

### 使用 將 的 AWS 受管政策 AWS Cloud9 連接至群組 AWS CLI
<a name="share-environment-member-roles-cli"></a>

**注意**  
如果您使用的是[AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)，則無法使用 IDE AWS Cloud9 中的終端機工作階段來執行本節中的部分或全部命令。為了解決 AWS 安全最佳實務， AWS 受管臨時登入資料不允許執行某些命令。反之，您可以從個別安裝的 AWS Command Line Interface () 執行這些命令AWS CLI。

執行 IAM `attach-group-policy`命令，將 的 AWS 受管政策連接至 AWS Cloud9 群組。指定群組名稱和政策的 Amazon Resource Name (ARN)。

```
aws iam attach-group-policy --group-name MyGroup --policy-arn arn:aws:iam::aws:policy/POLICY_NAME
```

在上述命令中，將 `MyGroup` 取代為群組的名稱。`POLICY_NAME` 將 取代為下列其中一個 AWS 受管政策的名稱。
+  `AWSCloud9User` (建議使用) 或 `AWSCloud9Administrator` 可讓群組中的每位使用者成為環境的擁有者
+  `AWSCloud9EnvironmentMember` 可讓群組中的每位使用者成為一般成員

## 邀請所在帳戶與環境相同的使用者
<a name="share-environment-invite-user"></a>

使用本節中的指示， AWS 帳戶 與相同帳戶中的使用者共用您在 中擁有的 AWS Cloud9 開發環境。

1. 假設您要邀請的使用者*不是*下列其中一種類型的使用者。確定您要邀請的使用者已具有對應的環境成員存取角色。如需說明，請參閱[關於環境成員的存取角色](#share-environment-member-roles)小節。
   + **AWS 帳戶 根使用者**。
   + **管理員使用者**。
   + **屬於 IAM 群組的使用者**、**擔任角色的使用者**，或**擔任角色的聯合身分使用者**，*且該*群組或角色已`AWSCloud9Administrator`連接 AWS 受管政策。

1. 開啟您想邀請使用者加入的環境 (如果尚未開啟)。

1. 在 IDE AWS Cloud9 的選單列中，執行下列其中一項操作。
   + 選擇 **Window, Share** (視窗、共享)。
   + 選擇 **Share** (共享) (位於 **Preferences** (偏好設定) 齒輪圖示旁)。  
![\[IDE AWS Cloud9 選單列中的共用命令\]](http://docs.aws.amazon.com/zh_tw/cloud9/latest/user-guide/images/ide-share.png)

1. 在 **Share this environment** (共享這個環境) 對話方塊的 **Invite Members** (邀請成員) 中，輸入以下其中一個項目。
   + 若要邀請 **IAM 使用者**，請輸入使用者名稱。
   + 若要邀請 **AWS 帳戶 根使用者**，請輸入 `arn:aws:iam::123456789012:root`。`123456789012` 以您的 AWS 帳戶 ID 取代 。
   + 若要邀請**具有所擔任角色的使用者**或**具有所擔任角色的聯合身分使用者**，請輸入 `arn:aws:sts::123456789012:assumed-role/MyAssumedRole/MyAssumedRoleSession`。`123456789012` 以您的 AWS 帳戶 ID 取代 ，`MyAssumedRole`以擔任的角色名稱取代 。將 `MyAssumedRoleSession` 取代為所擔任角色的工作階段名稱。

1. 若要讓此使用者成為唯讀成員，請選擇 **R**。若要讓此使用者成為讀取/寫入成員，請選擇 **RW**。

1. 選擇 **Invite** (邀請)。
**注意**  
如果您讓此使用者成為讀取/寫入成員，則會顯示對話方塊，其中包含可能危及 AWS 安全登入資料的資訊。下列資訊提供更多此問題的背景。  
請只與信任的使用者共用環境。  
讀取/寫入成員可能可以在環境中使用 AWS CloudShell、 AWS CLI或 AWS SDK 程式碼， AWS 代表您在 中採取動作。此外，如果您將永久 AWS 存取登入資料存放在環境中，該成員可能會複製這些登入資料，並在環境外使用。  
從環境移除永久 AWS 存取登入資料並使用暫時 AWS 存取登入資料，並不會完全解決此問題。這只能降低成員複製這些臨時憑證並用於環境外部的機會 (因為這些臨時憑證只在限定時間內有效)。不過，暫時登入資料仍然可讓讀取/寫入成員代表您 AWS 從環境執行 中的動作。

1. 聯絡使用者，讓他們知道可以開啟此環境並開始使用。

## 讓 AWS Cloud9 管理員在與環境相同的帳戶中邀請自己或其他人
<a name="share-environment-admin-user"></a>

**注意**  
如果您使用的是[AWS 受管臨時憑證](security-iam.md#auth-and-access-control-temporary-managed-credentials)，則無法使用 IDE AWS Cloud9 中的終端機工作階段來執行本節中的部分或全部命令。為了解決 AWS 安全最佳實務， AWS 受管臨時登入資料不允許執行某些命令。反之，您可以從個別安裝的 AWS Command Line Interface () 執行這些命令AWS CLI。

下列類型的使用者可以邀請自己 (或相同 AWS 帳戶中的其他使用者) 加入相同帳戶中的任何環境。
+ **AWS 帳戶 根使用者**。
+ **管理員使用者**。
+ **屬於 IAM 群組的使用者**、**擔任角色的使用者**，或**擔任角色的聯合身分使用者**，*且該*群組或角色已`AWSCloud9Administrator`連接 AWS 受管政策。

假設受邀的使用者*不是*上述類型的其中一個使用者。確定使用者已具有對應的環境成員存取角色。如需說明，請參閱[關於環境成員的存取角色](#share-environment-member-roles)小節。

若要邀請使用者，請使用 AWS CLI 或 AWS CloudShell 來執行 AWS Cloud9 `create-environment-membership`命令。

```
aws cloud9 create-environment-membership --environment-id 12a34567b8cd9012345ef67abcd890e1 --user-arn USER_ARN --permissions PERMISSION_LEVEL
```

在上述命令中，將 `12a34567b8cd9012345ef67abcd890e1` 取代為環境的 ID。將 `PERMISSION_LEVEL` 取代為 `read-write` 或 `read-only`。然後，將 `USER_ARN` 取代為下列其中一項：
+ 若要邀請 **IAM 使用者**，請輸入 `arn:aws:iam::123456789012:user/MyUser`。`123456789012` 將 取代為您的 AWS 帳戶 ID，並將 取代`MyUser`為使用者名稱。
+ 若要邀請 **AWS 帳戶 根使用者**，請輸入 `arn:aws:iam::123456789012:root`。`123456789012` 以您的 AWS 帳戶 ID 取代 。
+ 若要邀請**具有所擔任角色的使用者**或**具有所擔任角色的聯合身分使用者**，請輸入 `arn:aws:sts::123456789012:assumed-role/MyAssumedRole/MyAssumedRoleSession`。`123456789012` 以您的 AWS 帳戶 ID 取代 。將 `MyAssumedRole` 取代為所擔任角色的名稱。然後，將 `MyAssumedRoleSession` 取代為所擔任角色的工作階段名稱。

例如，若要將帳戶 ID 的 AWS 帳戶 根使用者邀請`123456789012`至 ID `12a34567b8cd9012345ef67abcd890e1`為讀取/寫入成員的環境，請執行下列命令。

```
aws cloud9 create-environment-membership --environment-id 12a34567b8cd9012345ef67abcd890e1 --user-arn arn:aws:iam::123456789012:root --permissions read-write
```

**注意**  
如果您使用的是 AWS CloudShell，請省略上述命令的`aws`字首。