Help us understand the problem. What is going on with this article?

キーペアのないEC2運用

キーペアというネックポイント

EC2を作成すると、通常はキーペアを使用してSSH接続するかと思います

誰もが使用する22番ポートへの攻撃は、SecurityGroupでIPを絞るなどの対応ができますが
キーペアを紛失してしまうとあまりよろしくない。

AWSのSystemsManagerではセッションマネージャーというものがあり、
AWSマネジメントコンソールから、ブラウザ上でセッションを確立でき、いつも通りコマンドも叩けます。

方法

今回はPublicSubnetにあるEC2への、セッションマネージャによるアクセスをやってみます。
前提として、使用する IAMユーザー がSSM等の使用権限を持っていること
※マネジメントコンソールでSSMを操作する権限の話

Public.png

対象のEC2にRoleをアタッチ

EC2に最低限必要なポリシーは1つ
・AmazonSSMManagedInstanceCore

このIAMポリシーを持ったIAM Roleを作成したら、EC2にアタッチします。

①IAMRoleの作成画面へ
②Roleにアタッチするポリシーはデフォルトで存在する、
 AmazonSSMManagedInstanceCore を選択
③EC2インスタンスの画面へ移動して、アクセスするEC2に対して、作成したRoleをアタッチ

SSMで確認、セッション開始

Roleがアタッチされると、SystemsManager > マネージドインスタンス内にインスタンスが存在するので
この時点で準備OKかと思います。

セッションを開始する場合はこの画面からも開始できますが
スクリーンショット 2020-06-06 15.40.37.png

EC2インスタンス画面からも接続可能です。↓
スクリーンショット 2020-06-06 15.41.20.png
「接続」から↓
スクリーンショット 2020-06-06 15.41.52.png

注意点など

Networkingの観点

今回はPublicSubnet、つまりインターネットゲートウェイがルーティングされた環境のインスタンスへの接続を実行しました

Public0.png

よりセキュアにしたい場合は、VPCエンドポイントがルーティングされたSubnetの用意が必要です

Private2(1).png

VPCエンドポイントは、AWSネットワークからインターネットに出ずにアクセス先のAWSリソースへアクセスさせてくれる子なので
今回であればSSMまでのアクセスをAWSネットワーク内で完結してくれます。

VPCエンドポイントに登録するAWSサービス名は以下です
※詳細は時間あったらまた今後追記

com.amazonaws.region.ssm
com.amazonaws.region.ec2messages
com.amazonaws.region.ssmmessages

コスト観点

EC2セッションマネージャーの使用でかかる追加料金はありません
https://aws.amazon.com/jp/systems-manager/pricing/

ただし、VPCリソースの料金はかかります。
例えばVPCエンドポイントの場合

VPCエンドポイントの料金目安、東京リージョン
・各AZのVPCエンドポイント料金:0.014USD/時間
・処理データ1GBあたりの料金:0.01USD/GB
サービス(エンドポイント)毎にかかる
接続の有無に関わらずエンドポイントの料金はかかる

あらかじめVPCリソースの料金は算出しておいたほうがいいですね。
(個人で使っていると、このエンドポイント料金は大きかった)

こう考えてみると、よりコストを意識(重視)する必要がある場合、予め存在する踏み台サーバーのSSHポートを閉じて、PublicSubnetの踏み台サーバーを経由したアクセスが無難そう。
スペックによるが、踏み台のEC2料金のほうが安い場合がある。。

ただ、あくまでセキュリティを重視すべきであれば、PrivateSubnetならVPCエンドポイントで構築したほうが良い。

監査観点

SSMはCloudTrailと統合されているため、APIコールのログが残ります。
CloudTrailはデフォルトで有効となっているので、確認できます

また、セッションマネージャーの画面から、監査ログ等を取得する設定も可能
スクリーンショット 2020-06-06 16.24.45.png

まとめ

セッションマネージャーを使うメリットがたくさんある
キーペアが不要のため、管理する危なっかしいものが減る
・ブラウザでアクセスできるから、WindowsサーバーもRDPであることを意識しなくても済む
・VPC Network環境によって使い分ける
・ログも残してくれる

お試しの場合
・IAMやVPCの勉強になる

以上です!ありがとうございました。

次はトラブルシューティングの記事とか書こうかなーと思っています

shinon_uk
Infrastructure engineer
yumemi
みんなが知ってるあのサービス、実はゆめみが作ってます。スマホアプリ/Webサービスの企画・UX/UI設計、開発運用。Swift, Kotlin, PHP, Vue.js, React.js, Node.js, AWS等エンジニア・クリエイターの会社です。Twitterで情報配信中https://twitter.com/yumemiinc
http://www.yumemi.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした