AWS Cloud9 開発環境の VPC 設定 - AWS Cloud9

AWS Cloud9 開発環境の VPC 設定

Amazon Virtual Private Cloud (Amazon VPC) に関連付けられた各 AWS Cloud9 開発環境は、特定の VPC 要件を満たしている必要があります。これらの環境には、EC2 環境とAWS クラウドコンピューティングの例と関連する SSH 環境が含まれます (VPC 内で動作するAmazon EC2 インスタンスや Amazon Lightsail インスタンスなど)。

AWS Cloud9 の Amazon VPC 要件

AWS Cloud9 が使用する Amazon VPC には、次の設定が必要です。以下の要件は熟知しており、互換性のある VPC を早急に作成したいという場合は、「AWS Cloud9 用 Amazon VPC を作成する」に進んでください。

次のチェックリストを使用して、以下のすべての要件を VPC が満たしていることを確認します。

条件 確認する方法 その他のリソース

VPC は、AWS Cloud9 開発環境と同じAWS アカウントとAWSリージョンもあります。

-または-

VPC は、環境とは異なる AWS アカウントの共有 VPC である場合があります。(ただし、VPC は環境と同じ AWS リージョンにあることが必要です)。

AWS リージョンの VPC のリストを表示する

VPC にはパブリックサブネットが必要です (トラフィックがインターネットゲートウェイにルーティングされる場合、サブネットはパブリックです)。

環境が SSH 経由で EC2 インスタンスに直接アクセスしている場合、インスタンスはパブリックサブネットでのみ起動できます。

Systems Manager を使って no-ingress Amazon EC2 インスタンスにアクセスしている場合、インスタンスはパブリックサブネットまたはプライベートサブネットに起動できます。

パブリックサブネットを使用している場合は、インスタンスの SSM Agent が Systems Manager に接続できるように、インターネットゲートウェイを VPC に添付します。

プライベートサブネットを使用している場合は、パブリックサブネットで NAT ゲートウェイをホストして、サブネットのインスタンスによるインターネットとの通信を許可します。

パブリックサブネットには、最小限のルートセットを含むルートテーブルが必要です。

VPC (またはアーキテクチャーによっては AWS クラウドコンピューティングインスタンス) の関連付けられたセキュリティグループは、インバウンドおよびアウトバウンドトラフィックの最小セットを許可する必要があります。

セキュリティレイヤーを追加するため、VPC にネットワーク ACL がある場合、ネットワーク ACL はインバウンドおよびアウトバウンドトラフィックの最小セットを許可する必要があります。

ネットワーク ACL の作成

注記

以下の手順では、Amazon VPC または Amazon EC2 コンソールを使用する場合、AWS アカウントの IAM 管理者の認証情報を使用して AWS Management Console にサインインし、Amazon VPC コンソール (https://console.aws.amazon.com/vpc) または Amazon EC2 コンソール (https://console.aws.amazon.com/ec2) を開くことをお勧めします。

AWS CLI または aws-shell を使用する場合は、 ご自分の AWS アカウントの IAM 理者の認証情報を使用して、AWS CLI または aws-shell を設定するようお勧めします。これを実行できない場合は、AWS アカウントの管理者に確認してください。

AWS リージョンの VPC のリストを表示する

Amazon VPC コンソールを使用するには、AWS ナビゲーションバーで、AWS Cloud9 が 内部環境を作成する AWSリージョンを選択します。次に、ナビゲーションペインで、[お客様の VPC]を選択します。

AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2] describe-vpcs コマンドを実行します。

aws ec2 describe-vpcs --output table --query 'Vpcs[*].VpcId' --region us-east-2

上のコマンドで、us-east-2 を環境を AWS Cloud9 が環境を内部で作成するAWS リージョンに置き換えてください。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、VPC ID のリストが含まれます。

VPC のサブネットのリストを表示する

Amazon VPC コンソールを使用するため、ナビゲーションペインで[お客様の VPC]を選択します。[VPC ID]列の VPC の ID をメモしておきます。次に、ナビゲーションペインで[サブネット]を選択し、[VPC]列でその ID を含むサブネットを探します。

AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2] describe-subnets コマンドを実行します。

