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

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

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

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

ユーザータイプ 以下の手順に従います

環境と同じ AWS アカウントのユーザーを招待します。

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

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

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

  • IAM 管理者ユーザー。

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

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

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

Contents

共有環境のユースケース

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

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

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

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

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

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

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

  • 所有者は、環境に関する完全なコントロールを持っています。各環境の所有者は、環境の作成者である 1 人のみです。所有者は、以下のアクションができます。

    • 環境のメンバーを追加、変更、および削除する

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

    • コードを実行する

    • 環境設定の変更

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

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

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

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

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

    • コードを実行する

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

コンソールを使用して AWS Cloud9 の AWS マネージドポリシーをグループに添付する

  1. AWS Management Console にまだサインインしていない場合は、サインインします。

    このステップでは、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 アクセス認証情報を環境内に保存する場合、そのメンバーはこれらの認証情報をコピーして 環境外で使用することが可能です。

    自分の環境から永続的な AWS アクセス認証情報を削除して、代わりに一時 AWS アクセス認証情報を使用しても、この問題に完全に対処することはできません。これによりメンバーがこれらの一時的認証情報をコピーして環境外で使用できる機会は減少します (一時的認証情報は限られた時間のみ機能するため)。ただし、一時認証情報でも読み取り/書き込みメンバー がお客様に代わって 環境から 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 を使用して、共有環境でファイルの操作や他のメンバーとのチャットなどを行います。

  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 (コラボレーション)]ウィンドウを使用して他のメンバーとやり取りできます。

注記

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


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

環境メンバーのリストを参照する

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

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

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

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

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


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

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

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

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


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

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

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

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

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


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

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

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

  2. メンバー 名を右クリックし、[Show Location (場所を表示する)]を選択します。

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

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


            AWS Cloud9 IDE 内のチャットエリア

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

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

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

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

注記

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

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

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

注記

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

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

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

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

  3. 次のいずれかのアクションを実行します。

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

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

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

      注記

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

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

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

注記

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

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

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

  2. 次のいずれかのアクションを実行します。

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

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

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

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

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

注記

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

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

  1. 削除したいメンバーが含まれる環境をまだ開いていない場合は、環境を開きます。詳細については、「AWS Cloud9で環境を開く」を参照してください。

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

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

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

    • 削除したいメンバーの名前を右クリックし、[Revoke Access (アクセスを取り消す)] を選択します。

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

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

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

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

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

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

  • AWS CloudTrail をオンにして のアクティビティを追跡します。詳細については、AWS CloudTrail ユーザーガイドを参照してください。

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