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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

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

所有する環境に参加するようユーザーを招待するには、次のいずれかの一連の手順に従います。招待したいユーザーの種類に基づいて選択します。

共有環境のユースケース

共有環境は以下のユースケースに適しています。

  • ペアプログラミング (ピアプログラミングともいいます): 単一の環境で 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 マネージドポリシーをグループにアタッチする

次の手順は、コンソールを使用して AWS Cloud9 の AWS マネージドポリシーをグループにアタッチする方法を示しています。

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

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

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

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

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

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

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

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

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

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

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

AWS CLI を使用して AWS Cloud9 の AWS マネージドポリシーをグループにアタッチする

注記

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

IAM attach-group-policy コマンドを実行して、AWS Cloud9 の AWS マネージドポリシーをグループにアタッチします。ポリシーのグループ名と Amazon リソースネーム (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。グループの各ユーザーはメンバーにのみなることができます。

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

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

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

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

    • 管理者ユーザー

    • 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 CloudShell、または 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 グループに属するユーザーロールを引き受けるユーザー、またはロールを引き受けるフェデレーションユーザーであり、かつそのグループまたはロールに AWS マネージドポリシー AWSCloud9Administrator がアタッチされている。

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

ユーザーを招待するには、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_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 CloudShell を使用している場合は、上記のコマンドから aws プレフィックスを省略します。

共有環境を開く

共有環境を開くには、AWS Cloud9 ダッシュボードを使用できます。AWS Cloud9 IDE を使用してアクションを実行し、共有環境で作業を完了します。例えば、ファイルを操作したり、他のチームメンバーとチャットしたりします。

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

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

    • AWS アカウント の使用者が自分だけか、単一の AWS アカウントの IAM ユーザーである場合は、https://console.aws.amazon.com/cloud9/ にアクセスします。

    • 組織で IAM Identity Center を使用している場合は、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 ユーザー」を参照してください。