aws ec2 describe-subnets --output table --query 'Subnets[*].[SubnetId,VpcId]' --region us-east-2

前述のコマンドで、us-east-2 を、サブネットがある AWS リージョンに置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力で、VPC の ID と一致するサブネットを探します。

パブリックサブネットかどうかを確認する

重要

環境の EC2 インスタンスをプライベートサブネットに起動する場合は、SSM サービスに接続できるように、そのインスタンスに対してアウトバウンドトラフィックが許可されていることを確認してください。プライベートサブネットの場合、アウトバウンドトラフィックは通常、ネットワークアドレス変換 (NAT) ゲートウェイまたは VPC エンドポイントを介して設定されます。(NAT ゲートウェイにはパブリックサブネットが必要です)。

SSM にアクセスするために NAT ゲートウェイではなく VPC エンドポイントを選択すると、これらのエンドポイントがインターネットアクセスに依存する場合、インスタンスの自動更新とセキュリティパッチが機能しないことがあります。AWS Systems Manager Patch Manager などの他のアプリケーションを使用して、環境が必要とするソフトウェア更新を管理できます。AWS Cloud9 ソフトウェアは通常どおり更新されます。

Amazon VPC コンソールを使用するには、ナビゲーションペインで[サブネット]を選択します。使用する AWS Cloud9 の横にあるサブネットを選択します。[ルートテーブル]タブで、[ターゲット]列に[igw-]で始まるエントリがある場合、そのサブネットはパブリックです。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Routes[*].{GatewayIds:GatewayId}' --region us-east-2 --filters Name=association.subnet-id,Values=subnet-12a3456b

前述のコマンドで、us-east-2 をサブネットがある AWS リージョンで置き換え、subnet-12a3456b をサブネット ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に igw- で始まる結果が 1 つでもある場合は、そのサブネットがパブリックです。

出力に結果がない場合は、ルートテーブルがサブネットではなく、代わりに VPC に関連付けられている可能性があります。これを確認するには、次の例のように、サブネット自体の代わりに、サブネットに関連する VPC に対して Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Routes[*].{GatewayIds:GatewayId}' --region us-east-1 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に igw- で始まる結果が 1 つでもある場合は、その VPC にはインターネットゲートウェイが含まれています。

インターネットゲートウェイの設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[インターネットゲートウェイ]を選択します。インターネットゲートウェイの横にあるボックスを選択します。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して設定を表示するには、Amazon EC2 describe-internet-gateways コマンドを実行します。

aws ec2 describe-internet-gateways --output table --region us-east-2 --internet-gateway-id igw-1234ab5c

前述のコマンドで、us-east-2 をインターネットゲートウェイがある AWS リージョンで置き換え、igw-1234ab5c をインターネットゲートウェイ ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

インターネットゲートウェイを作成する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[インターネットゲートウェイ]を選択します。[インターネットゲートウェイの作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して、Amazon EC2 create-internet-gateway コマンドを実行します。

aws ec2 create-internet-gateway --output text --query 'InternetGateway.InternetGatewayId' --region us-east-2

前述のコマンドで、us-east-2 を、新規のインターネットゲートウェイがある AWS リージョンに置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、新規のインターネットゲートウェイの ID が含まれています。

インターネットゲートウェイを VPC にアタッチする

Amazon VPC コンソールを使用するには、ナビゲーションペインで[インターネットゲートウェイ]を選択します。インターネットゲートウェイの横にあるボックスを選択します。必要に応じて[アクション]、[VPC にアタッチ]の順に選択し、画面の指示に従います。

AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2] attach-internet-gateway コマンドを実行します。

aws ec2 attach-internet-gateway --region us-east-2 --internet-gateway-id igw-a1b2cdef --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 をインターネットゲートウェイがある AWS リージョンで置き換え、igw-a1b2cdef をインターネットゲートウェイ ID で置き換え、vpc-1234ab56 を VPC ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

サブネットにルートテーブルがあるかどうかを確認する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[サブネット]を選択します。AWS Cloud9 を使用したい VPC のパブリックサブネットの隣のボックスを選択します。[ルートテーブル]タブで、[ルートテーブル]の値がある場合は、パブリックサブネットにルートテーブルがあります。

