

 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 アカウント ルートユーザー、管理者ユーザー、または AWS 管理ポリシーが`AWSCloud9Administrator`アタッチされたユーザーである場合は、 AWS Cloud9 管理者を自分で招待するか、[「環境と同じアカウントのユーザーを招待する」を参照するか](#share-environment-invite-user)、 AWS Cloud9 「管理者に環境と同じアカウントの管理者を招待する」または「他のユーザーを招待する AWS アカウント」を参照してください。 [AWS Cloud9](#share-environment-admin-user)

## 共有環境のユースケース
<a name="share-environment-about"></a>

共有環境は以下のユースケースに適しています。
+ **ペアプログラミング** (**ピアプログラミングともいいます**)**:** 単一の環境で 2 人のユーザーが一緒に同じコードに対して作業を行う場合です。ペアプログラミングでは通常、1 人のユーザーがコードを記述し、もう 1 人のユーザーがコードの記述を観察します。観察者はコードの記述者にその場でインプットおよびフィードバックを行います。2 人のポジションはプロジェクト中に頻繁に入れ替わります。共有環境がない場合、通常ペアプログラマーのチームが 1 台のマシンの前に座ります。同時にコードの書き込みができるのは 1 人のユーザーのみです。共有環境では、両方のユーザーが自分のマシンの前に座ることができます。さらに、たとえ物理的に異なるオフィスにいても、同時にコードの書き込みができます。
+ **コンピュータサイエンスクラス: **これは、教師または教育助手が学生の環境にアクセスする場合に便利です。そうすることで、生徒の宿題を確認したり、彼らの環境の問題をリアルタイムで修正することができます。また、学生がクラスメートと一緒に共有の宿題プロジェクトで作業を行い、単一の環境でリアルタイムで一緒にコードを書くこともできます。それぞれが別の場所にいて、別のコンピューターオペレーティングシステムやウェブブラウザタイプを使用していても、これができます。
+ その他、複数のユーザーが同じコードに対してリアルタイムで共同作業する必要がある状況。

## 環境メンバーのアクセスロールについて
<a name="share-environment-member-roles"></a>

で環境を共有したり、共有環境に参加する前に AWS Cloud9、共有環境のアクセス許可レベルを理解しておく必要があります。これらのアクセス許可レベルは*環境メンバーアクセスロール*と呼ばれます。

の共有環境 AWS Cloud9 には、*所有者*、*読み取り/書き込み*、*読み取り専用*の 3 つの環境メンバーアクセスロールがあります。
+ 所有者は、環境に関する完全なコントロールを持っています。各環境の所有者は、環境の作成者である 1 人のみです。所有者は、以下のアクションができます。
  + 環境のメンバーを追加、変更、および削除する
  + ファイルを開く、表示、編集する
  + コードを実行する
  + 環境設定を変更する
  + 他のメンバー とチャットする
  + 既存のチャットメッセージを削除する

   AWS Cloud9 IDE では、環境所有者が**読み取り \$1 書き込み**アクセスで表示されます。
+ 読み取り/書き込みメンバーは以下を実行できます。
  + ファイルを開く、表示、編集する
  + コードを実行する
  + IDE AWS Cloud9 内からさまざまな環境設定を変更する
  + 他のメンバーとチャットする
  + 既存のチャットメッセージを削除する

   AWS Cloud9 IDE では、読み取り/書き込みメンバーは**読み取り＋書き込み**アクセスで表示されます。
+ 読み取り専用メンバーは以下のアクションを実行できます。
  + ファイルを開く、表示する
  + 他のメンバーとチャットする
  + 既存のチャットメッセージを削除する

   AWS Cloud9 IDE では、読み取り専用メンバーは**読み取り専用**アクセスで表示されます。

ユーザーが環境所有者またはメンバーになる前に、ユーザーが次のいずれかの条件を満たしている必要があります。
+ ユーザーが **AWS アカウント ルートユーザー**である。
+ ユーザーが **IAM 管理者ユーザー**である。詳細については、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 コンソール] を開きます。これを行うには、コンソールのナビゲーションバーで、[**サービス**］を選択します。次に、**[IAM]** を選択します。

1. **[グループ]** を選択します。

1. グループの名前を選択します。

1. [**許可**] タブの［**マネージドポリシー**］ で、［**ポリシーのアタッチ**］を選択します。

1. ポリシー名のリストで、次のいずれかのボックスを選択します。
   +  [**AWSCloud9User**］ (推奨) または［**AWSCloud9Administrator**]。グループの各ユーザーは環境の所有者になることができます。
   +  [**AWSCloud9EnvironmentMember**]。グループの各ユーザーはメンバーにのみなることができます。

   (これらのポリシー名のいずれかがリストに表示されない場合は、[**検索**] ボックスにポリシー名を入力して表示させます。)

1. **[Attach policy]** (ポリシーのアタッチ) を選択します。

### を使用して の 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 リソースネーム (ARN) を指定します。

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

前述のコマンドで、`MyGroup` をグループの名前に置き換えます。を次のいずれかの AWS マネージドポリシーの名前`POLICY_NAME`に置き換えます。
+  `AWSCloud9User` (推奨) または `AWSCloud9Administrator`。グループの各ユーザーは環境の所有者になることができます。
+  `AWSCloud9EnvironmentMember`。グループの各ユーザーはメンバーにのみなることができます。

## 環境と同じアカウントのユーザーを招待する
<a name="share-environment-invite-user"></a>

このセクションの手順を使用して、 で所有している AWS Cloud9 開発環境を同じアカウントの AWS アカウント ユーザーと共有します。

1. 招待したいユーザーが、以下のどのタイプのユーザー*でもない*とします。招待したいユーザーが、対応する環境メンバーアクセスロールをすでに持っていることを確認してください。手順については、「[環境メンバーのアクセスロールについて](#share-environment-member-roles)」を参照してください。
   + **AWS アカウント ルートユーザー**。
   + **管理者ユーザー**。
   + **IAM グループに属するユーザー**、**ロールを引き受けるユーザー**、または**ロールを引き受けるフェデレーティッドユーザー**。*その*グループまたはロールには AWS 管理ポリシーが`AWSCloud9Administrator`アタッチされています。

1. お客様が所有しユーザーを招待する環境をまだ開いていない場合は、環境を開きます。

1. IDE AWS Cloud9 のメニューバーで、次のいずれかを実行します。
   + **[Window] (ウィンドウ)、[Share] (共有)** の順に選択します。
   + [**Share (共有)**] ([**Preferences (設定)**] の歯車アイコンの横にあります) を選択します。  
![\[AWS Cloud9 IDE メニューバーの共有コマンド\]](http://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/images/ide-share.png)

1. [**Share this environment (この環境を共有)**] ダイアログボックスの［**Invite Members (メンバーの招待)**] に、以下のいずれかを入力します。
   + **IAM ユーザー**を招待するには、ユーザーの名前を入力します。
   + **AWS アカウント ルートユーザー**を招待するには、`arn:aws:iam::123456789012:root` と入力します。を AWS アカウント ID `123456789012`に置き換えます。
   + **役割を引き受けたユーザー**または役割を引き受けた**フェデレーションユーザー**を招待するには、`arn:aws:sts::123456789012:assumed-role/MyAssumedRole/MyAssumedRoleSession` と入力します。を AWS アカウント ID `123456789012`に置き換え、 を引き受けたロールの名前`MyAssumedRole`に置き換えます。`MyAssumedRoleSession` を引き受けたロールのセッション名に置き換えます。

1. このユーザーを読み取り専用にするには、［**R**］を選択します。このユーザーを読み取り/書き込み可能にするには、［**RW**］です。

1. **[招待]** を選択します。
**注記**  
このユーザーを読み取り/書き込みメンバーにすると、 AWS セキュリティ認証情報を危険にさらす可能性のある情報を含むダイアログボックスが表示されます。以下の情報は、この問題の背景の詳細です。  
環境を共有するのは信頼する相手のみにする必要があります。  
読み取り/書き込みメンバーは、環境内の AWS CLI、 AWS CloudShell、または 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 グループに属するユーザー**、**ロールを引き受けるユーザー**、または**ロールを引き受けるフェデレーティッドユーザー**。*その*グループまたはロールには AWS 管理ポリシーが`AWSCloud9Administrator`アタッチされています。

招待されたユーザーが前述のタイプのユーザー*ではない*とします。ユーザーが、対応する環境メンバーアクセスロールをすでに持っていることを確認してください。手順については、「[環境メンバーのアクセスロールについて](#share-environment-member-roles)」を参照してください。

ユーザーを招待するには、 AWS CLI または AWS CloudShell を使用して `create-environment-membership` コマンドを実行します AWS Cloud9 。

```
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` と入力します。を AWS アカウント ID `123456789012`に置き換え、 をユーザーの名前`MyUser`に置き換えます。
+ **AWS アカウント ルートユーザー**を招待するには、`arn:aws:iam::123456789012:root` と入力します。を AWS アカウント ID `123456789012`に置き換えます。
+ **役割を引き受けたユーザー**または役割を引き受けた**フェデレーションユーザー**を招待するには、`arn:aws:sts::123456789012:assumed-role/MyAssumedRole/MyAssumedRoleSession` と入力します。を AWS アカウント ID `123456789012`に置き換えます。`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` プレフィックスを省略します。