0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS EC2】AWS CLIを使ったEC2接続方法(SSH接続、SSM接続)

Posted at

EC2接続方法(SSH接続、SSM接続)

SSH接続とは???

 SSH接続は、PCからサーバーの専用ポートへ直接接続し、秘密鍵などで認証する方法です。サーバー側でSSHポート(22番)を開放する必要があります。

SSM接続とは???

 SSM接続は、サーバーのSSM AgentがAWSのサービスへ外向きに通信してセッションを確立する方法です。サーバー側で特定のポートを開放する必要がなく、秘密鍵も不要なため、よりセキュアで管理が容易なAWS独自の接続方法になります。

以下の理由からSSM接続が望ましい

  • SSHはサーバーの特定ポート(22番)をインターネットに公開する必要があるため、外部からの攻撃対象になりやすい。SSM接続は、サーバーがAWSサービスへ外向きに通信するため、インバウンドポートを開放する必要がなく、攻撃されるリスクを大幅に減らせる。
  • SSHは秘密鍵を管理する必要があるが、SSM接続はAWSのIAM権限で認証するため、鍵管理が不要になり、鍵の漏洩リスクがない。
  • SSM接続は、AWSのサービスと統合されているため、誰がいつどこに接続したかのログが自動で取得され、監査が容易になる。

①SSH接続手順

  • EC2インスタンスの作成/起動
    • キーペアの作成
    • セキュリティグループの設定
  • AWS CLI からSSH接続

EC2インスタンスの作成/起動

  • AMI選択
    Amazon Linux 2023 AMI
  • インスタンスタイプ選択
    t2.micro
  • ストレージ選択
    1 x 8GiB gp3 ルートボリューム、3000 IOPS、暗号化なし

キーペアの作成

  • 新しいキーペアの作成
    キーペアを作成すると、秘密鍵ファイル(キーペア名.pem)がダウンロードされるので、任意のディレクトリへ配置します。これがSSH接続に使用する鍵となります。
    image.png

セキュリティグループの設定

  • インバウンドルール

    • SSH接続の許可
      自分のグローバルIPアドレスからの、ポート22(SSH)へのトラフィックを許可します。
      image.png
  • アウトバウンドルール

    • デフォルト(すべてのトラフィック 0.0.0.0/0)

EC2インスタンスの起動

 EC2インスタンスを起動します。

AWS CLI からSSH接続

 以下のコマンドでAWS CLIからSSH接続を行うことができます。

ssh -i <秘密鍵のフルパス> <EC2インスタンスのデフォルトユーザー名>@<接続先EC2インスタンスIP/DNS>
  • EC2インスタンスのデフォルトユーザー名
     AMIの種類によって異なる。Amazon Linux は 「ec2-user」。
  • 接続先EC2インスタンスのIP/DNS
     「パブリックIPv4アドレス」または「パブリックIPv4 DNS」を指定。
     EC2インスタンス詳細画面で確認できます。
    image.png
    image.png

②SSM接続手順

  • Session Manager Plugin for AWS CLI のインストール
  • EC2インスタンスの作成/起動
    • セキュリティグループの設定
  • EC2インスタンスへIAMロールアタッチ
  • SSM Agentの稼働確認
  • AWS CLI からSSM接続

Session Manager Plugin for AWS CLI のインストール

 以下、公式ドキュメントに沿って実施。
 AWS CLI を使用してSession Manager セッションを開始する為に必要になります。
 https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html

EC2インスタンスの作成/起動

  • AMI選択
    Amazon Linux 2023 AMI
    ※AWS Systems Manager (SSM) サービスと連携してEC2インスタンスをリモートで管理・操作するための「SSM Agent」がプリインストールされています。
  • インスタンスタイプ選択
    t2.micro
  • ストレージ選択
    1 x 8GiB gp3 ルートボリューム、3000 IOPS、暗号化なし

セキュリティグループの設定

  • インバウンドルール
    • なし
  • アウトバウンドルール
    • HTTPS接続の許可
      0.0.0.0/0(すべてのIPアドレス)への、ポート443(HTTPS)のトラフィックを許可します。

SSM AgentはEC2インスタンス上で動作し、定期的にAWS Systems Managerサービスのエンドポイント(HTTPS/TCP 443)に対してポーリングを行い、未処理のコマンドやセッション要求がないかを確認します。

EC2インスタンスの起動

 EC2インスタンスを起動します。

EC2インスタンスへIAMロールアタッチ

 起動したEC2インスタンスに、AmazonSSMManagedInstanceCore ポリシーがアタッチされたIAMロールを関連付けます。

SSM Agentの稼働確認

 AWS Systems Manager > フリートマネージャー からSSM Agentが稼働状況を確認することができます。

EC2インスタンスを起動してもSSM Agentが稼働しておらず、この画面に反映されないことがあるので、その際はEC2インスタンスを再起動すると反映されます。

image.png

AWS CLI からSSM接続

 以下のコマンドでAWS CLIからSSM接続を行うことができます。

aws ssm start-session --target <インスタンスID>

image.png

以上

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?