AWS CLI または aws-shell を使用するには、[Amazon EC2 describe-route-tables ]コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Associations[*].{RouteTableIds:RouteTableId}' --region us-east-2 --filters Name=association.subnet-id,Values=subnet-12a3456b

前述のコマンドで、us-east-2 をパブリックサブネットがある AWS リージョンで置き換え、subnet-12a3456b をパブリックサブネット ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に値がある場合、パブリックサブネットには少なくとも 1 つのルートテーブルがあります。

出力に結果がない場合は、ルートテーブルがサブネットではなく、代わりに VPC に関連付けられている可能性があります。これを確認するには、次の例のように、サブネット自体の代わりに、サブネットに関連する VPC に対して Amazon EC2 describe-route-tables コマンドを実行します。

aws ec2 describe-route-tables --output table --query 'RouteTables[*].Associations[*].{RouteTableIds:RouteTableId}' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力に少なくとも 1 つの結果がある場合、VPC には少なくとも 1 つのルートテーブルがあります。

サブネットをルートテーブルに添付する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ルートテーブル]を選択します。アタッチするルートテーブルの横にあるチェックボックスをオンにします。[サブネットの関連付け]タブで[編集]を選択し、アタッチ先のサブネットの横にあるチェックボックスをオンにして、[保存]を選択します。

AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2] associate-route-table コマンドを実行します。

aws ec2 associate-route-table --region us-east-2 --subnet-id subnet-12a3456b --route-table-id rtb-ab12cde3

前述のコマンドで、us-east-2 をルートテーブルがある AWS リージョンで置き換え、subnet-12a3456b をサブネット ID で置き換え、rtb-ab12cde3 をルートテーブル ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

ルートテーブルの作成

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ルートテーブル]を選択します。[ルートテーブルの作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2] create-route-table コマンドを実行します。

aws ec2 create-route-table --output text --query 'RouteTable.RouteTableId' --region us-east-2 --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 を新しいルートテーブルがある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、新しいルートテーブルの ID が含まれています。

ルートテーブルの設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ルートテーブル]を選択します。ルートテーブルの横にあるチェックボックスをオンにします。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、[編集]を選択し、画面の指示に従います。

設定を表示するために AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2 describe-route-tables]コマンドを実行します。

aws ec2 describe-route-tables --output table --region us-east-2 --route-table-ids rtb-ab12cde3

前述のコマンドで、us-east-2 をルートテーブルがある AWS リージョンで置き換え、rtb-ab12cde3 をルートテーブル ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

AWS Cloud9 の最小限推奨されるルートテーブル設定

送信先 [Target] (ターゲット) ステータス 伝播済み

CIDR-BLOCK

local

[Active] (アクティブ)

いいえ

0.0.0.0/0

igw-INTERNET-GATEWAY-ID

[Active] (アクティブ)

いいえ

これらの設定で、CIDR-BLOCK は、サブネットの CIDR ブロックで、igw-INTERNET-GATEWAY-ID は、互換性のあるインターネットゲートウェイの ID です。

VPC のセキュリティグループのリストを表示する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[セキュリティグループ]を選択します。[セキュリティグループの検索]ボックスに、VPC ID または名前を入力し、Enter キーを押します。その VPC のセキュリティグループが検索結果のリストに表示されます。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-security-groups コマンドを実行します。

aws ec2 describe-security-groups --output table --query 'SecurityGroups[*].GroupId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、その VPC のセキュリティグループ ID のリストが含まれています。

AWS クラウドコンピューティングインスタンスのセキュリティグループのリストを表示する

Amazon EC2 コンソールを使用するには、ナビゲーションペインで[インスタンス]を展開し、[インスタンス]を選択します。インスタンスの一覧で、インスタンスの横のボックスを選択します。そのインスタンスのセキュリティグループが、[Security groups]の横の[Description]タブに表示されます。

AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2] describe-security-groups コマンドを実行します。

aws ec2 describe-instances --output table --query 'Reservations[*].Instances[*].NetworkInterfaces[*].Groups[*].GroupId' --region us-east-2 --instance-ids i-12a3c456d789e0123

前述のコマンドで、us-east-2 をインスタンスがある AWSS リージョンで置き換え、i-12a3c456d789e0123 をインスタンス ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、そのインスタンスのセキュリティグループ ID のリストが含まれています。

VPC でセキュリティグループの設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[セキュリティグループ]を選択します。セキュリティグループの横にあるボックスを選択します。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

設定を表示するために AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2 describe-security-groups]コマンドを実行します。

aws ec2 describe-security-groups --output table --region us-east-2 --group-ids sg-12a3b456

前述のコマンドで、us-east-2 をインスタンスがある AWS リージョンで置き換え、sg-12a3b456 をセキュリティグループ ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

AWS クラウドコンピューティングインスタンスのセキュリティグループの設定を表示または変更する

Amazon EC2 コンソールを使用するには、ナビゲーションペインで[インスタンス]を展開し、[インスタンス]を選択します。インスタンスの一覧で、インスタンスの横のボックスを選択します。[説明]タブの[セキュリティグループ]で、セキュリティグループを選択します。各タブを確認します。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

設定を表示するために AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2 describe-security-groups]コマンドを実行します。

aws ec2 describe-security-groups --output table --region us-east-2 --group-ids sg-12a3b456

前述のコマンドで、us-east-2 をインスタンスがある AWS リージョンで置き換え、sg-12a3b456 をセキュリティグループ ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

AWS Cloud9 の最小インバウンドおよびアウトバウンドトラフィックの設定

重要

インスタンスのセキュリティグループにインバウンドルールがない場合、別のホストからインスタンスへの着信トラフィックは許可されません。no-ingress EC2 インスタンスの使用については、「AWS Systems Manager を使って no-ingress EC2 インスタンスをアクセスする」を参照してください。

  • インバウンド: ポート 22 で SSH を使用するすべての IP アドレス。ただし、これらの IP アドレスを、AWS Cloud9 が使用するものだけに制限することができます。詳細については、「AWS Cloud9 のインバウンド SSH IP アドレスの範囲」を参照してください。

    注記

    2018 年 7 月 31 日以降に作成された EC2 環境 の場合、AWS Cloud9 はセキュリティグループを使用して、ポート 22 経由で SSH を使用するインバウンド IP アドレス AWS Cloud9 を使用するあのアドレスだけに自動的に制限します。詳細については、「AWS Cloud9 のインバウンド SSH IP アドレスの範囲」を参照してください。

  • インバウンド (ネットワーク ACL のみ): EC2 環境 と、Amazon Linux または Ubuntu Server を実行してAmazon EC2 インスタンスと関連つけられた SSH 環境である場合、ポート 32768〜61000 経由で TCP を使用するすべての IP アドレス。詳細と、他の Amazon EC2 インスタンスタイプのポート範囲を含むについては、Amazon VPC ユーザーガイドの「一時ポート」を参照してください。

  • アウトバウンド: 任意のプロトコルとポートを使用するすべてのトラフィックソース。

セキュリティグループレベルでこの動作を設定することができます。さらにセキュリティレベルを高めるために、ネットワーク ACL を使用することもできます。詳細については、Amazon VPC ユーザーガイドの「セキュリティグループおよびネットワーク ACL の比較」を参照してください。

たとえば、インバウンドおよびアウトバウンドのルールをセキュリティグループに追加するには、次のようにルールを設定します。

インバウンドルール
タイプ Protocol - 。 ポート範囲 出典

SSH (22)

TCP (6)

22

0.0.0.0 (ただし次の注記および AWS Cloud9 のインバウンド SSH IP アドレスの範囲 を参照)。

注記

2018 年 7 月 31 日以降に作成された EC2 環境 の場合、AWS Cloud9 はインバウンドルールを追加し、ポート 22 経由 SSH を使用するインバウンド IP アドレスを、AWS Cloud9 が使用する IP アドレスのみに制限します。詳細については、「AWS Cloud9 のインバウンド SSH IP アドレスの範囲」を参照してください。

アウトバウンドルール
タイプ Protocol - 。 ポート範囲 出典

すべてのトラフィック

すべて

すべて

0.0.0.0/0

たとえば、インバウンドおよびアウトバウンドのルールをネットワーク ACL に追加するよう選択した場合は、次のようにルールを設定します。

インバウンドルール
ルール番号 タイプ プロトコル ポート範囲 ソース 許可/拒否

100

SSH (22)

TCP (6)

22

0.0.0.0 (ただし AWS Cloud9 のインバウンド SSH IP アドレスの範囲 を参照)。

許可

200

カスタム TCP ルール

TCP (6)

32768-61000 (Amazon Linux および Ubuntu Server インスタンスの場合。 その他のインスタンスタイプについては、一時ポートを参照してください)。

0.0.0.0/0

許可

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

DENY

アウトバウンドルール
ルール番号 タイプ プロトコル ポート範囲 出典 許可/拒否

100

すべてのトラフィック

すべて

すべて

0.0.0.0/0

許可

*

すべてのトラフィック

すべて

すべて

0.0.0.0/0

DENY

セキュリティグループとネットワーク ACL の詳細については、次のAmazon VPC ユーザーガイドを参照してください。

VPC でのセキュリティグループの作成

Amazon VPC または Amazon EC2 コンソールを使用するには、次のいずれかのアクションを実行します。

  • Amazon VPC コンソールのナビゲーションペインで、[セキュリティグループ]を選択します。[セキュリティグループの作成]を選択し、画面の指示に従います。

  • Amazon EC2 コンソールのナビゲーションペインで[ネットワーク & セキュリティ]を展開し、[セキュリティグループ]を選択します。[セキュリティグループの作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用するには、次の例のように、[Amazon EC2] create-security-group コマンドを実行します。

aws ec2 create-security-group --region us-east-2 --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

VPC に 1 つ以上のネットワーク ACL があるかどうかを確認する

Amazon VPC コンソールを使用するため、ナビゲーションペインで[お客様の VPC]を選択します。AWS Cloud9 を使用したい VPC の横にあるボックスを選択します。[概要]タブで、[ネットワーク ACL]の値がある場合は、VPC に少なくとも 1 つのネットワーク ACL があります。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-network-acls コマンドを実行します。

aws ec2 describe-network-acls --output table --query 'NetworkAcls[*].Associations[*].NetworkAclId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力のリストに少なくとも 1 つのエントリがある場合、その VPC には少なくとも 1 つのネットワーク ACL があります。

VPC のネットワーク ACL のリストを表示する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ネットワーク ACL]を選択します。[ネットワーク ACL を検索]ボックスに、VPC ID または名前を入力し、[Enter ]キーを押します。その VPC のネットワーク ACL が検索結果のリストに表示されます。

AWS CLI または aws-shell を使用して、Amazon EC2 describe-network-acls コマンドを実行します。

aws ec2 describe-network-acls --output table --query 'NetworkAcls[*].Associations[*].NetworkAclId' --region us-east-2 --filters Name=vpc-id,Values=vpc-1234ab56

前述のコマンドで、us-east-2 を VPC がある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。上記のコマンドを Windows で実行するには、一重引用符を二重引用符で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

出力には、その VPC のネットワーク ACL のリストが含まれています。

ネットワーク ACL の設定を表示または変更する

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ネットワーク ACL]を選択します。ネットワーク ACL の横にあるボックスを選択します。設定を確認するには、それぞれのタブをクリックします。タブの設定を変更するには、該当する場合は[編集]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して設定を表示するには、Amazon EC2 describe-network-acls コマンドを実行します。

aws ec2 describe-network-acls --output table --region us-east-2 --network-acl-ids acl-1234ab56

前述のコマンドで、us-east-2 をネットワーク ACL がある AWS リージョンで置き換え、acl-1234ab56 をネットワーク ACL ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

ネットワーク ACL の作成

Amazon VPC コンソールを使用するには、ナビゲーションペインで[ネットワーク ACL]を選択します。[ネットワーク ACL の作成]を選択し、画面の指示に従います。

AWS CLI または aws-shell を使用して、Amazon EC2 create-network-acl コマンドを実行します。

aws ec2 create-network-acl --region us-east-2 --vpc-id vpc-1234ab56

