AWS Cloud9
ユーザーガイド

AWS Cloud9 の共有環境を使用する

共有環境は、複数のユーザーが参加を招待されている AWS Cloud9 開発環境 です。このトピックでは、AWS Cloud9 で 環境 を共有し、共有した 環境 に参加する手順について説明します。

所有する 環境 に参加するようユーザーを招待するには、招待するユーザーのタイプに応じて次のいずれかの一連の手順に従います。

ユーザー型 以下の手順に従います

環境 と同じ AWS アカウントのユーザー。

環境と同じアカウントのユーザーを招待する

環境 と同じ AWS アカウント内の AWS Cloud9 管理者。具体的には次のとおりです。

  • AWS アカウントのルートユーザー。

  • IAM 管理者ユーザー。

  • AWS 管理ポリシー AWSCloud9Administrator がアタッチされているユーザー。

AWS Cloud9 管理者自体を招待するには、「環境と同じアカウントのユーザーを招待する」を参照してください。

AWS Cloud9 管理者が自分自身 (または同じ AWS アカウント内の他のユーザー) を招待するには、「環境と同じアカウントの AWS Cloud9 管理者によって管理者自身または他のユーザーを招待する」を参照してください。

コンテンツ

共有 環境 の使用状況のシナリオ

共有 環境 は以下に適しています。

  • ペアプログラミング (ピアプログラミングともいいます)。これは、単一の 環境 で 2 人のユーザーが一緒に同じコードに対して作業を行います。ペアプログラミングでは通常、1 人のユーザーがコードを書き、もう 1 人のユーザーが作成されていくコードを観察します。観察者はコードの記述者にその場でインプットおよびフィードバックを行います。2 人のポジションはプロジェクト中に頻繁に入れ替わります。共有 環境 がない場合、通常ペアプログラマーのチームが 1 台のマシンの前に座り、同時にコードを書くことができるのは 1 人のユーザーのみです。共有 環境 では、どちらのユーザーも自分のマシンの前に座り、たとえ物理的に異なるオフィスにいても、同時にコードを書くことができます。

  • コンピュータサイエンスのクラス。教師または教育助手が学生の 環境 にアクセスして、宿題を確認したり彼らの 環境 の問題をリアルタイムで修正する場合に便利です。また、学生がクラスメートと一緒に共有の宿題プロジェクトで作業を行い、単一の 環境 でリアルタイムで一緒にコードを書くこともできます。それぞれが別の場所にいて、別のコンピューターオペレーティングシステムやウェブブラウザタイプを使用していても、これができます。

  • その他、複数のユーザーが同じコードに対してリアルタイムで共同作業する必要がある状況。

環境メンバー のアクセスロールについて

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

AWS Cloud9 の共有 環境 には 3 つの 環境メンバー アクセスロールとして、所有者読み取り/書き込み読み取り専用があります。

  • owner は、環境 に関する完全なコントロールを持っています。各 環境 の owner は、環境 の作成者 1 人のみです。owner は以下を実行できます。

    • 環境 の members を追加、変更、および削除する

    • ファイルを開く、表示、編集する

    • コードを実行する

    • 環境 設定を変更する

    • 他の members とチャットする

    • 既存のチャットメッセージを削除する

    AWS Cloud9 IDE では、環境 所有者は [Read+Write (読み取り/書き込み)] アクセス権限付きで表示されます。

  • 読み取り/書き込み メンバーは以下を実行できます。

    • ファイルを開く、表示、編集する

    • コードを実行する

    • AWS Cloud9 IDE からさまざまな 環境 設定を変更する

    • 他の members とチャットする

    • 既存のチャットメッセージを削除する

    AWS Cloud9 IDE では、読み取り/書き込み メンバーは [Read+Write (読み取り/書き込み)] アクセス権限付きで表示されます。

  • 読み取り専用 メンバーは以下を実行できます。

    • ファイルを開く、表示する

    • 他の members とチャットする

    • 既存のチャットメッセージを削除する

    AWS Cloud9 IDE では、読み取り専用 メンバーは [Read Only (読み取り専用)] アクセス権限付きで表示されます。

