進入しない EC2 インスタンスへのアクセスAWSSystems Manager - AWS Cloud9

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

進入しない EC2 インスタンスへのアクセスAWSSystems Manager

EC2 環境用に作成された「進入しない EC2 インスタンス」は、AWS Cloud9を使用して、そのインスタンスのインバウンドポートを開かなくても、その Amazon EC2 インスタンスに接続できます。EC2 環境を作成するときに、入力なしオプションを選択できます。consoleとすると、コマンドラインインターフェイス、またはAWS CloudFormationスタック

重要

Systems Manager セッションマネージャーを使用して EC2 インスタンスへの接続を管理する場合、追加料金は発生しません。


            ご使用の環境に新しい入力なし EC2 インスタンスを選択する

環境タイプを環境設定のセクションコンソールで、インバウンド接続を必要とする新しい EC2 インスタンス、または未入力の EC2 インスタンスを選択できます。

注記

また、3 番目のオプションとしてリモートサーバーを作成して実行する (SSH)。持つことの詳細については、「」を参照してください。AWS Cloud9に接続します。EXITEC2 インスタンスまたは独自のサーバーの詳細については、「」を参照してください。SSH 環境の作成

を使用して環境を作成する場合、AWS CLIに設定することで、入力なし EC2 インスタンスを設定できます。--connection-type CONNECT_SSMを呼び出すときにcreate-environment-ec2コマンド。必要なサービスロールとインスタンスプロファイルを作成する方法の詳細については、「」を参照してください。Systems Manager のインスタンスプロファイルの管理AWS CLI

入力なし EC2 インスタンスを使用する環境の作成が完了したら、以下を確認します。

EC2 環境でSystems Manager を使用する利点

許可セッションマネージャー間のセキュアな接続を処理するAWS Cloud9とその EC2 インスタンスには、次の 2 つの主な利点があります。

  • インスタンスのインバウンドポートを開く必要がない

  • パブリックサブネットまたはプライベートサブネットでインスタンスを起動するオプション

No open inbound ports

間の安全な接続AWS Cloud9とその EC2 インスタンスはセッションマネージャー。セッションマネージャは、完全に管理されたSystems Manager 機能であり、AWS Cloud9を使用して、インバウンドポートを開かなくてもその EC2 インスタンスに接続できます。

重要

入力なし接続に Systems Manager を使用するオプションは、現在、新しい EC2 環境を作成する場合にのみ使用できます。

Session Manager セッションが開始されると、ターゲットインスタンスへの接続が確立されます。接続を確立すると、環境は Systems Manager サービスを通じてインスタンスと対話できるようになります。Systems Manager サービスは、Systems Manager エージェント (SSM エージェント).

SSM Agent は、デフォルトでは、EC2 環境で使用されるすべてのインスタンスにインストールされます。

Private/public subnets

インスタンスのサブネットをネットワーク設定 (高度)セクションでは、ご使用の環境のインスタンスに Systems Manager からアクセスする場合は、プライベートサブネットまたはパブリックサブネットを選択できます。


                            ご使用の環境に新しい入力なし EC2 インスタンスを選択する

プライベートサブネット

プライベートサブネットの場合、インスタンスが SSM サービスに接続できることを確認する必要があります。これは、によって行うことができます。パブリックサブネットに NAT ゲートウェイをセットアップするまたはSystems Manager の VPC エンドポイントの設定

NAT ゲートウェイを使用する利点は、インターネットがプライベートサブネット内のインスタンスへの接続を開始できないことです。環境のインスタンスにはパブリック IP アドレスではなくプライベート IP アドレスが割り当てられているため、NAT ゲートウェイはインスタンスからインターネットまたはその他のAWSサービスからインスタンスにレスポンスを送り返します。

[VPC] オプションでは、少なくとも 3 つのインターフェイスエンドポイントSystems Manager の場合:com.amazonaws.region.ssm,com.amazonaws.region.ec2メッセージ, およびcom.amazonaws.region.ssmessages。詳細については、「」を参照してください。Systems Manager の VPC エンドポイントの作成()AWS Systems Managerユーザーガイド

重要