前述のコマンドで、us-east-2 を新しいネットワーク ACL にアタッチする VPC がある AWS リージョンで置き換え、vpc-1234ab56 を VPC ID で置き換えます。aws-shell で前述のコマンドを実行する場合は、aws を無視します。

AWS Cloud9 用 Amazon VPC を作成する

Amazon VPC コンソールを使用して、AWS Cloud9 と互換性のある Amazon VPC を作成できます。

注記

この手順では、AWS アカウントの IAM 管理者ユーザーの認証情報を使用して AWS Management Console にサインインし、Amazon VPC コンソールを開くことをお勧めします。これを実行できない場合は、AWS アカウントの管理者に確認してください。

一部の組織では、独自の VPC を作成することが許可されていない場合があります。VPC を作成できない場合は、AWS アカウントの管理者またはネットワーク管理者にチェックしてください。

  1. Amazon VPC コンソールをまだ開いていない場合は、AWS Management Console にサインインして Amazon VPC コンソール (https://console.aws.amazon.com/vpc) を開きます。

  2. ナビゲーションバーで、AWS リージョンが環境と同じではない場合は、正しい AWS リージョンを選択します。

  3. VPC ダッシュボード]ページが表示されていない場合は、ナビゲーションペインで[VPC ダッシュボード]を選択します。

  4. Launch VPC Wizard (VPC ウィザードの起動 ) を選択します。

  5. ステップ 1: VPC 設定の選択]ページで、[1 個のパブリックサブネットを持つ VPC]が選択されていることを確認し、[選択]を選択します。

  6. ステップ 2: 1 個のパブリックサブネットを持つ VPC]では、次のデフォルト設定のままにしておくことをお勧めします。(ただし、使用したいカスタム CIDR がある場合は、CIDR 設定を変更できます。 詳細については、Amazon VPC ユーザーガイドの「VPC とサブネットのサイジング」を参照してください。)

    • IPv4 CIDR ブロック:[10.0.0.0/16]

    • IPv6 CIDR ブロック]:[IPv6 CIDR ブロックなし

    • パブリックサブネットの IPv4 CIDR:[10.0.0.0/24]

    • アベイラビリティーゾーン]:[指定なし

    • DNS ホスト名を有効化]:[はい

    • ハードウェアテナンシー]:[デフォルト

  7. VPC 名]の場合は、VPC の名前を入力します。

  8. サブネット名]に、VPC のサブネットの名前を入力します。

  9. 新しい VPC の作成]を選択します。

    Amazon VPC は AWS Cloud9 と互換性のある以下のリソースを作成します。

    • VPC

    • VPC のパブリックサブネット。

    • パブリックサブネットのルートテーブルで、最低限の設定が必要です。

    • パブリックサブネットのインターネットゲートウェイ。

    • パブリックサブネットのネットワーク ACL で、最低限の設定が必要です。

  10. デフォルトでは、VPC はすべてのタイプ、プロトコル、ポート、および IP アドレスからの着信トラフィックを許可します。この動作を制限すると、ポート 22 を介した SSH を使用して AWS Cloud9 からの IP アドレスのみを許可することができます。1 つの方法は、次のように、VPC のデフォルトネットワーク ACL に受信ルールを設定することです。

    1. Amazon VPC コンソールのナビゲーションペインで、[お客様のVPC]を選択します。

    2. 先ほど作成した VPC のボックスを選択します。

    3. 説明]タブで、[ネットワーク ACL]の横のリンクを選択します。

    4. ネットワーク ACL の横に表示されているボックスを選択します。

    5. インバウンドルール]タブで、[インバウンドルールの編集]を選択します。

    6. ルール # 100)]の[タイプ]で、[SSH (22)]を選択します。

    7. 出典]に、この VPC の AWS リージョンと一致する AWS Cloud9 のインバウンド SSH IP アドレスの範囲 リストに CIDR ブロックの 1 つを入力します。

    8. 別のルールの追加]を選択します。

    9. ルール番号を使用する場合 200 と入力します。

    10. Type]で[SSH (22)]を選択します。

    11. 出典]の場合、この VPC の AWS リージョンと一致するAWS Cloud9 のインバウンド SSH IP アドレスの範囲一覧のその他の CIDR ブロックを入力します。

    12. 少なくとも、Amazon Linux インスタンスタイプおよび Ubuntu Server インスタンスタイプでは ポート 32768-61000 経由で TCP を使用して、すべての IP アドレスからの着信トラフィックを許可する必要があります。(背景知識と、他の Amazon EC2 インスタンスタイプのポート範囲をについては、Amazon VPC ユーザーガイドの「一時ポート 」を参照してください)。これを行うには、[別のルールの追加]を選択します。

    13. ルール番号を使用する場合 300 と入力します。

    14. [Type] で [Custom TCP Rule] を選択します。

    15. ポート範囲]で、 (Amazon Linux インスタンスタイプおよび Ubuntu Server インスタンスタイプに対して) 32768-61000 を入力します。

    16. 送信元]に「0.0.0.0/0」と入力します。

    17. [Save] を選択します。

    18. AWS Cloud9 の使用方法に応じて、ネットワーク ACL にさらにインバウンドルールまたはアウトバウンドルールを追加する必要があります。VPC のインバウンドおよびアウトバウンド通信を許可したい特定のウェブサービスのドキュメンテーションを参照してください。具体的には、タイププロトコルポート範囲, および送信元設定をチェックして、トラフィックがサブネットの内外に流れるようにします。

AWS Cloud9 のサブネットの作成

Amazon VPC コンソールを使用して、AWS Cloud9 と互換性のある VPC のサブネットを作成できます。EC2 インスタンスのプライベートサブネットとパブリックサブネットのどちらを作成できるかは、環境の接続方法によって異なります。

  • SSH による直接アクセス:パブリックサブネットのみ

  • Systems Manager からのアクセス: パブリックまたはプライベートサブネット

環境の EC2 をプライベートサブネットに起動するオプションが利用できるのは、コンソール、コマンドライン、または AWS CloudFormation を使った「no-ingress」 EC2 環境を作成する場合に限られます。

パブリックまたはプライベートのいずれかになりえるサブネットを作成と同じステップに従ってくださいい。サブネットがインターネットゲートウェイへのルートがあるルートテーブルに関連付けられている場合は、「パブリックサブネット」と呼ばれます。サブネットがインターネットゲートウェイへのルートがないルートテーブルに関連付けられている場合は、「プライベートサブネット」と呼ばれます。詳細については、「サブネットをパブリックまたはプライベートとして設定する」を参照してください。

前の手順に従って AWS Cloud9 の VPC を作成した場合は、この手順に従う必要はありません。これは、[新しい VPC の作成]ウィザードによって自動的にサブネットが作成されるためです。

重要
  • AWS アカウントには、環境用の同じ AWS リージョン内に互換性のある VPC が既に存在している必要があります。詳細については、AWS Cloud9 の Amazon VPC 要件の VPC 要件を参照してください。

  • この手順では、 アカウントの 管理者ユーザーの認証情報を使用して AWS Management Console にサインインし、ご自分の AWS アカウントの IAM 管理者用認証情報を使って、Amazon VPC コンソールを開くことをお勧めします。これを実行できない場合は、AWS アカウントの管理者に確認してください。

  • 一部の組織では、独自のサブネットの作成が許可されていない場合があります。サブネットを作成できない場合は、AWS アカウントの管理者またはネットワーク管理者に確認してください。

サブネットを作成するには

  1. Amazon VPC コンソールをまだ開いていない場合は、AWS Management Console にサインインして Amazon VPC コンソール (https://console.aws.amazon.com/vpc) を開きます。

  2. ナビゲーションバーで、AWS リージョンが 環境の AWS リージョンと同じではない場合は、正しい AWS リージョンを選択します。

  3. サブネット]ページが表示されていない場合は、ナビゲーションペインで[サブネット]を選択します。

  4. [Create Subnet] (サブネットの作成) を選択します。

  5. サブネットの作成]ダイアログボックスの[名前タグ]にサブネットの名前を入力します。

  6. VPC]で、サブネットを関連付ける VPC を選択します。

  7. アベイラビリティーゾーン]で、使用するサブネットの AWS リージョン内のアベイラビリティーゾーンを選択するか、[指定なし]を選択して、AWS にアベイラビリティーゾーンを選択させます。

  8. IPv4 CIDR ブロック]に、使用するサブネットの IP アドレス範囲を CIDR 形式で入力します。この IP アドレスの範囲は、VPC の IP アドレスのサブネットである必要があります。

    CIDR ブロックの詳細については、Amazon VPC ユーザーガイドVPC とサブネットのサイジングを参照してください。3.1 Basic Concept and Prefix Notation (RFC 4632) または IPv4 CIDR ブロック (Wikipedia) も参照してください。

