セッションマネージャについて調べてみた

学習~セッションマネージャについて~

セッションマネージャというものを知りました。

セッションマネージャ?なんだそれ。
試してみたところ、AWSマネジメントコンソールからシェルアクセスできるもののようです。
ただそれだけではよくわからないし、ターミナルソフトからSSHでアクセスするのと何が違うのか、どういうメリットがあるのかわからないので調べてみました。

疑問~セッションマネージャを使うメリット~

AWSのドキュメントを読んでみたのですが結構めちゃくちゃな日本語訳だったので、自分に分かりやすいよう噛み砕いてみました。
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/session-manager.html

・IAMを使用したインスタンスへの一元的なアクセス制御 ポリシー
IAMでアクセス権を管理できる。
どのIAMユーザ、グループをどのインスタンスにアクセスさせるかなど。

・オープンなインバウンドポートがなく、Bastionホストを管理する必要がない またはSSHキー
凄い日本語だ。
SSHポートを開けなくて済むということだろう。
まぁセキュアにはなる。

・コンソールからインスタンスにワンクリックでアクセスし、 CLI(CLI)
AWS Systems Manager コンソールまたは Amazon EC2 コンソールからワンクリックでアクセスできる。

・ポート転送
よくわかりませんでした。
後で調べて追記します。

・Windows と のクロスプラットフォーム・サポート Linux(Linux)
Windows とLinux両対応。
windowsだとpowershellが開く。

・ロギングおよび監査セッション アクティビティ
CloudTrail、S3、CloudWatch Logs、CloudWatch、SNSで
ログを取得・保存したり、モニタリングしたり監視したり通知したり。

うーん。
EC2 Instance Connectとちょっと違うな。
あいつはSSH接続だったし何よりAmazonLinux2とubuntuしかできなかったし。
ちょっと意外なのはEC2 Instance Connectの方が新しいということ。
https://qiita.com/hayao_k/items/7b44ed1cd11651272985

作業記録~ユーザデータでのSSMエージェントインストール~

インスタンス作成時にユーザデータでSSMエージェントをインストールすれば一度もSSHログインする必要ありません。
自分のコピペ用として残しておきます。
ロール付与を忘れずに。
※なぜかRedHatはうまくいきませんでした。
※知っている方、良かったら教えてくださいw

・AmazonLinux2、CentOS7(東京リージョン用)
-----
#!/bin/bash
sudo yum install -y https://s3.ap-northeast-1.amazonaws.com/amazon-ssm-ap-northeast-1/latest/linux_amd64/amazon-ssm-agent.rpm
-----

・Windows Server
-----
<script>
Invoke-WebRequest `
    https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/windows_amd64/AmazonSSMAgentSetup.exe `
    -OutFile $env:USERPROFILE\Desktop\SSMAgent_latest.exe
Start-Process `
    -FilePath $env:USERPROFILE\Desktop\SSMAgent_latest.exe `
    -ArgumentList "/S"
rm -Force $env:USERPROFILE\Desktop\SSMAgent_latest.exe
Restart-Service AmazonSSMAgent
</script>
-----