AWS Systems Manager の機能である Session Manager を使用してポート転送を作成したいと考えています。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
Session Manager を使用してポート転送を作成するには、次の手順を実行します。
Systems Manager により Amazon Elastic Compute Cloud (Amazon EC2) インスタンスが管理されていることを確認します。詳細については、「Systems Manager で EC2 インスタンスを管理する」および「Linux 用 EC2 インスタンスで AWS Systems Manager Agent を手動インストール、アンインストールする」を参照してください。
AWS CLI 用の Session Manager プラグインをインストールします。
次のコマンドを実行し、EC2 インスタンスのポートがリスニングモードになっていることを確認します。 Linux:
netstat -plant
macOS:
lsof -iTCP -sTCP:LISTEN -P -n
Windows:
netstat -nb
AWS Identity and Access Management (IAM) ポリシーを設定し、ユーザーが Systems Manager 経由でポート転送セッションを使用できるようにします。次の IAM ポリシーの例では、AWS アカウントのすべての EC2 インスタンスでポート転送を許可しています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:*:example-account-id:instance/*", "arn:aws:ssm:*::document/AWS-StartPortForwardingSession" ] } ] }
注: example-account-id を実際のアカウント ID に置き換えます。
使用する OS に合ったコマンドを実行してください。 Linux または macOS:
# aws ssm start-session \ --target example-EC2-instance-ID \ --document-name AWS-StartPortForwardingSession \ --parameters '{"portNumber":["80"], "localPortNumber":["example-local-port"]}'
注: 実際のものでそれぞれ、example-EC2-instance-ID を EC2 インスタンス ID に、example-local-port をローカルポートに置き換えます。 Windows:
# aws ssm start-session --target "example-EC2-instance-ID" --document-name AWS-StartPortForwardingSession --parameters "portNumber"=["80"],"localPortNumber"=["example-local-port"]
注: 実際のものでそれぞれ、example-EC2-instance-ID を EC2 インスタンス ID に、example-local-port をローカルポートに置き換えます。
インスタンスのウェブサーバーコンテンツを表示するには、ローカルマシンのブラウザで http://localhost:example-local-port をロードします。 注: セキュリティグループまたはネットワークアクセスコントロールリストでは、マネージド EC2 インスタンスでインバウンドポート 80 を開く必要はありません。