AWS経由でリモートアクセス

参考サイト

[Windows+Linux]RDP+Ubuntuを使った開発環境構築

AWS Systems Managerでオンプレ環境のWindowsを管理する

AWS Systems Managerのセットアップ

【AWS】「AWS SystemsManager」経由でWindowsサーバにリモートデスクトップ接続する方法

環境

接続元:Windows10 Pro

接続先:Jetson(Ubuntu 18.04.6)

作業内容

AWS設定

SystemsManagerアクティベーション作成

・[AWS/SSMメニュー/ノード管理/ハイブリッドアクティベーション]選択

・アクティベーションの作成

  • アクティベーションの説明:Activation Test
  • インスタンス制限:1
  • IAMロール:実行ロールを作成
  • 有効期限:未指定(1日後)
  • インスタンス名:Jetson-remote

・出力されたCodeとIDをメモ

IAM 作成

・グループの作成 

  • グループ名:任意
  • 権限
    • AmazonSSMFullAccess
    • AmazonEC2ReadOnlyAccess

・ユーザー作成

  • ユーザー名:任意
  • アクセスの種類:プログラムによるアクセス
  • グループ:上記で作成したグループ

・ユーザ情報が記載されている.csvをダウンロード
 Access key ID と Secret access keyをメモ

インスタンス枠の設定(標準↔高度)

※高度なインスタンス枠(有料)でないとセッション接続ができない

・[AWS/SSMメニュー/ノード管理/フリートマネージャー]選択

・画面右寄り
 [アカウント管理/インスタンス枠の設定]選択
 →[アカウント設定の変更]

Linux設定

リモート環境設定

・xrdpのインストール

$sudo apt install xserver-xorg-core xorgxrdp xrdp

$cat <<EOF > ~/.xsessionrc
>export GNOME_SHELL_SESSION_MODE=ubuntu
>export XDG_CURRENT_DESKTOP=ubuntu:GNOME
>export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
>export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
>EOF

$sudo sed -e 's/^new_cursors=true/new_cursors=false/g' -i /etc/xrdp/xrdp.ini

$cat <<EOF | \
>sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
>[Neto\workmanager]
>Identity=unix-user:*
>Action=org.freedesktop.color-manager.create-device
>ResultAny=no
>ResultInactive=no
>ResultActive=yes
>EOF

$sudo systemctl restart xrdp
$sudo systemctl restart polkit

IPアドレス確認

$ip -4 a

Windowsから接続確認

・リモートデスクトップ接続の起動(検索:RDP)

・確認したIPアドレスを入力

  ※Ubuntu 側でログアウトしている必要あり。複数ユーザーでの同時ログインは可能

SSM Agent インストール

・curl インストール(必要なら)

$sudo apt install curl

・SSM Agentダウンロード→インストール
  ※プロキシ無し

$mkdir /tmp/ssm
$curl https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_arm64/amazon-ssm-agent.deb -o /tmp/ssm/amazon-ssm-agent.deb

$sudo dpkg -i /tmp/ssm/amazon-ssm-agent.deb
$sudo service amazon-ssm-agent stop
$sudo amazon-ssm-agent -register -code "activation-code" -id "activation-id" -region "region" 

$sudo service amazon-ssm-agent start

※activation-code と activation-idはSystemsManagerアクティベーション作成で取得
※region はアクティベーションを作成したアカウントの登録地
 AWSログイン画面の右上、アカウント名の左に表示されている
 初期値が東京じゃなかったりするので注意

・インスタンスの確認

[AWS/AWS Systems Manager/ノード管理/フリートマネージャー]選択
  →マネージドノードの一覧にノードが増える

Windows設定

環境設定

・AWS CLIインストール

・SSMプラグインインストール

セッション開始

>aws configure
AWS Access Key ID [None]: <Access key ID>
AWS Secret Access Key [None]: <Secret Access Key>
Default region name [None]: ap-northeast-1
Default output format [None]: JSON
>aws ssm start-session --tartget <ノードID> --document-name AWS-StartPortForwardingSession --parameters "portNumber=3389, localPortNumber=13389"

※Access key ID とSecret access keyはユーザー作成時に取得
※ノードIDはフリートマネージャーで確認
※高度なインスタンス(有料)でないとアクセス不可→設定方法

Starting session with SessionId: <xxxxx>
Port 13389 opened for sessionId <xxxxx>
Waiting for connections...

と出れば接続成功

リモートデスクトップ開始

・リモートデスクトップ接続を起動

・コンピューター名に「localhost:13389」と入力