現在、環境の EC2 インスタンスがプライベートサブネットで起動されている場合、AWS管理の一時認証情報を使用して、EC2 環境がAWSサービスを代理してAWSエンティティ(IAM ユーザーなど)。

パブリックサブネット

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

環境インスタンスのプライベートサブネットとパブリックサブネットの設定の詳細については、作成のサブネットAWS Cloud9

Systems Manager アクセス許可の管理

デフォルトでは、Systems Manager には EC2 インスタンスでアクションを実行するアクセス許可がありません。アクセスは、AWS Identity and Access Management(IAM) インスタンスプロファイルを作成します。インスタンスプロファイルは、起動時に EC2 インスタンスに IAM ロール情報を渡すコンテナです。

[Ingress and inpress EC2 インスタンスを作成すると、AWS Cloud9コンソールでは、サービスロール (サービスロール) (AWSCloud9SSMAccessRole)、IAM インスタンスプロファイル (IAM インスタンスプロファイル (AWSCloud9SSMInstanceProfile) は自動的に作成されます。(表示することができます)AWSCloud9SSMAccessRoleIAM マネジメントコンソールで [] を選択します。 インスタンスプロファイルは IAM コンソールに表示されません)。

重要

入力なしの EC2 環境をAWS CLIでは、必要なサービスロールとインスタンスプロファイルを明示的に定義する必要があります。詳細については、「Systems Manager のインスタンスプロファイルの管理AWS CLI」を参照してください。

セキュリティ保護を強化するために、AWS Cloud9サービスにリンクされたロール、AWSServiceRoleforAWSCloud9は、以下を備えています。PassRole制限は、そのAWSCloud9ServiceRolePolicyポリシー。とき、Passサービスに IAM ロールを追加すると、サービスがロールの採用を行い、ユーザーの代わりにアクションを実行できるようになります。この場合、PassRoleパーミッションにより、AWS Cloud9を渡すことができるのはAWSCloud9SSMAccessRoleロール (およびそのアクセス許可) を EC2 インスタンスに追加します。これにより、EC2 インスタンスで実行できるアクションは、AWS Cloud9。

注記

Systems Manager を使用してインスタンスにアクセスする必要がなくなった場合は、AWSCloud9SSMAccessRoleサービスロールに追加します。詳細については、「」を参照してください。ロールまたはインスタンスプロファイルの削除()IAM ユーザーガイド

Systems Manager のインスタンスプロファイルの管理AWS CLI

また、進入しない EC2 環境をAWS CLI。あなたが呼び出すときcreate-environment-ec2、設定:--connection-typeオプションをCONNECT_SSM

このオプションを使用する場合、AWSCloud9SSMAccessRoleサービスロールとAWSCloud9SSMInstanceProfileは自動的に作成されません。したがって、必要なサービスプロファイルとインスタンスプロファイルを作成するには、次のいずれかの操作を行います。

  • コンソールを使用して EC2 環境を作成します。AWSCloud9SSMAccessRoleサービスロールとAWSCloud9SSMInstanceProfile後に自動的に作成されます。作成後、サービスロールとインスタンスプロファイルは、AWS CLI。

  • 以下の作業を行います。AWS CLIコマンドを実行して、サービスロールとインスタンスプロファイルを作成します。

    aws iam create-role --role-name AWSCloud9SSMAccessRole --path /service-role/ --assume-role-policy-document '{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com","cloud9.amazonaws.com"] },"Action": "sts:AssumeRole"}]}' aws iam attach-role-policy --role-name AWSCloud9SSMAccessRole --policy-arn arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile aws iam create-instance-profile --instance-profile-name AWSCloud9SSMInstanceProfile --path /cloud9/ aws iam add-role-to-instance-profile --instance-profile-name AWSCloud9SSMInstanceProfile --role-name AWSCloud9SSMAccessRole

セッションマネージャーによって管理されるインスタンスへのユーザーアクセスの許可

を開くにはAWS Cloud9環境で、Systems Manager を介して EC2 インスタンスに接続している場合、ユーザーは API オペレーションのアクセス許可を持っている必要があります。StartSession。この操作により、セッションマネージャーセッションで管理対象の EC2 インスタンスへの接続が開始されます。ユーザーにアクセス権を付与するには、AWS Cloud9特定の管理ポリシー(推奨)を使用するか、IAM ポリシーを編集して必要なアクセス権限を追加します。

方法 説明

を使用するAWS Cloud9固有の管理ポリシー

を使用することをお勧めします。AWS管理ポリシーを使用して、ユーザーが Systems Manager によって管理される EC2 インスタンスにアクセスできるようにします。管理ポリシーは、標準のAWS Cloud9のユースケースを使用しており、IAM エンティティに簡単にアタッチできます。

すべての管理ポリシーには、StartSessionAPI オペレーション。次の管理ポリシーは、AWS Cloud9:

  • AWSCloud9Administrator (arn:aws:iam::aws:policy/AWSCloud9Administrator)

  • AWSCloud9User (arn:aws:iam::aws:policy/AWSCloud9User)

  • AWSCloud9EnvironmentMember (arn:aws:iam::aws:policy/AWSCloud9EnvironmentMember)

詳細については、「AWS用の 管理ポリシーAWSCloud9」を参照してください。

IAM ポリシーを編集し、必要なポリシーステートメントを追加する

既存のポリシーを編集するには、StartSessionAPI. を使用してポリシーを編集するにはAWS Management ConsoleまたはAWS CLIの指示に従ってください。IAM ポリシーの編集()IAM ユーザーガイド

ポリシーを編集するときに、policy statement(以下を参照)。これにより、ssm:startSessionAPI オペレーションを実行します。

次のアクセス許可を使用すると、StartSessionAPI オペレーション。-ssm:resourceTag条件キーは、セッションマネージャーセッションを任意のインスタンス(Resource: arn:aws:ec2:*:*:instance/*) を、インスタンスがAWS Cloud9EC2 開発環境 (aws:cloud9:environment).

注記

次の管理ポリシーには、これらのポリシーステートメントも含まれています。AWSCloud9Administrator,AWSCloud9User, およびAWSCloud9EnvironmentMember

{ "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloud9.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }

を使用するAWS CloudFormation進入しない EC2 環境を作成する

を使用する場合AWS CloudFormationテンプレートを使用して、入力しない Amazon EC2 開発環境を定義する場合は、スタックを作成する前に次の操作を行います。

  1. の作成AWSCloud9SSMAccessRoleサービスロールとAWSCloud9SSMInstanceProfileインスタンスプロファイルに追加します。詳細については、「サービスロールとインスタンスプロファイルを作成するAWS CloudFormationテンプレート」を参照してください。

  2. 呼び出しの IAM エンティティのポリシーを更新します。AWS CloudFormationEC2 インスタンスに接続するセッションマネージャーセッションを開始できるようにします。詳細については、「IAM ポリシーへのSystems Manager のアクセス許可の追加」を参照してください。

サービスロールとインスタンスプロファイルを作成するAWS CloudFormationテンプレート

サービスロールを作成する必要がありますAWSCloud9SSMAccessRoleインスタンスプロファイルAWSCloud9SSMInstanceProfileを使用して、開発環境をバックアップする EC2 インスタンスをSystems Manager で管理できるようにします。

あなたが以前に作成した場合AWSCloud9SSMAccessRoleおよびAWSCloud9SSMInstanceProfile進入しない EC2 環境を作成することによってwith the consoleまたは実行中AWS CLIコマンドサービスロールとインスタンスプロファイルはすでに使用可能です。

注記

作成しようとすると、AWS CloudFormationスタックを、必要なサービスロールとインスタンスプロファイルを最初に作成せずに、入力なし EC2 環境で使用した場合、スタックは作成されず、次のエラーメッセージが表示されます。

インスタンスプロファイル AWSCloud9SSMinStanceProfile がアカウントに存在しません。

入力なしの EC2 環境を初めて作成する場合、AWS CloudFormationと定義すると、AWSCloud9SSMAccessRoleおよびAWSCloud9SSMInstanceProfileテンプレートに IAM リソースとして追加します。

サンプルテンプレートからの抜粋は、これらのリソースを定義する方法を示しています。(AssumeRoleアクションは、両方へのアクセスを提供するセキュリティ認証情報を返します。AWS Cloud9環境およびその EC2 インスタンスが含まれます)。

AWSTemplateFormatVersion: 2010-09-09 Resources: AWSCloud9SSMAccessRole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - cloud9.amazonaws.com - ec2.amazonaws.com Action: - 'sts:AssumeRole' Description: 'Service linked role for AWS Cloud9' Path: '/service-role/' ManagedPolicyArns: - arn:aws:iam::aws:policy/AWSCloud9SSMInstanceProfile RoleName: 'AWSCloud9SSMAccessRole' AWSCloud9SSMInstanceProfile: Type: "AWS::IAM::InstanceProfile" Properties: InstanceProfileName: AWSCloud9SSMInstanceProfile Path: "/cloud9/" Roles: - Ref: AWSCloud9SSMAccessRole

IAM ポリシーへのSystems Manager のアクセス許可の追加

Afterサービスロールとインスタンスプロファイルの定義()AWS CloudFormationテンプレートでは、スタックを作成する IAM エンティティに Session Manager セッションを開始する権限があることも確認する必要があります。(セッションとは、セッションマネージャーを使用して EC2 インスタンスに対して行われる接続です)。

注記

入力なし EC2 環境用のスタックを作成する前にセッションマネージャーセッションを開始する権限を追加しない場合、AccessDeniedExceptionエラーが返されます。

呼び出しの IAM エンティティのポリシーに以下のアクセス権限を追加します。AWS CloudFormation:

{ "Effect": "Allow", "Action": "ssm:StartSession", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringLike": { "ssm:resourceTag/aws:cloud9:environment": "*" }, "StringEquals": { "aws:CalledViaFirst": "cloudformation.amazonaws.com" } } }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": [ "arn:aws:ssm:*:*:document/*" ] }

依存関係をダウンロードするための Amazon S3 の VPC エンドポイントの設定

場合、AWS Cloud9環境の EC2 インスタンスがインターネットにアクセスできない場合(アウトバウンドトラフィックは許可されません)、指定した Amazon S3 バケットの VPC エンドポイントを作成する必要があります。このバケットには、IDE を最新の状態に保つために必要な依存関係が含まれています。

Amazon S3 の VPC エンドポイントをセットアップするには、アクセスポリシーをカスタマイズして、ダウンロードする依存関係を含む信頼されたバケットのみへのアクセスを許可します。

注記

VPC エンドポイントを作成および設定するには、AWS Management Console,AWS CLI、または Amazon VPC API を使用します。以下の手順では、コンソールインターフェイスを使用して VPC エンドポイントを作成する方法を説明します。

Amazon S3 の VPC エンドポイントの作成と設定

  1. 左AWS Management Console[Amazon VPC] で Amazon VPC のコンソールページに移動します。

  2. 選択エンドポイントナビゲーションバーで [] を選択します。

  3. エンドポイントページで [] を選択します。エンドポイントの作成

  4. エンドポイントの作成ページで、検索フィールドに「s3」と入力し、戻り値Amazon S3 の利用可能なエンドポイントを現在のAWSリージョン。

  5. 返される Amazon S3 エンドポイントのリストから、ゲートウェイタイプを作成することができます。

  6. 次に、環境の EC2 インスタンスが含まれている VPC を選択します。

  7. 次に、関連付けられたサブネットがエンドポイントにアクセスできるように、VPC のルートテーブルを選択します。(環境の EC2 インスタンスは、これらのサブネットの 1 つにあります)。

  8. ポリシーセクションで、[] を選択します。Customオプションを選択し、標準ポリシーを以下に置き換えます。

    { "Version": "2008-10-17", "Statement": [ { "Sid": "Access-to-C9-bucket-only", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::{bucket_name}/content/dependencies/*" } ] }

    Resource要素、replace{bucket_name}で利用可能なバケットの実際の名前に置き換えます。AWSリージョン。たとえば、使用している場合AWS Cloud9欧州 (アイルランド) リージョンで、以下を指定します。"Resource": "arn:aws:s3:::static-eu-west-1-prod-static-hld3vzaf7c4h/content/dependencies/

    以下の表にバケット名を示します。AWSリージョンの場所AWS Cloud9は、利用可能です。

    Amazon S3 バケット ()AWS Cloud9リージョン
    AWS リージョン バケット名 

    US East (Ohio)

    static-us-east-2-prod-static-1c3sfcvf9hy4m

    US East (N. Virginia)

    static-us-east-1-prod-static-mft1klnkc4hl

    US West (Oregon)

    static-eu-west-3-prod-static-1rwpkf766ke58

    Asia Pacific (Hong Kong)

    static-ap-east-1-prod-static-171xhpfkrorh6

    Asia Pacific (Mumbai)

    static-ap-south-1-prod-static-ykocre202i9d

    Asia Pacific (Seoul)

    static-ap-northeast-2-prod-static-1wxyctlhwiajm

    Asia Pacific (Sydney)

    static-ap-southeast-2-prod-static-1cjsl8bx27rfu

    Asia Pacific (Tokyo)

    static-ap-northeast-1-prod-static-4fwvbdisquj8

    Canada (Central)

    static-ca-central-1-prod-static-g80lpejy486c

    Europe (Frankfurt)

    static-eu-central-1-prod-static-14lbgls2vrkh

    Europe (Ireland)

    static-eu-west-1-prod-static-hld3vzaf7c4h

    Europe (London)

    static-eu-west-2-prod-static-36lbg202837x

    Europe (Milan)

    static-eu-south-1-prod-static-1379tzkd3ni7d

    Europe (Stockholm)

    static-eu-north-1-prod-static-1qzw982y7yu7e

    Middle East (Bahrain)

    static-me-south-1-prod-static-gmljex38qtqx

    South America (São Paulo)

    static-sa-east-1-prod-static-1cl8k0y7opidt

  9. [] を選択します。

    正しい構成情報を指定した場合は、作成されたエンドポイントの ID がメッセージに表示されます。

  10. IDE が Amazon S3 バケットにアクセスできることを確認するには、Window,New Terminal (新しいターミナル)メニューバーの [] を選択します。次に、以下のコマンドを実行します。{bucket_name}をリージョンのバケットの実際の名前に置き換えます。

    ping {bucket_name}.amazonaws.com.

    たとえば、米国東部 (バージニア北部) リージョンで Amazon S3 バケットのエンドポイントを作成した場合は、以下のコマンドを実行します。

    ping static-us-east-1-prod-static-mft1klnkc4hl.amazonaws.com

    ping が応答を受け取ると、IDE がバケットとその依存関係にアクセスできることを確認します。

この機能の詳細については、「」を参照してください。Amazon S3 におけるエンドポイント()AWSPrivateLink ガイド

プライベート接続用の VPC エンドポイントの設定

サブネットにインスタンスを起動すると、Systems Manager からアクセスオプションを使用すると、セキュリティグループには受信ネットワークトラフィックを許可するインバウンドルールがありません。ただし、セキュリティグループには、インスタンスからのアウトバウンドトラフィックを許可するアウトバウンドルールがあります。これは、パッケージとライブラリをダウンロードするために必要であり、AWS Cloud9IDE を最新の状態に保つ。

インスタンスのアウトバウンドトラフィックとインバウンドトラフィックを防ぐには、Systems Manager 用の Amazon VPC エンドポイントを作成して設定する必要があります。インターフェイス VPC エンドポイント (インターフェイスエンドポイント) では、AWSPrivateLinkは、プライベート IP アドレスを使用して Amazon EC2 および Systems Manager API にプライベートにアクセスできるテクノロジーです。Systems Manager を使用するように VPC エンドポイントを設定するには、ナレッジセンターのリソース

警告

インバウンドまたはアウトバウンドのネットワークトラフィックを許可しないセキュリティグループを設定する場合、AWS Cloud9IDE には既定ではインターネットにアクセスできません。したがって、作成する必要がありますVPC の Amazon S3 エンドポイント信頼できる S3 バケットに含まれる依存関係へのアクセスを許可します。さらに、いくつかのAWSなどのサービスAWS Lambda関数は、インターネットアクセスなしでは意図したとおりに動作しない可能性があります。

とAWSPrivateLink では、トラフィックの送信元または送信先に関係なく、VPC エンドポイントを介して処理されるギガバイトごとにデータ処理料金が発生します。詳細については、「」を参照してください。AWSPrivateLink 料金表