ユーザーが 環境 所有者または member になるには、ユーザーが以下のいずれかの条件を満たしている必要があります。

  • ユーザーが AWS アカウントのルートユーザーである。

  • ユーザーが IAM 管理者ユーザーである。詳細については、『IAM ユーザーガイド』の「最初の IAM 管理者ユーザーおよびグループの作成」を参照してください。

  • ユーザーが、IAM グループに属するユーザーロールを引き受けるユーザー、またはロールを引き受けるフェデレーティッドユーザーであり、かつそのグループまたはロールに AWS 管理ポリシーとして AWSCloud9Administrator または AWSCloud9User (または唯一の member として AWSCloud9EnvironmentMember のみ) がアタッチされている。詳細については、「AWS 管理 (事前定義) ポリシー」を参照してください。

    • 前述の管理ポリシーのいずれかを IAM グループにアタッチするには、以下の手順で説明されているとおり、AWS マネジメントコンソールまたは AWS コマンドラインインターフェイス (AWS CLI) を使用できます。

    • 前述のいずれかの管理ポリシーを使用して、ユーザーまたはフェデレーティッドユーザーが引き受けるロールを IAM で作成するには、IAM ユーザーガイド の「ロールの作成」を参照してください。ユーザーまたはフェデレーティッドユーザーがロールを引き受けるには、IAM ユーザーガイド の「IAM ロールを使用する」を参照してください。

コンソールを使用して AWS Cloud9 の AWS 管理ポリシーをグループにアタッチする

  1. AWS マネジメントコンソールにまだサインインしていない場合は、サインインします。

    このステップでは、AWS アカウントの IAM 管理者ユーザーの認証情報を使用してサインインすることをお勧めします。これを実行できない場合は、AWS アカウントの管理者に確認してください。

  2. IAM コンソールを開きます。これを行うには、コンソールのナビゲーションバーで、[サービス] を選択します。次に、[IAM] を選択します。

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

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

  5. [アクセス許可] タブの [管理ポリシー] で [ポリシーのアタッチ] を選択します。

  6. ポリシー名のリストで、次のいずれかのボックスを選択します。

    • [AWSCloud9User] (推奨) または [AWSCloud9Administrator]。グループの各ユーザーが 環境 所有者になることができます

    • [AWSCloud9EnvironmentMember]。グループの各ユーザーはメンバーにのみなることができます。

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

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

AWS CLI を使用して AWS Cloud9 の AWS 管理ポリシーをグループにアタッチする

注記

AWS 管理の一時認証情報 を使用している場合は、AWS Cloud9 IDE のターミナルセッションを使用して、このセクションのコマンドの一部またはすべてを実行することはできません。AWS のセキュリティに関するベストプラクティスに対応するため、AWS 管理の一時認証情報 はいくつかのコマンドを実行することができません。代わりに、AWS Command Line Interface (AWS CLI) の別のインストールからこれらのコマンドを実行できます。

グループの名前とポリシーの Amazon リソースネーム (ARN) を指定して IAM attach-group-policy コマンドを実行し、AWS Cloud9 の AWS 管理ポリシーをグループにアタッチします。以下に例を示します。

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

前述のコマンドでは、MyGroup をグループの名前に置き換えます。POLICY_NAME を次のいずれかの AWS 管理ポリシーの名前と置き換えます。

  • AWSCloud9User (推奨) または AWSCloud9Administrator。グループの各ユーザーが 環境 所有者になることができます

  • AWSCloud9EnvironmentMember。グループの各ユーザーはメンバーにのみなることができます。

環境 と同じアカウントのユーザーを招待する

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

  1. 招待するユーザーが以下のいずれかのタイプのユーザーでない場合、招待するユーザーが対応する環境メンバーアクセスロールを既に持っていることを確認してください。手順については、「環境メンバーのアクセスロールについて」を参照してください。

    • AWS アカウントのルートユーザー

    • IAM 管理者ユーザー

    • IAM グループに属するユーザーロールを引き受けるユーザー、またはロールを引き受けるフェデレーティッドユーザー (およびそのグループまたはロールに AWS 管理ポリシー AWSCloud9Administrator がアタッチされていること)。

  2. 自分が所有し、ユーザーを招待する 環境 開きます (環境 がまだ開いていない場合)。

  3. AWS Cloud9 IDE のメニューバーで、以下のいずれかを実行します。

    • [Window (ウィンドウ)]、[Share (共有)] を選択します。

    • [Share (共有)] ([Preferences (設定)] の歯車アイコンの横にあります) を選択します。

      
                         AWS Cloud9 IDE メニューバーの [Share (共有)] コマンド
  4. [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 は引き受けたロールのセッション名に置き換えてください。

  5. このユーザーを 読み取り専用 メンバーにするには、[R] を選択します。このユーザーを 読み取り/書き込み にするには、[RW] を選択します。

  6. [Invite] を選択します。

    注記

    このユーザーを 読み取り/書き込み メンバーにする場合、AWS セキュリティ認証情報が危険にさらされるおそれがあることに関する情報が含まれるダイアログボックスが表示されます。以下の情報は、この問題の背景の詳細です。

    環境 を共有するのは信頼する相手のみにする必要があります。

    読み取り/書き込み メンバーは 環境 で AWS CLI、aws-shell、または AWS SDK コードを使用して、お客様の代わりに AWS でアクションを実行できる場合があります。さらに、永続的な AWS アクセス認証情報を 環境 内に保存する場合、その member はこれらの認証情報をコピーして 環境 外で使用することが可能です。

    環境 から永続的な AWS アクセス認証情報を削除して、代わりに一時的な AWS アクセス認証情報を使用しても、この問題に完全に対処することはできません。これにより member がこれらの一時的認証情報をコピーして 環境 外で使用できる機会は減少します (一時的認証情報は限られた時間のみ機能するため)。ただし、一時的な認証情報でも 読み取り/書き込み がお客様に代わって 環境 から AWS でアクションを実行することはできます。

  7. ユーザーに、この 環境 を開いて使用できるようになったことを連絡します。

環境 と同じアカウントの AWS Cloud9 管理者によって管理者自身または他のユーザーを招待する

注記

AWS 管理の一時認証情報 を使用している場合は、AWS Cloud9 IDE のターミナルセッションを使用して、このセクションのコマンドの一部またはすべてを実行することはできません。AWS のセキュリティに関するベストプラクティスに対応するため、AWS 管理の一時認証情報 はいくつかのコマンドを実行することができません。代わりに、AWS Command Line Interface (AWS CLI) の別のインストールからこれらのコマンドを実行できます。

以下のタイプのユーザーは、同じアカウントのどの 環境 にも自分自身 (または同じ AWS アカウント内の他のユーザー) を招待できます。

  • AWS アカウントのルートユーザー

  • IAM 管理者ユーザー

  • IAM グループに属するユーザーロールを引き受けるユーザー、またはロールを引き受けるフェデレーティッドユーザー (およびそのグループまたはロールに AWS 管理ポリシー AWSCloud9Administrator がアタッチされていること)。

招待されるユーザーが前述のいずれかのタイプのユーザーでない場合、そのユーザーが対応する環境メンバーアクセスロールを既に持っていることを確認してください。手順については、「環境メンバーのアクセスロールについて」を参照してください。

ユーザーを招待するには、以下のように AWS CLI または aws-shell を使用して AWS Cloud9 create-environment-membership コマンドを実行します。

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

前述のコマンドで、12a34567b8cd9012345ef67abcd890e1 を 環境 の ID、PERMISSION_LEVELread-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 123456789012 の AWS アカウントのルートユーザーを、ID 12a34567b8cd9012345ef67abcd890e1 の 環境 に 読み取り/書き込み メンバーとして招待するには、次のコマンドを実行します。

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

注記

aws-shell を使用している場合は、上記のコマンドから aws プレフィックスを省略します。

共有 環境 を開く

共有 環境 を開くには、AWS Cloud9 ダッシュボードを使用します。次に、AWS Cloud9 IDE を使用して、共有 環境 でファイルの操作や他の members とのチャットなどを行います。

  1. 対応するアクセスポリシーが、ユーザーのグループまたはロールにアタッチされていることを確認してください。詳細については、「環境メンバーのアクセスロールについて」を参照してください。

  2. 以下のようにして AWS Cloud9 コンソールにサインインします。

    • AWS アカウントを使用する唯一のユーザーである、または単一の AWS アカウント内の IAM ユーザーである場合は、https://console.aws.amazon.com/cloud9/ を参照してください。

    • 組織で AWS Single Sign-On (SSO) を使用している場合は、サインインの手順について AWS アカウント管理者にお問い合わせください。

    • 教室内の学生である場合は、サインインの手順についてインストラクターにお問い合わせください。

  3. AWS Cloud9 ダッシュボードから共有 環境 を開きます。詳細については、「AWS Cloud9 の環境を開く」を参照してください。

このトピックの残りの部分で説明するように、[Collaborate (コラボレーション)] ウィンドウを使用して他の members とやり取りできます。

注記

[Collaborate (コラボレーション)] ウィンドウが表示されていない場合は、[Collaborate (コラボレーション)] ボタンを選択します。[Collaborate (コラボレーション)] ボタンが非表示になっている場合は、メニューバーで [Window (ウィンドウ)]、[Collaborate (コラボレーション)] の順に選択します。


             AWS Cloud9 IDE の [Collaborate (コラボレーション)] ウィンドウ

環境メンバー のリストを表示する

共有 環境 が開いている状態で、[Collaborate (コラボレーション)] ウィンドウに members のリストが表示されていない場合は、[Environment Members (環境メンバー)] を展開します。

各 member の横にある円は、オンラインステータスを次のように示します。

  • アクティブな members には緑色の円が付いています。

  • オフラインの members には灰色の円が付いています。

  • アイドルな members にはオレンジ色の円が付いています。


            AWS Cloud9 IDE のメンバーのオンラインステータス

コードを使用して 環境メンバー のリストを取得するには、次のように、AWS Cloud9 の 環境 メンバーシップの記述オペレーションを呼び出します。

環境メンバー のアクティブなファイルを開く

共有 環境 が開いている状態で、メニューバーの member 名を選択します。次に、[Open Active File (アクティブなファイルを開く)] を選択します。


            AWS Cloud9 IDE の [Open Active File (アクティブなファイルを開く)] コマンド

環境メンバー が開いているファイルを開く

  1. 共有 環境 が開いている状態で、[Collaborate (コラボレーション)] ウィンドウに members のリストが表示されていない場合は、[Environment Members (環境メンバー)] を展開します。

  2. 環境 で開くファイルを開いているユーザーの名前を展開します。

  3. 開くファイルの名前をダブルクリックします。


            AWS Cloud9 IDE でチームメンバーのファイルを開く

環境メンバー のアクティブなカーソルに移動する

  1. 共有 環境 が開いている状態で、[Collaborate (コラボレーション)] ウィンドウに members のリストが表示されていない場合は、[Environment Members (環境メンバー)] を展開します。

  2. member 名を右クリックし、[Show Location (場所を表示する)] をクリックします。

他の 環境メンバー とチャットする

共有 環境 を開いている状態で、[Collaborate (コラボレーション)] ウィンドウの下部にある [Enter your message here (ここにメッセージを入力してください)] にチャットメッセージを入力し、Enter を押します。


            AWS Cloud9 IDE のチャットエリア

共有 環境 でチャットメッセージを表示する

共有 環境 が開いている状態で、[Collaborate (コラボレーション)] ウィンドウにチャットメッセージが表示されていない場合は、[Group Chat (グループチャット)] を展開します。

共有 環境 からチャットメッセージを削除する

共有 環境 が開いている状態で、[Collaborate (コラボレーション)] ウィンドウの [Group Chat (グループチャット)] のチャットメッセージを右クリックし、[Delete Message (メッセージの削除)] を選択します。

注記

チャットメッセージを削除すると、すべての members の 環境 から該当メッセージが削除されます。

共有 環境 からすべてのチャットメッセージを削除する

共有 環境 が開いている状態で、[Collaborate (コラボレーション)] ウィンドウの [Group Chat (グループチャット)] の任意の場所を右クリックし、[Clear history (履歴を削除)] を選択します。

注記

すべてのチャットメッセージを削除すると、すべての members の 環境 から該当メッセージが削除されます。

環境メンバー のアクセスロールを変更する

  1. アクセスロールを変更する member が含まれている自己所有の 環境 を開きます (環境 がまだ開いていない場合)。詳細については、「AWS Cloud9 の環境を開く」を参照してください。

  2. [Collaborate (コラボレーション)] ウィンドウに members が表示されていない場合は、[Environment Members (環境メンバー)] を展開します。

  3. 以下のいずれかの操作を行います。

    • アクセスロールを変更する member の名前の横にある [R] または [RW] を選択して、この member を所有者または 読み取り/書き込み にします。

    • 読み取り/書き込み メンバーを 読み取り専用 に変更するには、member 名を右クリックして、[Revoke Write Access (書き込みアクセス権を取り消す)] を選択します。

    • 読み取り専用 メンバーを 読み取り/書き込み に変更するには、member 名を右クリックして、[Grant Read+Write Access (書き込み+読み取りアクセス権を付与する)] を選択します。

      注記

      このユーザーを 読み取り/書き込み メンバーにする場合、AWS セキュリティ認証情報が危険にさらされるおそれがあることに関する情報が含まれるダイアログボックスが表示されます。自分に代わって AWS に対してアクションを実行する信頼できるユーザー以外は、読み取り/書き込み メンバーにしないでください。詳細については、「環境と同じアカウントのユーザーを招待する」の関連注記を参照してください。

コードを使用して 環境メンバー のアクセスロールを変更するには、次のように、AWS Cloud9 の 環境 メンバーシップの更新オペレーションを呼び出します。

共有 環境 から自分のユーザーを削除する

注記

環境 所有者の場合は、環境 から自分のユーザーを削除することはできません。

自分のユーザーを 環境 から削除しても、IAM からは削除されません。

  1. 共有 環境 が開いている状態で、[Collaborate (コラボレーション)] ウィンドウに members のリストが表示されていない場合は、[Environment Members (環境メンバー)] を展開します。

  2. 次のいずれかを行ってください。

    • [You (自分)] の横で、ゴミ箱アイコンを選択します。

    • [You (自分)] を右クリックして、[Leave environment (環境を離れる)] を選択します。

  3. プロンプトが表示されたら、[Leave (離れる)] を選択します。

コードを使用して自分のユーザーを共有 環境 から削除するには、次のように、AWS Cloud9 の 環境 メンバーシップの削除オペレーションを呼び出します。

別の 環境メンバー を削除する

注記

自分のユーザー以外の member を 環境 から削除するには、環境 所有者の認証情報を使用して AWS Cloud9 にサインインする必要があります。

member を削除しても、そのユーザーは IAM からは削除されません。

  1. 削除する member が含まれている 環境 を開きます (環境 がまだ開いていない場合)。詳細については、「AWS Cloud9 の環境を開く」を参照してください。

  2. [Collaborate (コラボレーション)] ウィンドウに members が表示されていない場合は、[Environment Members (環境メンバー)] を展開します。

  3. 次のいずれかを行ってください。

    • 削除する member の名前の横にあるごみ箱アイコンを選択します。

    • 削除する member の名前を右クリックし、[Revoke Access (アクセスを取り消す)] を選択します。

  4. プロンプトが表示されたら、[Remove Member (メンバーの削除)] を選択します。

コードを使用して member を 環境 から削除するには、次のように、AWS Cloud9 の 環境 メンバーシップの削除オペレーションを呼び出します。

環境 共有のベストプラクティス

環境 を共有する場合には、以下のプラクティスをお勧めします。

  • 信頼できる読み取り/書き込みメンバーのみを 環境 に招待する。

  • EC2 環境 では、読み取り/書き込みメンバーは、自分たちの認証情報ではなく 環境 所有者の AWS アクセス認証情報を使用して、環境 から AWS のサービスへの呼び出しを行うことができます。これを防止するため、環境 所有者は 環境 の AWS 管理の一時認証情報 を無効にできます。ただし、これを行うと 環境 所有者も呼び出しを行うことができなくなります。詳細については、「AWS 管理の一時認証情報」を参照してください。

  • AWS CloudTrail をオンにして 環境 のアクティビティを追跡します。詳細については、AWS CloudTrail User Guideを参照してください。

  • AWS アカウントの root ユーザーを使用して 環境 を作成および共有しない。代わりに、アカウント内の IAM ユーザーを使用します。詳細については、IAM ユーザーガイド の「初回アクセスのみ: ルートユーザーの認証情報」および「IAM ユーザー」を参照してください。