サブネットの作成後、パブリックサブネットまたはプライベートサブネットとして設定する

サブネットをパブリックまたはプライベートとして設定する

サブネットを作成した後、インターネットとの通信方法を指定して、サブネットをパブリックまたはプライベートにすることができます。

パブリックサブネットにはパブリック IP アドレスがあり、サブネットのインスタンスと他の AWS サービスの通信を可能にするインターネットゲートウェイ(IGW)が添付されています。

プライベートサブネット内のインスタンスにはプライベート IP アドレスがあり、ネットワークアドレス変換 (NAT) ゲートウェイを使用して、サブネットとインターネットとその他の AWS サービスの間でトラフィックを送受信します。NAT ゲートウェイはパブリックサブネットにホストする必要があります。

Public subnets
注記

環境のインスタンスがプライベートサブネットで起動された場合でも、VPC は少なくとも 1 つのパブリックサブネットを備えている必要があります。これは、インスタンスとの間でトラフィックを転送する NAT ゲートウェイがパブリックサブネットでホストされている必要があるためです。

サブネットをパブリックとして設定するには、インターネットゲートウェイ(IGW)を添付し、その IGW へのルートを指定するようにルートテーブルを設定し、インバウンドトラフィックとアウトバウンドトラフィックを制御するため、セキュリティグループの設定を定義します。

これらのタスクの実行に関するガイダンスは AWS Cloud9 用 Amazon VPC を作成する で提供されています。

重要

開発環境がSSM を使用して EC2 インスタンスにアクセスし、インスタンスが起動先のパブリックサブネットによってパブリック IP アドレスに割り当てられていることを確認します。これを行うには、独自の IP アドレスを指定するか、パブリック IP アドレスの自動割り当てを有効にします。自動割り当て IP 設定を変更するステップについては、Amazon VPC ユーザーガイドの「VPC の IP アドレス指定」を参照してください。

Private subnets

Systems Manager からアクセスする no-ingress インスタンスを作成する場合は、プライベートサブネットで起動できます。プライベートサブネットにはパブリック IP アドレスがないため、NAT ゲートウェイは、リクエストのため、プライベート IP アドレスをパブリックアドレスにマッピングし、その後、応答のため、パブリック IP アドレスをプライベートアドレスにマッピングする必要があります。

警告

アカウントで NAT ゲートウェイを作成して使用するには料金がかかります。NAT ゲートウェイの時間単位の使用料金とデータ処理料金が適用されます。Amazon EC2 データ転送料金も適用されます。詳細については、「Amazon VPC の料金」を参照してください。

NAT ゲートウェイを作成して設定する前に、次の手順を行います。

  • NAT ゲートウェイをホストするパブリック VPC サブネットを作成します。

  • NAT ゲートウェイに割り当てることができるElastic IP アドレスをプロビジョンします。

  • プライベートサブネットの場合は、起動されたインスタンスがプライベート IP アドレスに割り当てられるように、[パブリック IPv4 アドレスの自動割り当てを有効にする]チェックボックスを解除します。詳細については、Amazon VPC ユーザーガイドの「VPC の IP アドレス指定」を参照してください。

このタスクのステップについては、Amazon VPC ユーザーガイドの「NAT ゲートウェイの使用」を参照してください。。

重要

現在、環境の EC2 インスタンスがプライベートサブネットで起動されている場合、AWSマネージド一時認証情報を使用して、AWS エンティティ(IAM ユーザーなど) を代理した EC2 環境によるAWS サービスへのアクセスを許可することはできません。